实验五:树莓派平台-------按键控制小车启动实验
1、实验前准备
图1-1 树莓派主控板
图1-2 按键开关
2、实验目的
ssh服务登录树莓派系统之后,编译运行按键控制小车启动实验后,按下KEY启动小车,小车会自动先前进1s,后退1s,左转2s,右转2s,原地左转3s,原地右转3s,接着停止0.5s。
3、实验原理
按键消抖:通常我们的按键开关一般都是机械弹性开关,当机械触点断开,闭合时,由于机械触点的弹性作用,一个按键开关子在闭合时不会马上就能稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开时会伴随着一连串的抖动。
图3-1 按键抖动状态图
抖动时间一般都是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合后一次断开只响应一次,必须进行按键的消抖处理,有硬件消抖和软件消抖。
其中,软件消抖指的是检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
硬件消抖是在开关两段接一个0.1uf的电容。本次实验我们采取的是软件延时去抖。
4、实验步骤
4-1.看懂原理图
图4-1 树莓派主控板电路图
图4-2 按键
图4-3 树莓派40pin引脚对照表
4-2 由电路原理图可知按键是直接连接到主控板上的wiringPi编码的10口。我们设置10口为输入模式,并当按下按键时通过检测该引脚的电平状态,来判断按键是否被按下。
4-3 程序代码见源文件:
输入:
① cd SmartCar //进入SmartCar文件夹
② gcc KeyScanStart.c -o KeyScanStart -lwiringPi -lpthread //编译生成可执行文件
③ ./KeyScanStart //运行程序
接着
④ ./initpin.sh //初始化引脚