1赞

31回答

1收藏

[原创] 用树莓派+积木制作的wifi小车

 

Raspberry Pi Raspberry Pi 29767 人阅读 | 31 人回复 | 2014-09-19

嗯……这个月初才买的树莓派B+,到手后最先弄的就是相机~因为当时我是和摄像头模块一起买的,同时买了亚克力的外壳,但是那外壳太不给力太脆了,后来我就用以前小学时玩的启蒙积木【目测就是国内仿乐高积木了……】搭了个外壳~

然后为了加个屏幕,就参考了国外某高人的教程【百度贴吧也有一个教程可供参考】,用GPIO自己连接了之前买来给单片机用的屏幕。后来那块屏幕不知是怎么的就坏掉了……然后实在没办法只好用手头上那块带屏幕的STM32F429的开发板来用了。反正那开发板我也不会用……目前能力只会8位单片机……
然后各种拼凑连接后就是酱紫……

摄像头放前面,然后开发板架在上面……

嗯……这就是个树莓派相机了……程序用的是那个python的相机程序,因为触屏这个开发板的触屏模块不知要怎么驱动所以就没法用触屏……但没法用触屏拍不了照……最后是用IO模拟鼠标按键做了个拍照键【见后面的图】……

然后在后来的几天心血来潮,既然都已经有摄像头了,就直接弄个wifi小车好了~
材料继续现成的积木


两个车轮是我去全国赛的一个套件里的轮子,驱动性不是很好……将就着用了
万向轮表示图里的这个实际上我实测并不满意……后来我直接不要轮子换成了柱状的支柱

电机,接口我用排针焊好了,方便拆卸,以及和板子的连接我也没有完全粘在上面,而是用一块板子粘好在底板做固定座【图里可以看到这个大的板子背面是没有可以直接用于连接的孔的……所以要粘一块小板子上去方便连接】
然后电机我就直接用自攻螺丝钉拧在另一块板子上,然后两个部分直接插上去就可以了,这样方便维护。

这个是最初的万向轮设计……但毕竟是塑料,几乎转不起来……

然后这是底板和树莓派“相机”连接,搭成了一个小车……最底下一层放移动电源,上面架树莓派相机
侧面……
正面,可以看到摄像头模块,然后注意到没,下面的万向轮我又换成了另一个,这个是有塑胶的轮子,转动部分用了个小的没负载的情况下转动也很灵活的,但是还是很不满意……
左边,下面白色那里就是放电机驱动模块的地方,用GPIO和树莓派连接,但是这里出现了很多问题……嗯,等下再说

俯视图……显得体积略大

开机,上面的屏幕板子是F429开发板,可以看到这个和最初第一张图的树莓派相机有所不同,因为我增加了模拟鼠标……那个黑色的按键就是模拟鼠标左键,用来拍照的,旁边的那个有4个小按钮的就是模拟鼠标上下移动的……用来进行选择。
这里在弄的时候出现了个问题,就是上方向键我连接GPIO5貌似很容易会出现漂移的现象,而且不知道为什么我开机的时候设置为下拉和输入模式了,关掉相机功能进入GUI界面后又变成了OUT模式,……怎么弄都不行,后来我是换了另一个IO就没问题了……

嗯……移动电源,然后树莓派的主机指示灯我是用了个透明的积木做的~

这是摄像头模块……两边是1W的红外灯,摄像头是红外夜视的……
用红外夜视的摄像头拍风景的话……嗯……你会发现树叶都是红色的……好蛋疼……
来两张相机功能下的拍照图……

单车棚那是我们学校,绿树成荫,结果拍出来……一股秋的颜色……其实也挺有意思的……


然后……这多加了块电池……为什么呢……嗯……
因为之前用移动电源给树莓派供电的同时我也直接用杜邦线连接了5V给电机驱动……
后来估计是因为反峰,前进后退走了2步后移动电源直接就断掉了……估计是被软击穿了……
所以我才用一块锂电专门给电机供电……其实也是挺蛋疼的……这里还有问题,慢慢来说~
电池……

这里就是电机驱动模块的部分【话说注意树莓派的电源指示灯红色不亮了……只有绿色的工作状态指示灯……不知道是因为电流不够还是咋的……】……
然后……先走了几步……嗯……

左边是VLC连接树莓派进行实时图像传输,右边是操作控制台……
走到客厅……这是晚上完全无光的情况下拍的,开了2个红外灯,不过是开到最低的,如果开到最高移动电源估计就因为那反峰软击穿导致电流不够了……【其实我怀疑树莓派自身也遭到了很大的冲击……这很危险……注意不要像我最初那样直接从树莓派取电给带磁的器件,不然一旦释放那反峰冲击很危险的……】
更何况……还导致了下面的情况……

我限流电阻都没加,最后走了大概10分钟,这驱动芯片就直接发烫烧掉了……
用来固定的积木也被烫熔了……【这还没有直接接触芯片……有大概2mm的距离……都已经成这样了……】
所以,安全的做法应该是所有的控制输出用1N4148保护防止反峰对树莓派的冲击,然后接1K电阻限流,再到驱动芯片,并且电机用单独电源供电,不应直接从树莓派上取电!

