資料介紹
描述
?

?
這篇博文是Zio 機(jī)器人系列的一部分。
介紹
在我們之前的博客中,我們發(fā)布了關(guān)于如何使用 Zio 模塊控制機(jī)械臂的第 1 部分教程。第 1 部分主要集中于自動(dòng)控制機(jī)械臂的爪子打開(kāi)和關(guān)閉。?
在今天的教程中,我們將通過(guò)包含一個(gè) PS2 無(wú)線控制器來(lái)控制機(jī)械臂來(lái)稍微改進(jìn)一下。對(duì)于這個(gè)項(xiàng)目,我們將使用 4 個(gè)伺服系統(tǒng)。?
一、項(xiàng)目概況
難度級(jí)別:
有用的資源:
您應(yīng)該對(duì)如何安裝 Zio 開(kāi)發(fā)板有基本的了解。在本教程中,我們假設(shè)您的開(kāi)發(fā)板已經(jīng)配置好并準(zhǔn)備好進(jìn)行設(shè)置。如果您還沒(méi)有配置您的開(kāi)發(fā)板,請(qǐng)查看下面的 Zio Qwiic 入門(mén)指南教程以開(kāi)始使用:
2.原理圖
下面是機(jī)械臂第 2 部分項(xiàng)目的接線圖以及編碼部分需要理解的 PS2 控制器圖。
?

?
PS2控制器圖
?

?
3. Zio 模塊連接設(shè)置
下面是我們要設(shè)置的 Zio 模塊與機(jī)械臂的連接。將所有模塊連接在一起非常簡(jiǎn)單,設(shè)置時(shí)間不會(huì)超過(guò) 10 分鐘。
將機(jī)械臂伺服連接到 Zio 16 伺服控制器
?

?
將 16 伺服器連接到 DC/DC 升壓器并將其設(shè)置為 6.0V。?
我們使用 DC/DC Booster 將電池供電電壓升壓并調(diào)整至 6.0。
使用 DC Booster 上的電位器調(diào)節(jié)電壓,直到達(dá)到 6.0。按下 In/Out 按鈕,直到顯示屏顯示 6.0。您需要先為 DC/DC Booster 供電(3.7V 電池)以調(diào)節(jié)電壓。?
?

?
將 Zuino M Uno 連接到 Zio 16 伺服控制器
Qwiic 使用 qwiic 電纜將 Zuino M Uno 連接到 Zio Servo 控制器。
?

?
將 Uno 連接到 PS2 接收器
下面是連接的引腳圖。這部分需要 5 根公對(duì)母跳線。
?

?
4. 編碼機(jī)械臂
我們將使用 PS2 Arduino 庫(kù)對(duì)我們的 PS2 無(wú)線控制器進(jìn)行編碼,以便與我們的機(jī)械臂配合使用。您可以在我們的Github 頁(yè)面上找到并下載此機(jī)械臂第 2 部分項(xiàng)目的源代碼。
下載并安裝以下庫(kù)并將其保存在本地 Arduino IDE 庫(kù)文件夾中:
要安裝庫(kù),請(qǐng)打開(kāi) Arduino IDE,轉(zhuǎn)到 Sketch 選項(xiàng)卡,選擇 Include Library -> Add.Zip Library。選擇要包含在您的 IDE 中的上述庫(kù)。
Arduino 有一個(gè)關(guān)于如何將庫(kù)安裝到 Arduino IDE 的便捷指南。在這里查看它們!
運(yùn)行你的代碼。
打開(kāi) Arduino 集成開(kāi)發(fā)環(huán)境。在文件 > 示例 > PS2_Arduino_Library 下,選擇PS2X_Servo
注意:在使用 PS2 控制器控制機(jī)械臂之前,請(qǐng)檢查以下步驟:
打開(kāi)你的 PS2 控制器。檢查模式 LED 是否亮起。如果沒(méi)有,請(qǐng)按控制器上的模式按鈕。完成上述操作后,您需要按下 Zuino M Uno 上的重置按鈕,它才能讀取您的控制器設(shè)置。您需要按 L1 和操縱桿來(lái)移動(dòng)您的機(jī)械臂。?
- 左操縱桿控制手臂向上或向下彎曲
- 右操縱桿控制爪打開(kāi)或關(guān)閉,并向左或向右旋轉(zhuǎn)爪。
?

