資源描述:
《機(jī)械手臂制作》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、WiiNunchuck手柄控制的6自由度機(jī)械臂之控制電路的安裝在4號(hào)板上安裝三個(gè)M3*10的單頭銅柱,下面用圓帽螺母固定好。將DFRduinoDuemilanove328控制板安裝在4號(hào)盤上。將Xbee傳感器擴(kuò)展板V5插在328控制板上面。將電池盒安裝上。將電源正負(fù)極線連接在擴(kuò)展板上。將最先安裝的舵機(jī)作為1號(hào)舵機(jī),依次按照舵機(jī)安裝的順序排號(hào),將1~6號(hào)舵機(jī)線插在8~13數(shù)字口上。舵機(jī)線的黃色線為信號(hào)線,紅色為VCC,褐色為GND。長度不夠的舵機(jī)線可以連接一個(gè)舵機(jī)延長線。所有的舵機(jī)線都插好后,準(zhǔn)備一個(gè)黑塑料管。將舵機(jī)線纏好。至此機(jī)械手臂就安裝完成了,可以通過arduino進(jìn)
2、行編程操作。在機(jī)械臂套件的基礎(chǔ)上可以添加一個(gè)WiiNunchuck手柄組成有趣的運(yùn)動(dòng)控制。準(zhǔn)備好WiiNunchuck手柄?準(zhǔn)備好WiiNunchuck手柄Arduino適配器。一共有4個(gè)接線端分別是:-:電源地GND,+:電源+5V,?????????????d:IIC引腳通信SDA口,c:IIC引腳通信SCL口將適配器上的各個(gè)IIC引腳和擴(kuò)展板上的IIC引腳一一對(duì)應(yīng)連接好。將適配器和WiiNunchuck手柄連接好這樣我們的電路部分就安裝好了。接下來就可以編寫程序,利用手柄來控制機(jī)械手。?源代碼:#include#include#in
3、clude#include"Wire.h"#include"WiiChuck.h"?//定義舵機(jī)Servoservo1;Servoservo2;Servoservo3;Servoservo4;Servoservo5;Servoservo6;?WiiChuckwii=WiiChuck();intx,y,xa,xa1=2,xa2,xa3,xa4,ya,ya1,ya2,ya3,ya4,c,z;//定義變量?voidact_init()//初始化動(dòng)作子函數(shù){??servo1.write(90);??servo2.write(70);??servo3.write
4、(30);??servo4.write(90);??servo5.write(90);??servo6.write(30);}voidsetup(){??//定義舵機(jī)控制口??servo1.attach(8);??servo2.attach(9);??servo3.attach(10);??servo4.attach(11);??servo5.attach(12);??servo6.attach(13);???act_init();//初始化??wii.initWithPower();//初始化電源引腳}?voidloop(){??while(1)??{???if(tru
5、e==wii.read())???{????//讀取手柄的值???//讀取手柄的值????x=wii.getJoyAxisX();//搖桿x軸的值????y=wii.getJoyAxisY();//搖桿y軸的值????xa1=wii.getAccelAxisX();//手柄x方向擺動(dòng)的值????ya1=wii.getAccelAxisY();//手柄y方向擺動(dòng)的值????c=wii.getButtonC();//手柄按鍵c的值????z=wii.getButtonZ();//手柄按鍵z的值????delay(30);????x=wii.getJoyAxisX();//搖桿
6、x軸的值????y=wii.getJoyAxisY();//搖桿y軸的值????xa2=wii.getAccelAxisX();//手柄x方向擺動(dòng)的值????ya2=wii.getAccelAxisY();//手柄y方向擺動(dòng)的值????c=wii.getButtonC();//手柄按鍵c的值????z=wii.getButtonZ();//手柄按鍵z的值????delay(30);????x=wii.getJoyAxisX();//搖桿x軸的值????y=wii.getJoyAxisY();//搖桿y軸的值????xa3=wii.getAccelAxisX();//手柄x
7、方向擺動(dòng)的值????ya3=wii.getAccelAxisY();//手柄y方向擺動(dòng)的值????c=wii.getButtonC();//手柄按鍵c的值????z=wii.getButtonZ();//手柄按鍵z的值????delay(30);????x=wii.getJoyAxisX();//搖桿x軸的值????y=wii.getJoyAxisY();//搖桿y軸的值????xa4=wii.getAccelAxisX();//手柄x方向擺動(dòng)的值????ya4=wii.getAccelAxisY();//手柄y方向擺動(dòng)的值?