mBlok+ Arduino,讓 meArm機械手臂動起來
MeArm是一個扁平設計的機器手臂套件,只需要一支起子和對事物熱情的心即可以完成MeArm的組裝,MeArm能夠帶你進入程式設計、電子、機器人和工程的世界,Lifehacker網站描述MeArm是對初學者一個完美的Arduino專案。
MyArm是我們根據MeArm的開源圖,加上為本地學童精心建造的教學套件,初階版本包括機械手臂、電路板、雙搖桿,進階版本則加上紅外線遙控控制、藍芽與手機控制、無線WiFi物聯網的功能,初階版本在於帶領初學者進入MyArm的世界,透過雙搖桿來控制機械手臂的四顆伺服馬達,可完成手臂的三個維度的運動,以及機械手臂爪子的動作。
紅外線遙控版本,可讓我們用紅外線遙控器控制機械手臂,藉此我們可以學習紅外線遙控的原理與操作,我們也可以用家電的遙控器來做為控制器,甚至透過手機利用一個紅外線發射器,就可以做成一個強大的紅外線遙控器,控制所有家中的電器設備,像是電視、冷氣機等。
藍芽與手機控制版本則是利用智慧型手機內建的藍芽,來連結機械手臂,透過此版本,我們可以學習如何在手機或平板上設計程式。
無線WiFi版本則是因應現今最夯的物聯網科技,此版本可以透過Web對機械手臂進行控制,可實現遠端遙控機械,任何想要學習物聯網科技的不能錯過此一版本。
本教學是我們為了本地學童所建立的完整中文學習資源,希望讓大家夠透過MyArm進入創客的世界。
單一馬達測試
mBlock:(程式下載)
Arduino IDE (程式下載)
/* 馬達的接法Vcc接Arduino板子的Vin,GND接板子GND,訊號線接5、9、10、11,其中之1。 degree: 馬達的旋轉角度(45~135) PM:1或-1,以用控制degree的值是加上15(角度的變化)還是15。 程式判斷若degree值等於45時,讓PM為1,使得degree累加15 若等於135時,讓PM=-1,使得degree值遞減15 */ #include <Servo.h> Servo motor; //定義馬達變數(物件) void setup() { // put your setup code here, to run once: motor.attach(9); //設定馬達訊號腳連接至Arduino板子的數位接腳9 } int pm = 1; int degree = 45; void loop() { // put your main code here, to run repeatedly: motor.write(degree); //讓馬達轉至degree角度 delay(300); //馬達若以高速方式旋轉會燒毀,必須加上延遲,這邊單位是毫秒,也就是1/1000秒。 if (degree == 45) { pm = 1; } if (degree == 135) { pm = -1; } degree = degree + (pm * 15); //變化degree, }
四顆馬達的控制-mBlock參考:
參考資料:
1.Arduino: MeArm 與雙搖桿,http://gsyan888.blogspot.tw/2014/11/arduino-mearm-dual-joystick.html