Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

bowwow


Thoughts, stories and ideas.

打造Raspberry Pi 無線坦克車(PiTank)

去年安迪兒試做了raspberry pi小車後
一直想要試試更威的坦克車
可是去年碰上專案趕年底上線
安迪兒又有考試要唸書
坦克車就一直在todo list上放了好久
今年清todo list時
終於狠下心來實現它
(怠惰啊...)

剛好的安迪兒同事 Terry大
知道安迪兒想要弄坦克車
就送了安迪兒tamiya的坦克車底座
並告訴安迪兒可以用齒輪變速箱去加大扭力

他還怕我沒其它的配件
又多給了一包零星的材料包
超有用的
(真是太感謝了T.T)

所以安迪兒這次完全拿這些東西和手上現成的東西來打造

首先是程式部份

先寫一個坦克的控制中心,web介面的
這樣手機、平板、PC都可以使用

安迪兒這次是拿node.js + express來開發
因為node.js很輕巧,資源也吃不多
很適合拿來在raspberry pi上執行服務
express讓前端有個簡易的介面,給使用者看影像和操控的地方

前後端溝通方式有2種
一種是websocket
* 傳送手機x、y軸的感測,控制鏡頭即時變換視野

一種是api
* 負責畫面上四個方式的按鈕控制

以下是安迪兒完成的樣子

因為網路上大多是python的模組
node.js很少提到怎麼直接控制gpio

安迪兒這邊提一下
關於node.js控制pi gpio的方式
安迪兒是用這2隻去控制
https://www.npmjs.com/package/pi-gpio
https://www.npmjs.com/package/pi-blaster.js

pi-gpio是送GPIO訊號
pi-blaster是送伺服馬達PWM訊號

要使用這2個套件,raspberry pi上都還要另外安裝相對的東西
(2份npm的文件裡有提到,原理可以看一下套件裡的程式碼)

https://github.com/quick2wire/quick2wire-gpio-admin
https://github.com/sarfata/pi-blaster

因為年代久遠了,雖然大家都說用quick2wire-gpio-admin
但其實有錯誤(2012年的)

查了一下原因是因為raspberry pi B版後燒的image有改過
(雖然是這樣說,但B版這也很久了耶,安迪兒第一塊pi版就是B版的)

安迪兒只好去看quick2wire-gpio-admin的原始碼
並修改了一些相關的部份,再重新make過安裝就可以順利使用了

相同的情形也發生在node.js的套件
https://www.npmjs.com/package/pi-gpio

也是因為老舊判斷版子cpu等資料和gpio的部份有更動
所以安迪兒又再一次流眼淚的去修改套件
這部份的修改,安迪兒直接放上github的node_module裡
沒重新安裝的話,可以直接用安迪兒整包改好的node module

全部的程式
安迪兒己經放上github
Bow-wow Pi Tank

可以自行捉下來玩玩

安迪兒說一下
使用github上整包bowwow PiTank的步驟
首先git clone https://github.com/bowwowxx/PiTank.git xxx資料匣
然後裡面有個PiTank_module.zip 解開它,裡邊是安迪兒改好的模組
可以直接拿這個進quick2wire-gpio-admin

cd quick2wire-gpio-admin
make
sudo make install
sudo adduser $USER gpio

再來是pi-blaster

cd pi-blaster

install autoconf

sudo apt-get install autoconf

building

./autogen.sh
./configure
make

install

sudo make install

正常的話,這部份重開機後也會執行
PWM相關訊息

再來裝一下raspberry pi的node.js

wget http://node-arm.herokuapp.com/nodelatestarmhf.deb
sudo dpkg -i nodelatestarmhf.deb

看一下裝完後有沒訊息了

pi@raspberrypi ~ $ node -v
v0.12.1
pi@raspberrypi ~ $ npm -v
2.5.1

最後進到PiTank的資料匣下
有必要的話,修改一下gpio的腳位後
起動PiTank

sudo npm start

再來是影像的部份

參考
Raspberry pi 記錄3-關於Pi Camera和即時串流(MJPG Stream Server)

起動即時串流服務後,修改一下PiTank裡面index.jade的ip
再重啟PiTank

sudo npm start

打開瀏覽器,EX:192.168.0.10:3000
看一下影像和控制按鈕有沒反應了

再來是車體的部份

大約是規劃位子裝上零件
貼上照片看一下

完成圖:

附上去年完工的小車影片:
bowwow小車

附上完工的bowwow坦克車影片:
bowwow坦克車

收工嘍~收工嘍~^^

以上文章同步發表至安迪兒另一個github備份站


About the author

bowwow

TW


Discussions

comments powered by Disqus