?
五、代碼說(shuō)明
PS2X Arduino 庫(kù)的使用很簡(jiǎn)單,只需要初始化、設(shè)置,然后是讀取命令。
要設(shè)置 PS2 控制器與 Uno 的連接,以下是您需要在代碼中定義的引腳:
/****************************************************************
?* set pins connected to PS2 controller:
?*? ?- 1e column: original
?*? ?- 2e colmun: Stef?
?* replace pin numbers by the ones youuse
****************************************************************/
#define PS2_DAT? ? ? ? 13? //14? ??
#define PS2_CMD? ? ? ? 11? //15
#define PS2_SEL? ? ? ? 10? //16
#define PS2_CLK? ? ? ? 12? //17
我們已經(jīng)用我們用來(lái)連接到我們的 Uno 的引腳替換了引腳,如上面的引腳圖所示。
/***************************************************************** select modes of PS2 controller:?
*? ?- pressures = analog reading of push-butttons
*? ?- rumble? ? = motor rumbling?
* uncomment 1 of the lines for each mode selection
****************************************************************/
//#define pressures? ?true
#define pressures? ?false
//#define rumble? ? ? true
#define rumble? ? ? false
在這里,我們將壓力和隆隆聲的 PS2 模式定義為 false。我們?cè)u(píng)論了我們不使用的那些。
我們將僅使用控制器的操縱桿命令和 L1 來(lái)控制機(jī)械臂的運(yùn)動(dòng)。
void loop() {
/* You must Read Gamepad to get new values and set vibration valuesps2x.read_gamepad(small motor on/off, larger motor strenght from 0-255)if you don't enable the rumble, use ps2x.read_gamepad(); with no values
You should call this at least once a second*/?
if(error == 1) //skip loop if no controller found? ? ? ?return;
else { //DualShock Controller
? ? ? ps2x.read_gamepad(false, vibrate); //read controller and set large motor to spin at 'vibrate' speed? ? ? ?
if(ps2x.Button(PSB_START))//will be TRUE as long as button is pressed? ? ? ? ? ? ? ?
Serial.println("Start is being held");? ? ? ?
if(ps2x.Button(PSB_SELECT))? ? ? ? ? ? ? ?
Serial.println("Select is being held");? ?
vibrate = ps2x.Analog(PSAB_CROSS);? //this will set the large motor vibrate speed based on how hard you press the blue (X) button?
if(ps2x.Button(PSB_L1) || ps2x.Button(PSB_R1)) { //print stick values if either is TRUE
RY_Value=ps2x.Analog(PSS_RY);?
RX_Value=ps2x.Analog(PSS_RX);?
LY_Value=ps2x.Analog(PSS_LY);?
LX_Value=ps2x.Analog(PSS_LX);
Serial.print("Stick Values:");?
Serial.print(RX_Value);?
Serial.print("? ");?
Serial.print(RY_Value);
Serial.print("? ");?
Serial.print(LY_Value);
Serial.print("? ");?
Serial.println(LX_Value);
下面的代碼是我們編寫(xiě)控制機(jī)械臂的伺服系統(tǒng)的地方,我們將其包含在 ps2x.button(PSB_L1)|| 下的函數(shù)調(diào)用中。ps2x.按鈕(PSB_R1)。?
您需要同時(shí)按下 L1 或 R1 按鈕和操縱桿來(lái)控制您的機(jī)械臂。?
Left Joystick 控制 Arm 部分的 servos 2 和 3 - 分別控制手臂的彎曲 Up 和 Down,而 Right Joystick 控制 Robotic Arm's Claw 的 servos 0 和 1 打開(kāi)或關(guān)閉,以及向左或向右旋轉(zhuǎn)。
伺服 0、1 - 爪
伺服 2、3 - 手臂?
您可以更改此部分中的值以控制機(jī)械臂角度:
pulselen0=map(RY_Value,0,127,SERVOMIN0,SERVOMAX0);? ? ? pulselen1=map(RX_Value,0,127,SERVOMIN0,SERVOMAX0);? ? ? pulselen2=map(LY_Value,0,127,SERVOMIN2,SERVOMAX2);? ? ? pulselen3=map(LX_Value,0,255,SERVOMIN3,SERVOMAX3);
- 電源設(shè)計(jì)方法-第2部分
- 使用Zio模塊控制機(jī)械臂(第4部分)
- 使用Zio控制機(jī)械臂(第3部分)
- 使用Zio控制機(jī)械臂(第1部分)
- 電氣過(guò)應(yīng)力簡(jiǎn)介-第2部分
- 了解你的電池組:第2部分
- LDO基礎(chǔ)知識(shí):噪聲 - 第2部分
- 實(shí)時(shí)控制技術(shù)滿(mǎn)足實(shí)時(shí)工業(yè)通信發(fā)展的需求 —— 第2部分
- 用電信息采集系統(tǒng)型式規(guī)范第2部分 1次下載
- 用電信息采集系統(tǒng)技術(shù)規(guī)范第2部分 4次下載
- 用電信息采集系統(tǒng)檢驗(yàn)規(guī)范第2部分 0次下載
- 用電信息采集系統(tǒng)通信協(xié)議第2部分 3次下載
- 電壓基準(zhǔn)如何影響ADC性能,第2部分 10次下載
- 了解天線規(guī)格和操作,第2部分 6次下載
- 第2部分-數(shù)據(jù)模塊編碼和信息控制編碼 8次下載
- 使用myCobot 280機(jī)械臂結(jié)合ROS2系統(tǒng)搭建機(jī)械分揀站 89次閱讀
- 深度解析!RK3568 加持機(jī)械臂是如何實(shí)現(xiàn)顏色識(shí)別與抓取的? 67次閱讀
- 基于六維力傳感器的機(jī)械臂自動(dòng)裝配應(yīng)用 834次閱讀
- 【開(kāi)源獲獎(jiǎng)案例】四軸機(jī)械臂控制系統(tǒng) 1319次閱讀
- 雙極踏腳車(chē)(第二部分):微步和衰減模式 656次閱讀
- ADC數(shù)字下變頻器:抽取濾波器和ADC混疊,第2部分 2051次閱讀
- ADC眼中的虛擬評(píng)估,第2部分 822次閱讀
- 邊緣智能第1部分:邊緣節(jié)點(diǎn) 1251次閱讀
- 用于電機(jī)控制的sinc濾波器和控制算法同步的不同方法 4457次閱讀
- 實(shí)時(shí)控制技術(shù)滿(mǎn)足實(shí)時(shí)工業(yè)通信發(fā)展的需求 —— 第2部分 1074次閱讀
- dfrobotArduino開(kāi)發(fā)實(shí)戰(zhàn)-遙控機(jī)械臂套裝簡(jiǎn)介 2531次閱讀
- JESD204C入門(mén)第2部分:新特性及其內(nèi)容 6517次閱讀
- DC/DC轉(zhuǎn)換器傳導(dǎo)EMI - 第2部分,噪聲傳播和濾波 3338次閱讀
- 無(wú)源元件并非真的“無(wú)源”:第1部分——電容 2519次閱讀
- 混合信號(hào)系統(tǒng)接地揭秘之第二部分 1712次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費(fèi)
- 2AD庫(kù)封裝庫(kù)安裝教程
- 0.49 MB | 1次下載 | 免費(fèi)
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費(fèi)
- 4網(wǎng)絡(luò)安全從業(yè)者入門(mén)指南
- 2.91 MB | 1次下載 | 免費(fèi)
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費(fèi)
- 6海川SM5701規(guī)格書(shū)
- 1.48 MB | 次下載 | 免費(fèi)
- 7H20PR5電磁爐IGBT功率管規(guī)格書(shū)
- 1.68 MB | 次下載 | 1 積分
- 8IP防護(hù)等級(jí)說(shuō)明
- 0.08 MB | 次下載 | 免費(fèi)
本月
- 1貼片三極管上的印字與真實(shí)名稱(chēng)的對(duì)照表詳細(xì)說(shuō)明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開(kāi)發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開(kāi)發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計(jì)指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍(lán)牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費(fèi)
- 8蘋(píng)果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評(píng)論