資料介紹
描述
?
?
介紹
在我們之前的博客中,我們發布了關于如何使用 Zio 模塊控制機械臂的第 1 部分教程。第 1 部分主要集中于自動控制機械臂的爪子打開和關閉。?
在今天的教程中,我們將通過包含一個 PS2 無線控制器來控制機械臂來稍微改進一下。對于這個項目,我們將使用 4 個伺服系統。?
一、項目概況
難度級別:
有用的資源:
您應該對如何安裝 Zio 開發板有基本的了解。在本教程中,我們假設您的開發板已經配置好并準備好進行設置。如果您還沒有配置您的開發板,請查看下面的 Zio Qwiic 入門指南教程以開始使用:
2.原理圖
下面是機械臂第 2 部分項目的接線圖以及編碼部分需要理解的 PS2 控制器圖。
?
?
PS2控制器圖
?
?
3. Zio 模塊連接設置
下面是我們要設置的 Zio 模塊與機械臂的連接。將所有模塊連接在一起非常簡單,設置時間不會超過 10 分鐘。
將機械臂伺服連接到 Zio 16 伺服控制器
?
?
將 16 伺服器連接到 DC/DC 升壓器并將其設置為 6.0V。?
我們使用 DC/DC Booster 將電池供電電壓升壓并調整至 6.0。
使用 DC Booster 上的電位器調節電壓,直到達到 6.0。按下 In/Out 按鈕,直到顯示屏顯示 6.0。您需要先為 DC/DC Booster 供電(3.7V 電池)以調節電壓。?
?
?
將 Zuino M Uno 連接到 Zio 16 伺服控制器
Qwiic 使用 qwiic 電纜將 Zuino M Uno 連接到 Zio Servo 控制器。
?
?
將 Uno 連接到 PS2 接收器
下面是連接的引腳圖。這部分需要 5 根公對母跳線。
?
?
4. 編碼機械臂
我們將使用 PS2 Arduino 庫對我們的 PS2 無線控制器進行編碼,以便與我們的機械臂配合使用。您可以在我們的Github 頁面上找到并下載此機械臂第 2 部分項目的源代碼。
下載并安裝以下庫并將其保存在本地 Arduino IDE 庫文件夾中:
要安裝庫,請打開 Arduino IDE,轉到 Sketch 選項卡,選擇 Include Library -> Add.Zip Library。選擇要包含在您的 IDE 中的上述庫。
Arduino 有一個關于如何將庫安裝到 Arduino IDE 的便捷指南。在這里查看它們!
運行你的代碼。
打開 Arduino 集成開發環境。在文件 > 示例 > PS2_Arduino_Library 下,選擇PS2X_Servo
注意:在使用 PS2 控制器控制機械臂之前,請檢查以下步驟:
打開你的 PS2 控制器。檢查模式 LED 是否亮起。如果沒有,請按控制器上的模式按鈕。完成上述操作后,您需要按下 Zuino M Uno 上的重置按鈕,它才能讀取您的控制器設置。您需要按 L1 和操縱桿來移動您的機械臂。?
- 左操縱桿控制手臂向上或向下彎曲
- 右操縱桿控制爪打開或關閉,并向左或向右旋轉爪。
?
?
五、代碼說明
PS2X Arduino 庫的使用很簡單,只需要初始化、設置,然后是讀取命令。
要設置 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
我們已經用我們用來連接到我們的 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。我們評論了我們不使用的那些。
我們將僅使用控制器的操縱桿命令和 L1 來控制機械臂的運動。
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);
下面的代碼是我們編寫控制機械臂的伺服系統的地方,我們將其包含在 ps2x.button(PSB_L1)|| 下的函數調用中。ps2x.按鈕(PSB_R1)。?
您需要同時按下 L1 或 R1 按鈕和操縱桿來控制您的機械臂。?
Left Joystick 控制 Arm 部分的 servos 2 和 3 - 分別控制手臂的彎曲 Up 和 Down,而 Right Joystick 控制 Robotic Arm's Claw 的 servos 0 和 1 打開或關閉,以及向左或向右旋轉。
伺服 0、1 - 爪
伺服 2、3 - 手臂?
您可以更改此部分中的值以控制機械臂角度:
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);
- 電源設計方法-第2部分
- 使用Zio模塊控制機械臂(第4部分)
- 使用Zio控制機械臂(第3部分)
- 使用Zio控制機械臂(第1部分)
- 電氣過應力簡介-第2部分
- 了解你的電池組:第2部分
- LDO基礎知識:噪聲 - 第2部分
- 實時控制技術滿足實時工業通信發展的需求 —— 第2部分
- 用電信息采集系統型式規范第2部分 1次下載
- 用電信息采集系統技術規范第2部分 3次下載
- 用電信息采集系統檢驗規范第2部分 0次下載
- 用電信息采集系統通信協議第2部分 3次下載
- 電壓基準如何影響ADC性能,第2部分 10次下載
- 了解天線規格和操作,第2部分 6次下載
- 第2部分-數據模塊編碼和信息控制編碼 8次下載
- 基于六維力傳感器的機械臂自動裝配應用 407次閱讀
- 【開源獲獎案例】四軸機械臂控制系統 856次閱讀
- 雙極踏腳車(第二部分):微步和衰減模式 461次閱讀
- ADC數字下變頻器:抽取濾波器和ADC混疊,第2部分 1455次閱讀
- ADC眼中的虛擬評估,第2部分 624次閱讀
- 基于深度強化學習的視覺反饋機械臂抓取系統 1896次閱讀
- 邊緣智能第1部分:邊緣節點 1046次閱讀
- 用于電機控制的sinc濾波器和控制算法同步的不同方法 3372次閱讀
- 實時控制技術滿足實時工業通信發展的需求 —— 第2部分 993次閱讀
- dfrobotArduino開發實戰-遙控機械臂套裝簡介 2399次閱讀
- JESD204C入門第2部分:新特性及其內容 6242次閱讀
- DC/DC轉換器傳導EMI - 第2部分,噪聲傳播和濾波 3150次閱讀
- MATLAB機械臂的兩種路徑規劃 8995次閱讀
- 無源元件并非真的“無源”:第1部分——電容 2433次閱讀
- 混合信號系統接地揭秘之第二部分 1663次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多