資料介紹
描述
?

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

?
PS2控制器圖
?

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

?
五、代碼說明
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)用我們用來連接到我們的 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 來控制機(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);
下面的代碼是我們編寫控制機(jī)械臂的伺服系統(tǒng)的地方,我們將其包含在 ps2x.button(PSB_L1)|| 下的函數(shù)調(diào)用中。ps2x.按鈕(PSB_R1)。?
您需要同時(shí)按下 L1 或 R1 按鈕和操縱桿來控制您的機(jī)械臂。?
Left Joystick 控制 Arm 部分的 servos 2 和 3 - 分別控制手臂的彎曲 Up 和 Down,而 Right Joystick 控制 Robotic Arm's Claw 的 servos 0 和 1 打開或關(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部分)
- 電氣過應(yīng)力簡(jiǎn)介-第2部分
- 了解你的電池組:第2部分
- LDO基礎(chǔ)知識(shí):噪聲 - 第2部分
- 實(shí)時(shí)控制技術(shù)滿足實(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次閱讀
- 【開源獲獎(jiǎng)案例】四軸機(jī)械臂控制系統(tǒng) 1319次閱讀
- 雙極踏腳車(第二部分):微步和衰減模式 656次閱讀
- ADC數(shù)字下變頻器:抽取濾波器和ADC混疊,第2部分 2051次閱讀
- ADC眼中的虛擬評(píng)估,第2部分 822次閱讀
- 邊緣智能第1部分:邊緣節(jié)點(diǎn) 1251次閱讀
- 用于電機(jī)控制的sinc濾波器和控制算法同步的不同方法 4457次閱讀
- 實(shí)時(shí)控制技術(shù)滿足實(shí)時(shí)工業(yè)通信發(fā)展的需求 —— 第2部分 1074次閱讀
- dfrobotArduino開發(fā)實(shí)戰(zhàn)-遙控機(jī)械臂套裝簡(jiǎn)介 2531次閱讀
- JESD204C入門第2部分:新特性及其內(nèi)容 6517次閱讀
- DC/DC轉(zhuǎn)換器傳導(dǎo)EMI - 第2部分,噪聲傳播和濾波 3338次閱讀
- 無源元件并非真的“無源”:第1部分——電容 2519次閱讀
- 混合信號(hào)系統(tǒng)接地揭秘之第二部分 1712次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論