基于树莓派的白板自动清洁系统设计

2017-04-25 17:17姚熙腾陈恺韬周一睿
数字技术与应用 2017年1期
关键词:智能控制数字技术白板

姚熙腾+陈恺韬+周一睿

摘要:为提高日常教学中白板擦除的效率,让板擦自动擦过白板,作者基于树莓派设计开发了导轨滑块数控白板自动清洁系统。该系统以小型白板为实验对象,采用树莓派3代b型进行开发,通过l298n型驱动板控制直流电机,使用python进行编程,控制驱动板输入电压从而控制电机,并引入了三个按键模块,精确控制擦白板过程,使白板擦除不再费时费力,解决了白板使用过程中的痛点。

关键词:白板;自动清洁;智能控制;数字技术

中图分类号:TP334 文献标识码:A 文章编号:1007-9416(2017)01-0139-02

白板,是我们学习生活中的常见物品,而擦白板是一件费时费力的事情。有没有可能运用技术手段,让白板上的字自动擦除?在科技老师的指导下,我们研究小组基于树莓派,设计出一种白板自动清洁系统,只要一按按钮,装置就会自动扫过白板,将上面的字擦得干干净净,从而给教学带来了便利。

1 总体方案设计

主要材料:树莓派3代b型、L298n型驱动板、GA12-N20型减速直流电机、导轨两根、滑块两只、铝板横杆一根、纳米海绵擦、杜邦线等。

制作过程:

(1)在白板的上端和下端墙壁上分别装上导轨,并保持上、下两根导轨平行;

(2)在上、下导轨上分别装上一块滑块;

(3)在上、下滑块上安装电机,同时,将齿条固定到墙上的相应位置,以便电机齿轮沿着齿条转动来驱动滑块;

(4)在上、下滑块间安装铝板横杆,横杆下放置纳米海绵擦;

(5)在白板的一侧放置开发板,驱动板和电机通过电线相连,开发板控制线和驱动板相连,开发板独立接5v电源,驱动板独立接12v电源。

2 编程及接线方法

参考L298n型驱动板和树莓派的接线方法。(图1、图2)

我们最终的接线如下:(图3)。

L298n作为双h桥芯片,可以同时控制两部直流电机或一部步进电机,只需要控制in1-4的电压,就可以控制电机是否运行。

我们将in1-4分别连接至树莓派上的gpio22,gpio23,gpio24,gpio25,通过python(2.7.9)程序进行电压控制,L298n控制板额外连接了12v电池盒。

先用简单的程序进行测试。测试程序如下:

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

BTN1=32

BTN2=36

BTN3=38

GPIO.setup(BTN1,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(BTN2,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(BTN3,GPIO.IN,pull_up_down=GPIO.PUD_UP)

while True:

if (GPIO.input(BTN1)==0):

print ("xiangzuo")

if (GPIO.input(BTN2)==0):

print("ting")

if (GPIO.input(BTN3)==0):

print ("xiangyou")

GPIO.cleanup()

程序測试正常,进入下一阶段。我们先测试了三个按键,按钮一端接地,即板上的gnd,按钮在按下时会接通地线,我们定义按键输出线数据为btn1,btn2,btn3,分别接在开发板上gpio26,gpio27,gpio28,利用print语句测试按键反应,程序如下:

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

INT1=31

INT2=33

INT3=35

INT4=37

GPIO.setup(INT1,GPIO.OUT)

GPIO.setup(INT2,GPIO.OUT)

GPIO.setup(INT3,GPIO.OUT)

GPIO.setup(INT4,GPIO.OUT)

GPIO.cleanup

GPIO.output(INT1,GPIO.HIGH)

GPIO.output(INT2,GPIO.LOW)

GPIO.output(INT3,GPIO.HIGH)

GPIO.output(INT4,GPIO.LOW)

time.sleep(5)

GPIO.output(INT1,GPIO.LOW)

GPIO.output(INT2,GPIO.LOW)

GPIO.output(INT3,GPIO.LOW)

GPIO.output(INT4,GPIO.LOW)

GPIO.cleanup

在程序测试之后,我们引入了三个按钮,在电机程序中添加了相关控制补丁,修改后的程序为:(#后为注释)

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

INT1=31

INT2=33

INT3=35

INT4=37

BTN1=32

BTN2=36

BTN2=38

GPIO.setup(BTN1,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(BTN2,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(BTN3,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(INT1,GPIO.OUT)

GPIO.setup(INT2,GPIO.OUT)

GPIO.setup(INT3,GPIO.OUT)

GPIO.setup(INT4,GPIO.OUT)

while True:

if (GPIO.input(BTN1)==0):

#电机正转

print ("xiangzuo")

GPIO.output(INT1,GPIO.HIGH)

GPIO.output(INT2,GPIO.LOW)

GPIO.output(INT3,False)

GPIO.output(INT4,False)

time.sleep(2)

GPIO.setmode(GPIO.BOARD)

GPIO.setup(INT1,GPIO.OUT)

GPIO.setup(INT2,GPIO.OUT)

GPIO.setup(INT3,GPIO.OUT)

GPIO.setup(INT4,GPIO.OUT)

if (GPIO.input(BTN2)==0):

#電机反转

print("ting")

GPIO.output(INT1,GPIO.LOW)

GPIO.output(INT2,GPIO.LOW)

GPIO.output(INT3,False)

GPIO.output(INT4,False)

time.sleep(2)

if (GPIO.input(BTN3)==0):

#电机反转

print ("xiangyou")

GPIO.output(INT1,GPIO.LOW)

GPIO.output(INT2,GPIO.HIGH)

GPIO.output(INT3,False)

GPIO.output(INT4,False)

time.sleep(2)

GPIO.cleanup()

3 使用操作方法

(1)将开发板通过usb micro(普通安卓充电口)接口通电。

(2)待开机完成后点开(屏幕为触摸屏)桌面motor(1)(1)(1).py,在最上面的工具栏找到run选项,选择run module。

(3)按接线板上三个按钮中间的一个,并将板下端电池盒上的on off开关开至on。

(4)按上下两个按键启动电机向左或右运行,从而擦去字迹。按中间的按键停止电机运动。

猜你喜欢
智能控制数字技术白板
希沃白板在初中生物学复习教学中的应用
应用型人才培养导向下智能控制教学改革探讨
浅谈开关式电梯IC卡系统及展望