【iOS與EV3混合機器人編程系列之中的一個】iOS要幹嗎?EV3可以更酷!

樂高Mindstorm EV3智能機器人(下面簡稱EV3)
自從在2013年的CES(Consumer Electronics Show美國消費電子展)上展出以後,
就吸引了全球廣大機器人愛好者的眼球!
EV3相比其上一代機器人NXT最大的提高就在於其硬件上。
除了更強大的ARM處理器,並載入了Linux操做系統以外。
EV3還配備了藍牙,支持外接USB,外接WiFi。
因爲有了這麼多的硬件提高,EV3最酷的特性在於
EV3支持iOS設備!

編程


這使得咱們可以使用iOS設備比方iPhone來控制EV3。
樂高官方推出了iOS上的控制App Commander,例如如下圖所看到的:

咱們可以用Commander經過藍牙來控制EV3家庭版搭建的各類形態的機器人。
用iPhone就可以控制一個機器人。對每一個機器人愛好者來講,都是讓人興奮不已的事。
然而。官方的App Commander有它本身的侷限性!那就是它僅僅能對EV3機器人作極其簡單的控制,最主要的就是控制機器人上電機的轉動,咱們沒辦法加上不論什麼的控制邏輯。網絡


可以說,Commander僅僅是讓iOS設備變成一個EV3遙控器而已!編程語言


做爲機器人愛好者,這怎樣能讓咱們知足呢?
iPhone,iPad。做爲眼下世界上極先進的手機與平板。難道就僅僅能作一個遙控器嗎?
答案必須是No!
咱們要將iOS和EV3完美地結合起來。而後作出遠遠超出眼下EV3機器人所能作的事!

在前面,咱們已經提到EV3最吸引人的地方就是可以鏈接iOS設備。可以使用iOS設備來控制EV3機器人!ide


但官方App的侷限性使得咱們僅僅能把iOS設備當作一個機器人遙控器。這不是咱們想看到的。post


咱們但願iOS結合EV3可以使機器人變得更酷!
那麼,問題就出現了:咱們應該怎樣把iOS和EV3結合起來呢?

==iOS設備與EV3 大對照==

從上面的表格對照中咱們可以看到 除了EV3支持很是多iPhone不具有的傳感器以外。在其它方面,EV3全然和iPhone5S不是在一個數量級!性能

以此同一時候,iPhone上擁有的傳感器EV3也不具有。顯然。通常你們不會把EV3機器人和iPhone手機相提並論。畢竟二者全然不是同一個概念的產品!idea

但是。假設僅僅是從技術層面的角度來看,EV3的硬件配置真的很是低,全然落後於時代!spa

儘管很是多機器人愛好者看到EV3相對於NXT還僅僅是單片機的水準感受已經提高了好多!
看了上面的對照,你們是否是會萌生一個想法:
假設EV3機器人把iPhone的硬件全部吸取進去,那麼這機器人將會多麼強大!
是的,沒錯!因此對於機器人方面的創業者來講,這裏有兩個不錯的idea值得參考:
一、設計出一套擁有iPhone性能。並且除了主要的EV3傳感器還擁有iPhone上的全部傳感器的機器人套件!操作系統


二、利用iPhone設計一個EV3擴展硬件使得EV3的傳感器都能經過這個硬件直接鏈接到iPhone,這樣就不用EV3的控制塊,直接用iPhone進行控制!設計


但是眼下咱們尚未看到這種產品,那咱們能怎麼作呢?
經過無線通信將iOS和EV3鏈接起來!並且用iOS來控制EV3。


==iOS和EV3的結合==