所以最后……我是裁了一块电路板来做驱动模块

用4个1N4148单向输出控制,然后限流电阻,最后是驱动芯片。用了4个IO进行控制,可以前后左右左转右转的操作。
万向轮最后是用了这样的固定结构……

由于之前写的控制脚本转向是单轮驱动转向的,就是一个轮子动一个不动进行转向,但发现这样阻力很大,所以最后是改成了双轮一正一反驱动进行转向,这样转起来就轻松很多了。
控制脚本我是用bash写的,python表示不会……
下面直接贴出代码好了,需要的话就拿去吧~
注意这个脚本需要安装gpio和VLC,VLC可以自己apt-get安装,
GPIO的话参照这里安装:http://wiringpi.com/download-and-install/
  1. #!/bin/bash
  2. gpio -g mode 2 out
  3. gpio -g mode 3 out
  4. gpio -g mode 2 up
  5. gpio -g mode 3 up
  6. gpio -g mode 23 out
  7. gpio -g mode 24 out
  8. gpio -g mode 23 up
  9. gpio -g mode 24 up

  10. sudo killall -9 python raspivid cvlc newgpio.sh &> /dev/null

  11. runup(){
  12.         gpio -g write 2 1
  13.         gpio -g write 3 0
  14.         gpio -g write 23 1
  15.         gpio -g write 24 0
  16. }
  17. rundown(){
  18.         gpio -g write 2 0
  19.         gpio -g write 3 1
  20.         gpio -g write 23 0
  21.         gpio -g write 24 1
  22. }
  23. runle(){
  24.         gpio -g write 2 1
  25.         gpio -g write 3 1
  26.         gpio -g write 23 1
  27.         gpio -g write 24 0
  28. }
  29. runright(){
  30.         gpio -g write 2 1
  31.         gpio -g write 3 0
  32.         gpio -g write 23 1
  33.         gpio -g write 24 1
  34. }
  35. runstop(){
  36.         gpio -g write 2 1
  37.         gpio -g write 3 1
  38.         gpio -g write 23 1
  39.         gpio -g write 24 1
  40. }
  41. startvlc(){
  42.         su pi
  43.         raspivid -o - -t 0 -w 640 -h 360 -fps 30|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264
  44. }
  45. stopvlc(){
  46.         sudo killall -9 raspivid cvlc &> /dev/null
  47. }
  48. runquit(){
  49.         sudo runstop
  50.         #gpio -g write 2 0
  51.         #gpio -g write 3 0
  52.         #gpio -g write 23 0
  53.         #gpio -g write 24 0
  54.         sudo stopvlc
  55. }

  56. echo -e "\e[33;1mGO!\e[0m"
  57. while [ "$quit" != "q" ]
  58. do
  59.         read -sn 1 -p "Key:" quit
  60.         case $quit in
  61.         w) runup ;;
  62.         s) rundown ;;
  63.         a) runle ;;
  64.         d) runright ;;
  65.         " " | e | t) runstop ;;
  66.         o) startvlc & ;;
  67.         f) stopvlc ;;
  68.         *) echo -e "\e[31;1m user [wsad] go, [e/t] stop, [o] open vlc,[f] stop vlc,[q]quit"
  69.         esac
  70. done
  71. runquit
  72. exit 0
复制代码

psb.jpg (60.05 KB, 下载次数: 608)

psb.jpg

评分

参与人数 1与非币 +20 收起 理由
ladou + 20

查看全部评分

分享到:
回复

使用道具 举报

回答|共 31 个

倒序浏览

沙发

PokeBox

发表于 2014-9-19 22:06:19 | 只看该作者

审核那么久……
板凳

PokeBox

发表于 2014-9-22 13:11:09 | 只看该作者

终于可以看到帖子啦,感觉棒棒哒……第一次发帖多多指教
地板

fjjjnk1234

发表于 2014-9-22 13:45:37 | 只看该作者

顶一个!!!
相由心生境随心转一切法从心想生
5#

Ares丶ST

发表于 2014-9-22 16:45:55 | 只看该作者

66666666我啥时候也自己能做出个东西出来
6#

brucehelen

发表于 2014-9-23 10:36:43 | 只看该作者

做的不错,在学校就是爽啊,时间多的是。
7#

suyong_yq

发表于 2014-9-23 11:23:33 | 只看该作者

非常不错啊,不过照片有点模糊,感觉像是用另一个树莓派的摄像头拍摄的,呵呵。
8#

PokeBox

发表于 2014-9-23 18:27:50 | 只看该作者

suyong_yq 发表于 2014-9-23 11:23
非常不错啊,不过照片有点模糊,感觉像是用另一个树莓派的摄像头拍摄的,呵呵。 ...

照片我是直接用电脑摄像头拍的。因为我没有相机所以也才会想用树莓派做个相机来
9#

ladou

发表于 2014-9-26 16:33:16 | 只看该作者

好精彩的分享,赞一个
10#

outstanding1573

发表于 2014-9-27 23:17:47 | 只看该作者

哇塞  貌似好霸气的样子啊   
[原创] 班门弄斧——个人原创基地
https://www.cirmall.com/bbs/thread-41384-1-1.html
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条