Arduino+L298N+蓝牙+nodejs
Dec 15, 2012
上个周末DIY了一部可以网络在线控制(tuohuang.no-ip.org抱歉的是我现在的服务器是在我自己的联想本子跑的,但是我也不太可能一天到晚开着,我下面会说到用Rasperry Pi替换作为服务器的好处,是的,windows系统太恶心)的蓝牙小车,还是很有意思很有乐趣的一件事。可以先上个图
其实粗略一看其实也很简单,就是有两个直流电机,然后一块控制板加上一个蓝牙传输模块,基本上可以控制小车的前后左右以及速度等等,控制的话,你可以直接通过android手机控制(无需wifi),也可以了网络在线控制。
说完了最后是个啥样子,接下来是为什么选择做一个两轮驱动的小车,而不是做一个四轮的或者为什么不是选择做一个自平衡像是
赛格威Segway那样的很拽的来做了?
答案很简单,对于单片机和电子电路的初学者而言,两轮驱动小车是一个很好的起点,你可以一开把功能做的非常简单,然后在上面增加很多的功能和模块,这个过程也就是一步步深入理解电子原件和原理的过程。
当然,另外一个好处,这个应该算是比较便宜的入门选项了,如果你要整个四驱或者自平衡,这个开销可以两轮的高很多。
而我,一开始主要是在想在过年的时候带着我六岁的弟弟一起做点有点意思的东东,相对于直接送给他一个玩具然后他玩两下丢了,还不如说让他参与一下这个小车是怎么做的,当然了,这个小车可以那么玩具车高级多了,可以玩出很多花样。与其带着他玩泥巴玩炮竹玩CS,这个也许能激发他的一些兴趣爱好嘛。
话说正题,要完成这部车需要了解的一下概念或者知识:
- 电路和基本的电子元器件
- arduino
- L298n
- 蓝牙模块通信
- nodejs
stty -f /dev/cu.SLAB_USBtoUART cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts //设置频率等 echo -n "f" > /dev/cu.SLAB_USBtoUART //发送"f"指令到蓝牙串口然后你把这terminal命令行交给nodejs的exec/child_process来执行就可以发现你的小车有反应了。 在windows上比较麻烦一点,你需要去设备管理器去看看SLAB_USBtoUART它使用的串口名字是多少(比如com4). 然后nodejs中exec执行命令行指令“echo f > com4”,这里不需要stty, 更重要的是千万不要像mac一样在echo后面加"-n"。 Bingo! 最后一个获取实时视频流。 这个是比较麻烦的一件事,如果你有安卓手机的话就很简单了。这里你去安卓市场下载一款叫做"IPWebcam"的应用,然后打开之后你会发现底下有显示一个ip地址,然后你可以在你的电脑尝试需要这个地址就可以获取实时视频流,借助html的videoplay tag,你可以修改一下你nodejs中网页中它的视频流地址,将其指向为你的安卓手机地址,因为其都在一个内网中,应该是非常快的。最后将你的安卓手机放到可以拍摄到小车合适角度的地方。就可以跳到最后一步。 如何让外网可以访问你内网的nodejs服务器? 非常简单,打开路由器设置,然后找到转发规则,然后增加一个虚拟服务器,比如8080,同时将ip地址指向你跑nodejs的那台机子,然后重启路由器。 但是有木有搞错啊?这个地址是http://101.45.191.182:8080/ 太难记了!有木有简单容易记住的DNS啊。 是的,有很多动态DNS服务,你可以注册使用http://www.no-ip.com/的免费服务,然后创建一个转发规则,选中“Port 80 Redirect", 将101.45.191.182和8080分别填好。 那以后只要访问 tuohuang.no-ip.org 就可以访问我内网的服务器罗! 最后贴上主要的电子器件和淘宝地址,当然了主题是便宜要好用,下面是我的购物清单(包含运费):
- 智能小车底盘/寻迹小车/机器人/带码盘/测速/强磁电机/ZK-2WD(http://item.taobao.com/item.htm?id=17614027453) 51块
- L298N电机驱动板/步进电机驱动模块/机器人/智能小车(http://trade.taobao.com/trade/detail/tradeSnap.htm?spm=a1z09.2.9.80.lNGirU&tradeID=178162818334442) 31块
- 蓝牙数传套餐: 蓝牙主机+蓝牙从机+蓝牙USB转串口(http://item.taobao.com/item.htm?id=18220892827) 75块
- 40P双头打杜邦端子 杜邦线 长21CM 进口彩排线 带壳子(http://trade.taobao.com/trade/itemlist/list_bought_items.htm?t=20110530&ad_id=&am_id=&cm_id=&pm_id=) 10.5块
- 电烙铁+烙铁架+高亮焊锡+焊锡膏6合1 (http://trade.taobao.com/trade/detail/tradeSnap.htm?spm=a1z09.2.9.38.lNGirU&tradeID=262580287254442) 31块
- DFRobot Arduino入门套件 (http://www.dfrobot.com.cn/index.php?route=product/product&path=119&product_id=531) 130块
代码 详细可以参考我的github:(https://github.com/tuo/Arduino2WDCars) 里面有arduino代码以及nodejs服务器的代码。