-------更新
完整的代码放在Github上了:
服务端:https://github.com/darlinglele/raspberry-server
手机客户端: https://github.com/darlinglele/raspberry-client
-------全文
年初的时候看到@段念-段文韬 的这篇文章《使用树莓派制作的远程开门器》后,觉得硬件编程似乎没有想象的难。 之前认为硬件编程可能需要学习新的编程语言,需要特别的编程环境。然而树莓派使用Linux操作系统环境,只要Linux支持的编程语言 ,都可以成为你的选择。当语言环境不是问题的时候,对于我来说,我最感兴趣的部分是如何用树莓派来控制一些低速的外部设备,例如 :继电器、小马达。 一般的PC并不提供这些通用接口,PC只提供一些高速设备的接口如USB。 而树莓派不止提供了USB接口,还提供了GPIO接口,有了这个接口使得控制通用的外部设备得以实现。
开始之前,请用最方便的方式连入树莓派。我自己没有额外的显示器,所以只好通过MBA的Terminal直接SSH上去。 树莓派预装了Python,但是你需要安装RPI GPIO python来驱动GPIO。安装包地址:http://log.liminastudio.com/writing/tutorials/tutorial-how-to-use-your-raspberry-pi-like-an-arduino 。安装之后,在程序中import就可以控制GPIO:
- import RPi.GPIO as GPIO
- GPIO.setup(7, GPIO.OUT)
- GPIO.output(7, True)
- GPIO.output(7,False)
代码中树莓派通过指定GPIO接口向外部发送信号,如果从外部向树莓派输入信号,则指定GPIO.input。整个小车需要的部件就是四个轮子,可以单独控制,所以下面我们只说说如何来控制其中的一个电机。
接通VCC,GND 模块电源指示灯亮
IA1输入高电平,IA1输入低电平,【OA1 OB1】电机正转;
IA1输入低电平,IA1输入高电平,【OA1 OB1】电机反转;
IA2输入高电平,IA2输入低电平,【OA2 OB2】电机正转;
IA2输入低电平,IA2输入高电平,【OA2 OB2】电机反转;
为了简化电路设计,考虑用驱动模块控制。这是我在淘宝购买的两路电机驱动 H桥 L9110 电机驱动模块 ,接上它,你只需要下面简单的连接,就可以让树莓派来控制电机了。驱动模块有电源、信号输入接口以及电源输出接口:
- 电源输入,VCC,GND分别是输入电源的正负极,可以用电池组来供电。 注意不能接反,否则驱动模块可能短时间内发烫,甚至烧坏。
- 信号输入,IA1 IB1, IA2 IB2分别是两对信号输入接口,接