|
樓主 |
發表於 2016年11月9日 07:46 PM
|
顯示全部樓層
本帖最後由 kris000 於 2016年11月15日 01:06 AM 編輯
Pixhawk 2(Cube) 飛控 Intel Edison 協同電腦的安裝與建置
Pixhawk 2 Cube版的標準載板有內建 Intel Edison 插槽,當我們插上 Intel Edison 模組,就等於多了一台電腦在Pixhawk旁邊,只要學會幾個簡單的程式命令,我們就可以隨心所欲來控制 Pixhawk,而不需去動到Pixhawk的原始碼或編譯程式,可達成的應用可以說是無限的(只受限於你的想像力而已),簡單的應用就是把Pixhawk弄上網再寫一些飛行控制之類...複雜的就可以結合機器視覺(PixY/OpenMV/...)空中機器人之類.
本篇將帶領各位建置好開發環境,基本上只要按照圖片一步一步就一定可以完成.
也不必害怕Linux,因為這個不是重點,安裝完就沒Linux的事了,我們是把重點放在飛行控制的Script這個部份,而不是去深究OS或崁入式系統.
首先說一下為什麼我不採用Pixhawk官方用的方式,或許你在國外找到的文件都是用Ubilinux(包括ArduCopter官方),截至目前為止,可以在Intel Edison上面跑的Linux共有三種,這三種我都實際安裝且詳加測試過,我的想法如下....
1.Ubilinux
這個是Pixhawk官方建議的OS,也是國外所有教學文件在用的,我發現它是用很舊的Debian linux核心編譯而來,老實說這問題不大...
問題在這個團隊因為收不夠贊助費就關閉該專案且禁止網路流通之前他們的成果.
說明白點...就是Ubilinux己經死了!!(Ubilinux官網)
2.Jubilinux
用新的Debian核心編譯而來,該有的全都有了,但佔據相當大的空間,套件移除都移除不完,只差沒有MySQL/PHP...在不移除套件的情況下是無法編譯一些需要的套件,維護這個專案並非大團隊,估計是不會有新的版本出現.
3.Yocto project Linux
怎麼說呢...這個就是Intel Edison官方建議的Linux,可以跟Intel配置軟體相容,Yocto這個專案還蠻活躍的,但有些我們要用的套件必須自己裝(其實這也是好處).
所以我最後採用Yocto Project,但安裝步驟我故意採用手動安裝,這種安裝方式不管是要用Ubilinux還是Jubilinux或Yocto都是一樣的,不受限於Intel那個配置軟體.
*下載 Intel Edison 配置工具(Intel Edison官方下載頁)
下載配置工具(intel_edison_setup_win_v.....exe)並執行.
*打開Intel Edison配置工具來安裝驅動
驅動安裝完成會進入[更新固件]頁面,此時我們採用手動安裝,所以暫時關閉配置工具.
註:
Yocto Project Linux 或 UbiLinux 或 JUbiLinux 手動安裝方法是一樣的,只要學會手動安裝就可以自由的使用其它 Project的Linux,本例將採用 Yocto Project Linux.
*下載Intel Edison最新固件(官方固件下載頁)
*下載 DFU-Util (DFU USB刷寫工具)
有7-zip的人可按上面連結下載刷寫工具,沒辦法解壓縮tar或解gz.xz的人請按(下載Dfu-Util),找ZIP格式,用Winrar就可以解壓縮.
把下載回來的固件及Dfu-Util解壓縮,再把DFU-Util的dfu-util.exe及libusb-1.0.dll這兩個複製到固件資料夾內.
*更新Intel Edison固件
進入Windows命令列(開始->輸入cmd再按Enter鍵),再cd 到固件所在資料夾.
例如:
cd \Intel\Edison\Image_Yocto[按Enter]
flashall.bat[按Enter]
此時會提示將Edison 接到USB,如果本來已接上USB就拔開再插回去,當一切順利會看到底下這個畫面,整個更新過程約5分鐘左右.
這邊通常會碰上的問題應該是Windows的path不對,就是 flashall.bat按Enter就出錯並結束.
解決方法:
開始->控制台->系統->進階系統設定->環境變數
找到Path並加上;C:\Windows\System32 就可以了.
*打開Intel Edison配置工具,配置WIFI連接到Internet
連上WIFI並取得IP位址
*啟用SSH(Secure Shell 安全連線)服務
輸入root密碼,以啟用SSH服務.
註:請牢記這個密碼,如果忘了...最簡單的方法是重刷一次固件.
*四個綠色勾勾,安裝成功
*下載PuTTY(PuTTY下載頁)
這個PuTTY.exe是免安裝版,自己找個資料夾放(或放桌面),點擊打開PuTTY
用PuTTY連線到Intel Edison
*測試看看是否Intel Edison己連上Internet
最簡單的方法就是
ping google.com
或
ping www.rctw.net
測試是否已連上Internet
*更新套件,把底下這行複製,再到 PuTTY 內按Mouse右鍵:
opkg update
這個會跑一段時間,請耐心等得完成.
*安裝必要套件,把底下2行複製,再到 PuTTY 內按Mouse右鍵:
pip install pyserial
pip install mavproxy
這個也會跑一段時間,請耐心等得完成
*到這邊己大功告成,Inter Edison己成為Pixhawk 2的協同電腦了.
接下來就是啟動Mavproxy 把 Intel Edison 連接到Pixhawk.
mavproxy.py --master=/dev/ttyMFD1,57600 --rtscts --out=udpin:0.0.0.0:14550 --logfile=/dev/null
--master 是指Mavlink的來源,本例是Pixhawk的TELEM2連接到Intel Edison的Serial1.
--out 是指Mavlink要轉發到那邊,本例是Intel Edison的14550 Port,這樣我們就可以用
Mission Planner以UDPCl連線到192.168.1.113(改成你的Intel Edison IP),Port=14550.
--rtscts 是指打開流量控制,這個必須Pixhawk也有打開,否則請不要加上這個.
--logfile是指tlog及tlog.raw 這些數傳記錄要放在那邊,由於Intel Edison的Flash空間有限,如非必要,我們就把記錄全丟進"黑洞",眼不見為淨...
黑洞的做法如下,請把底下幾行貼到PuTTY內.
mknod /dev/null c 1 3
chmod 666 /dev/null
mknod /dev/null.raw c 1 3
chmod 666 /dev/null.raw
*Mavproxy的 Module 編寫
Mavproxy的程序編寫最快速的方法是看別人怎麼寫的,基本上是拿別人的程序來改最快.
安裝完mavproxy也會安裝一些範例,由於每個人Linux目錄可能不同,可貼底下這行去找.
find / -name "mavproxy_test.py"
找到就可進到module目錄,例如
cd /usr/lib/python2.7/site-packages/MAVProxy/modules
再用底下這行打開,當然用vi或自己慣用的也可以.
nano mavproxy_test.py
我個人是在Windows編寫好(Mavproxy是跨平台的,當然可以在Windows上面跑 ),且在windows用模擬器跑了沒問題再丟到Intel Edison內,這樣飛機飛上天也出不了什麼大問題.
*如何開機自動跑Mavproxy
Intel Edison有3種方法
[1]用update-rc.d加入開機執行(紅字的部份是用來貼上的).
cd /etc/init.d
nano run_mav.sh
貼上底下#!/bin/bash
mavproxy.py --master=/dev/ttyMFD1,57600 --rtscts --out=udpin:0.0.0.0:14550 --logfile=/dev/null --daemon &
按CTRL-X再按Y及Enter儲存
update-rc.d run_mav.sh defaults 97
如果要移除自動執行則 update-rc.d -f run_mav.sh remove
這其實就像把批次檔(*.bat檔)丢到Windows的"啟動"內的意思.
[2]第2種方法是service(就像Windows的服務)
在/lib/systemd/system建立一個 run_mav.service,貼上
[Unit]
Description={Mavproxy}
After={xdk-daemon.service}
[Service]
ExecStart={/etc/init.d/run_mav.sh}
Restart=always
RestartSec=10s
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
再用底下這行安裝服務
systemctl enable run_mav.service
若要移除則 systemctl disable run_mav.service
[3]要寫一支簡單的cpp程式,判斷依循關係,這個有點麻煩,請自己研究.
|
評分
-
查看全部評分
|