eos_2016_spring team6 - px car
TRANSCRIPT
嵌入式期末專題報告PX-CAR0460026 陳人豪0110746 邱裕恆 方威迪
構想居家安全是個重要的議題,因此在家中可能會裝有防盜紅外線,監視器等器材,但是這些器材大部分都是靜態擺放,無法看到家中所有的角落。另一部分是因為這些器材昂貴,不是一般小康家庭能夠支付的花費。有不少的碩士班的朋友跟女朋友是遠距離戀愛,為了要解決能夠讓朋友的女友隨時隨地看到朋友以解相思之情。家中有養寵物 ( 貓、狗 ) 出門在外不放心在家中狀況。希望藉由這次的期末專題開發出一台低成本遠端遙控的居家監控機器人 :
1. 一台能遠端遙控的機器人2. 能夠透過網頁即時遠端遙控3. 能夠透過網頁看到目前影像即時的回傳
Blok diagram Flash media
serverLogitech webcam
c170Socket : Server
MySQLdatabase
Apache Server
Robot control kernel
Raspi Raspi
Creator PXA-270
Socket : Client
GPIO: control
USB
RTMPWIFI
LAN
L298NMotor driver
FA-130 DC Motor
FA-130 DC Motor
軟體架構
gateway
AFMserver
apacheserver
Robot control kernel
WEB UI
MySQLDatabase
HTML /CSS3/JSP RTMP PHP
MySQL APIGStreamer
TCP Soclet
上層系統 : 藍色負責前端網頁介面與即時影像串流,後端有一個 MySQL 資料庫,負責記錄使用這下達的控制命令,並且讓 gateway 到資料庫裡面取得控制的命令。Gateway : 綠色取出資料庫的控制指令並傳到機器人核心程式。Live streaming 把機器人的影像即時串流到網頁。Robot Control kernel : 橘色負責接收 gateway 傳來的 控制命令並藉由 GPIO 腳位輸出訊號給馬達做運動控制。
上層系統 : live streamingFlash media server•Flash Media Server 卻是提供了 RTMP 的服務,不需要 request and response ,他與使用者之間的連線是連續的,但 Flash Media Server 沒有所謂的人機介面,也不能自己直接初始化一個連線來連接影片,這個產生連線的過程,必須要藉由 Flash Player 來完成•可以對付多個 client 的問題Gstreamer•A framework for creating streaming media applications. •Its main advantages are that the pluggable components (ex.omxh264enc) can be mixed and matched into arbitrary pipelines so that it's possible to write a full-fledged video or audio editing application.
FMS
GStreamer
Strobe media
playback
webcam
PI PI
RTMP
上層系統 : live streamingStrobe media playback•Provides more flexibility than Flash Media Playback, it can be deployed behind firewalls, and based on Open Source Media Framework (OSMF). •OSMF is a pure Action Script® 3.0 framework that gives developers complete flexibility and control in creating their own rich media experiences.
RTMP(Real-Time Messaging Protocol) • 可以進行 Live Streaming ( 線上直播串流 )
• 能夠動態的根據網路頻寛調整影像 Streaming 傳送的品質對應。• 播放器在重播片段的時後只要使用小小的 buffer 不需要下載整個影片 ,可以節省頻寛
• RTMP 並不是使用 HTTP 的 Port 80 走的也不是 http 通訊協定,因此可能會被一些防火牆擋住無法透通,因此我們使用 strobe media playback 把 flash player 內嵌在我們的網頁中, port 1935
Gateway Socket thread 負責建立 socket 並與 client 做連線 MySQL thread 使用 MySQL API 到資料庫擷取網頁端傳下來的資料 在共有資源部分設一個 mutex ,每次只會有一個thread 進行共同資源的存取
Socket create
Gateway
bind
listen
Accept
MySQL connection
Fetch data
Data changed
Server message
Request command
send
yes
no
Mutex
底層系統 Socket 建立 socket 並與 server 做連線 Command 將收到的指令轉成對應的 GPIO 輸出
Socket : Server
Robot control kernel
Raspi
Creator PXA-270
Socket : Client
GPIO: control
LAN
L298NMotor driver
FA-130 DC Motor
FA-130 DC Motor
底層系統 PXA270 總共有 118 個 GPIO 右輪使用 GPIO59 、 60 左輪使用 GPIO61 、 62
底層系統
+
-
+
-
GPIO59GPIO60GPIO61GPIO62
5VGND
底層系統• ioctl(fd, GPIO_IOCTL_LED_OFF, &bit_no); 控制 GPIO 輸出或不輸出• GoForward(int fd); 前進• GoBackward(int fd); 後進• TurnRight(int fd); 右轉• TurnLeft(int fd); 左轉• Stop(int fd); 停止
未來展望•充電問題目前的設計當面臨到電池沒電時,仍需要人工的手動充電,希望在未來的設計中可以加入機器人自動定位導航的系統 (SLAM) ,讓機器人可以自動回到充電的區域進行充電,並利用無線充電技術降低 Plugin 的疏誤機率•網路安全問題希望在未來可以在網頁加入加密的機制,目前的設計只要知道 ip及連入網頁控制機器人,並對整個系統加上安全的機制,不讓外人輕易的入侵系統