咱們一項一項的來分析iOS和EV3的結合方式:
1)編程與控制方式
咱們在EV3上僅僅能使用圖形化語言來進行編程,這對於廣大從未接觸過編程的小夥伴們而言固然是不錯的選擇。但是,當咱們已經熟悉了圖形化語言。對編程也有必定的瞭解以後。咱們就會發現圖形化語言的弊端。那就是哪怕是編寫略微複雜一點的程序,用圖形化語言編寫看起來都會昏亂不堪。你們僅僅要看一下EV3家庭版的Gyro Boy的圖形化程序就會深有體會了。
編寫麻煩。又不易看懂使得圖形化語言的編程限制了EV3機器人控制程序的編寫。

所以,假設咱們想用EV3機器人來作點更酷的事。咱們就必須考慮用通常的文字語言來進行編程。
在WWDC2014上,蘋果公司推出了全新的編程語言Swift,簡潔現代的語言風格使得爲iOS和Mac編敲代碼變得更加easy。

而Objective C語言,做爲一直以來的iOS開發語言。也仍然可以使用,Swift語言與Objective C語言全然無縫鏈接。
那麼,咱們是否是可以考慮把原本放在EV3控制塊的圖形化程序移動到iOS設備上,而後用iOS來控制EV3機器人?
1)在正常的狀況,咱們經過計算機上的EV3軟件來編寫圖形化語言程序,而後編寫完後將程序寫入到EV3控制塊上執行。

EV3控制塊依據程序輸出控制到EV3各個port上鍊接的傳感器,實現整個程序的執行!


2)加入iOS設備後。咱們在計算機上用Swift或Objective C語言來編寫控制EV3機器人的程序,編寫完後在iOS設備上執行!執行後。iOS設備先經過WiFi或藍牙鏈接EV3控制塊,而後iOS設備依據程序輸出控制指令到EV3控制塊。EV3控制塊依據接收到的iOS設備的控制指令輸出控制到EV3各個port上鍊接的傳感器,並且EV3控制塊實時將傳感器的傳輸數據給iOS設備從而在iOS設備上的程序可以獲取傳感器數據進行有效的程序執行。
總的來講。咱們要用iOS設備來替代EV3控制塊,使得EV3控制塊的做用僅僅用於數據交換和輸出控制的中轉站!在這裏咱們先不談詳細的實現方式。這將在將來的篇章中介紹。


2)硬件的使用
從上面的對照中咱們也看到了。iOS設備上有很是不錯的硬件。

咱們應該考慮將iOS設備上的硬件也應用在EV3機器人上。

這裏事實上咱們有兩種使用iOS設備的方式:
(1)iOS設備在咱們的手上,iOS設備既是EV3機器人的大腦,也是EV3機器人的控制器。
(2)iOS設備直接綁在EV3機器人上,iOS設備上的硬件與EV3上的傳感器一塊兒協同工做。咱們可以考慮再加一個iOS設備放在手上做爲控制器。
EV3上的傳感器使用在這裏就不談了,咱們來看看iOS設備上的硬件能怎麼用?


==iOS設備的硬件使用==


iOS設備上可以和EV3結合的硬件可以分紅下面幾類:
1)攝像頭
2)運動傳感器(包括三軸陀螺儀傳感器,三軸加速度傳感器)
3)GPS和指南針傳感器
4)語音識別
5)多點觸控Retina屏幕
6)WiFi與藍牙通信模塊
對於WiFi與藍牙通信模塊。其做用就是鏈接EV3實現數據通信,在此暫且不談。而其它類別的硬件則在EV3機器人上大實用武之地。
1)攝像頭
EV3機器人瞬間多了一僅僅眼睛!


最主要的玩法就是將iPhone綁在EV3機器人上。而後讓iPhone上的攝像頭實時拍攝視頻並傳輸到還有一臺手持iOS設備,這樣咱們就可以遠距離觀看EV3機器人看到的影像。是否是很是酷呢?
高級點的玩法那就是進行圖像識別。EV3機器人有了攝像頭就能經過編程實現圖像識別從而利用識別的結果來進行特別的行爲。

比方本身主動行走,將EV3機器人變成一輛無人駕駛汽車,本身主動躲避障礙,本身主動識別路線行走,無需人的干預!假設作獲得這一點,那這EV3機器人就太強大了是否是呢?
2)運動傳感器
有了運動傳感器,咱們可以有兩種用法:
(1)在EV3機器人上。EV3教育版配備有陀螺儀傳感器。但僅僅是單軸的。也就是說僅僅能檢測一個方向上的旋轉狀況。而iOS設備上的陀螺儀和加速度傳感器都是三軸的,這意味着可以檢測空間X,Y,Z三個方向的運動狀況。

將iPhone與EV3綁定,使用iPhone上的運動傳感器。將大大加強EV3機器人的性能。比方EV3家庭版的Gyro Boy模型,假設加上運動傳感器,咱們不但可以檢測Gyro Boy先後俯仰。還能檢測Gyro Boy在移動過程當中是上坡仍是下坡,是左轉仍是右轉。詳細轉動多少角度,咱們都可以輕鬆知道。依據運動傳感器的數據。結合伺服電機的數據,咱們甚至可以計算出整個EV3機器人的運動軌跡。而後直接顯示在咱們手持設備的屏幕上。這又使得EV3機器人提高了一個層次。


2)做爲手持控制器。

利用運動傳感器,咱們可以將手中的iPhone變成一個體感控制器。

因爲依據運動傳感器的數據,咱們就可以知道iPhone的詳細姿態,從而依據姿態輸出詳細的控制量。

咱們仍是舉樣例說明。比方咱們搭建了一個EV3機械臂,那麼在此以前咱們能怎麼控制它呢?EV3的官方樣例僅僅能讓機械臂本身動。但這不是咱們想要看到的效果!有了iPhone,咱們就有更酷的玩法了:咱們用iPhone體感控制EV3機械臂,iPhone在咱們手中旋轉,EV3機械臂就跟着旋轉,iPhone在咱們手中往下轉動,EV3機械臂就往下轉動。

。。這將是咱們最後挑戰的項目之中的一個,將在後面的篇章中詳細講述實現的方法。


3)GPS和指南針傳感器
有了GPS和指南針傳感器,咱們對EV3機器人的控制將變得更加駕輕就熟。因爲咱們連EV3機器人在哪裏都一清二楚了。結合攝像頭。結合運動傳感器,甚至結合網絡,咱們可以實現對EV3機器人的超遠程控制。咱們不需要看到機器人自己就能經過網絡傳輸控制它,這讓EV3機器人變成了真正意義上的機器人!

咱們把EV3打形成機器人Walle怎樣?
4)語音識別
想不想用iPhone經過語音識別來控制EV3機器人呢?咱們將可以作到。
(加點Siri介紹)
iPhone自帶的Siri正在慢慢開放。在將來的iOS版本號中,咱們也許可以直接使用Siri來控制EV3機器人。


那麼,即便Siri臨時不開放咱們沒法使用,咱們還可以使用科大訊飛的語音識別技術。經過在iOS應用中嵌入科大訊飛的語音識別SDK,咱們就可以在應用中識別語音而後依據語音識別的內容來進行推斷。從而輸出控制!
5)多點觸控屏幕
不想使用EV3控制塊上醜陋的黑白點陣屏幕。那咱們直接用iPhone的Retina屏替換掉算了。

在iPhone上查看EV3鏈接的每一個傳感器的信息顯然更方面,咱們固然也可以在iPhone上測試每一個傳感器的工做狀況。甚至作好數據記錄。
你們可以看到。有了iOS設備。簡直就是給EV3機器人加入了幾根強勁的翅膀。可以使EV3機器人站得更高,創造出曾經不可思議的EV3機器人。
也許很是多小夥伴們會有這種疑慮:如此強大的EV3機器人,咱們能作出來嗎?

【本文爲原創文章。如需轉載,請註明出處。謝謝!

songrotek@qq.com】

相關文章
相關標籤/搜索