91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用無(wú)線PS2控制器駕駛機(jī)器人坦克

454398 ? 來(lái)源:wv ? 2019-09-04 09:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:工具和材料

如何使用無(wú)線PS2控制器駕駛機(jī)器人坦克

此項(xiàng)目使用了以下工具:

焊鐵和焊絲(鏈接/鏈接)。直流電機(jī)已經(jīng)將電線焊接到其端子上。..。..但它最終會(huì)斷裂,您可能需要重新焊接它。所以考慮一下好的烙鐵和電線neaby。

EVA泡沫板(或其他非導(dǎo)電材料)。我在這個(gè)項(xiàng)目中使用的機(jī)器人底盤(pán)是鋁制的,電路板安裝在這個(gè)金屬部件上。我在電路板和金屬板之間使用了一層泡沫板,以避免可能的短路。

雙面膠帶。它用于將泡沫板粘合到電路板上,并用于安裝H橋模塊。

剪刀,用于剪切一些泡沫板矩形。

我在項(xiàng)目中使用了以下硬件部件:

基于Arduino Uno的開(kāi)發(fā)板(鏈接/鏈接/鏈接/鏈接)。它被用作機(jī)器人的主控制器。它非常易于使用和Arduino IDE編程,非常適合初學(xué)者的電子和編程。

L298N雙通道H橋模塊(鏈接/鏈接/鏈接/鏈接)。該模塊允許來(lái)自Wemos(或Arduino)的3.3V信號(hào)被放大到電機(jī)所需的12V。

DIY機(jī)器人底盤(pán)坦克(鏈接)。這個(gè)真棒套件具有制造水箱所需的一切:兩個(gè)直流電機(jī),齒輪,軌道,螺栓,螺母等。它已經(jīng)配備了組裝機(jī)箱所需的工具,這對(duì)初學(xué)者來(lái)說(shuō)非常棒!

PS2無(wú)線遙控器(鏈接)。該視頻游戲控制器可以無(wú)線發(fā)送命令給接收器,接收器可以使用串行通信微控制器連接。

18650 3.7V電池(x3)(鏈接/鏈接)。我曾經(jīng)給整個(gè)電路供電。這個(gè)油箱使用12V電機(jī)。我使用了三節(jié)串聯(lián)的3.7V電池給它們供電。

3S 18650電池座(鏈接/鏈接/鏈接)。它可以容納三個(gè)18650電池系列,并且可以很容易地安裝在水箱后部。

18650電池充電器(鏈接/鏈接)。你的電池最終會(huì)耗盡電量。當(dāng)發(fā)生這種情況時(shí),電池充電器將為您解救。

跳線(鏈接/鏈接)。我用了6個(gè)男女跳線來(lái)測(cè)量h-bridge和Wemos之間的信號(hào),以及2個(gè)用于5V和Gnd的男性 - 男性跳線。如果您計(jì)劃添加一些傳感器,則可能需要更多。

B型USB電纜。您需要這個(gè)來(lái)上傳您的代碼。大多數(shù)電路板已經(jīng)有自己的電纜。

上面的鏈接只是建議您可以在哪里找到本教程中使用的項(xiàng)目(也許可以支持我以后的教程)。您可以隨意在其他地方搜索并在您喜歡的本地或在線商店購(gòu)買(mǎi)。

第2步:組裝機(jī)器人

這個(gè)項(xiàng)目的第一部分是機(jī)器人結(jié)構(gòu)的組裝。

在以前的項(xiàng)目中我開(kāi)發(fā)了自己的機(jī)器人結(jié)構(gòu),使用方便可訪問(wèn)的材料(無(wú)需復(fù)雜的工具,3D打印機(jī)或激光切割機(jī))。

后來(lái)我決定給一個(gè)從網(wǎng)上商店獲得的機(jī)器人工具包。

起初看來(lái)裝配會(huì)很復(fù)雜或者我會(huì)遇到缺少部件的問(wèn)題(考慮到組成部件的部件數(shù)量)。但是這個(gè)套件讓我很驚訝!在我看來(lái),所有的部件質(zhì)量都很好,并配有幾個(gè)備件。因此,在工作臺(tái)下方丟失的螺絲將不會(huì)使您的項(xiàng)目無(wú)法實(shí)現(xiàn),我發(fā)現(xiàn)這是非常好的(特別是在丟失幾個(gè)螺釘后)。

另一個(gè)積極的一點(diǎn)是,所有的安裝機(jī)器人所需的工具包含在套件中(一對(duì)艾倫扳手和螺絲刀)。我相信這使得該套件非常適合沒(méi)有大量工具的初學(xué)者!

作為一個(gè)消極的方面,我會(huì)強(qiáng)調(diào)缺乏文檔。機(jī)器人的裝配手冊(cè)(中文電子表格文件)不是非常用戶(hù)友好,并且沒(méi)有很多在線教程。所以我決定在上面的視頻中記錄組裝機(jī)器人的過(guò)程!另一個(gè)關(guān)注點(diǎn)涉及機(jī)器人結(jié)構(gòu)的材料。底座完全由鋁制成,如果印刷電路板的插針接觸框架,可能會(huì)導(dǎo)致短路。

您可以使用其他在線套件。您甚至可以制作自己的結(jié)構(gòu),如下所述。

步驟3:接線電路

機(jī)器人背面安裝了一個(gè)由三節(jié)18650電池組成的電源組。它為機(jī)器人提供11.1V(3 x 3.7V)。這足以為12V直流電機(jī)供電。

L298N雙通道H橋用于控制電機(jī)。它接收Arduino板的一些5V信號(hào),并為電機(jī)提供更高的電壓。它還允許電機(jī)在兩個(gè)方向上運(yùn)行,取決于這些輸入信號(hào)的組合。

根據(jù)原理圖連接每個(gè)設(shè)備。

按照您需要連接的引腳列表:

Arduino Uno輸入/輸出:

數(shù)字引腳3 =》 H橋ENA引腳

數(shù)字引腳5 =》 H橋IN1引腳

數(shù)字引腳4 = 》 H橋IN2引腳

數(shù)字引腳8 =》 H橋IN3引腳

數(shù)字引腳7 =》 H橋IN4引腳

數(shù)字引腳6 =》 H橋ENB引腳

5V引腳=》 H橋5V引腳

Gnd引腳=》 H橋Gnd引腳

數(shù)字引腳10 = 》 PS2接收器引腳6

數(shù)字引腳11 =》 PS2接收器引腳2

數(shù)字引腳12 =》 PS2接收器引腳1

數(shù)字引腳13 =》 PS2接收器引腳7

3.3V引腳=》 PS2接收器引腳5

Gnd引腳=》 PS2接收器引腳4

H-橋輸入/輸出:

ENA引腳=》 Arduino數(shù)字引腳3

IN1引腳=》 Arduino數(shù)字引腳5

IN2 pin =》 Arduino數(shù)字引腳4

IN3引腳=》 Arduino數(shù)字引腳8

IN4 pi n =》 Arduino數(shù)字引腳7

ENB引腳=》 Arduino數(shù)字引腳6

5V引腳=》 Arduino 5V引腳

Gnd引腳=》 Arduino Gnd引腳

Gnd pin =》電池組負(fù)極線

12V引腳=》電池組正極線

OUT1 =》右電機(jī)負(fù)極線

OUT2 =》右電機(jī)正極線

OUT3 =》左電機(jī)正極線

OUT4 =》左電機(jī)負(fù)極線

PS2接收器:

引腳1(數(shù)據(jù))=》 Arduino數(shù)字引腳12

引腳2(命令)=》 Arduino數(shù)字引腳11

引腳4(接地)=》 Arduino Gnd引腳

引腳5(電源)=》 Arduino 3.3V引腳

引腳6(注意)=》 Arduino數(shù)字引腳10

引腳7(時(shí)鐘)=》 Arduino數(shù)字引腳13

步驟4:設(shè)置Arduino IDE

對(duì)于這個(gè)項(xiàng)目,我使用Arduino IDE對(duì)Arduino板進(jìn)行編程。

1。下載并安裝Arduino IDE最新版本

您可以在Arduino的網(wǎng)站上找到適用于Windows,Linux或MAC OSX的最新版本:https://www.arduino.cc/en/main/software

免費(fèi)下載,安裝在你的電腦并啟動(dòng)它。

2。添加庫(kù)

在這個(gè)項(xiàng)目中,我使用Arduino PS2X庫(kù)。

在https://github.com/madsci1016/Arduino-PS2X下載庫(kù)。解壓縮文件,并將文件夾復(fù)制到Arduino IDE庫(kù)/工具文件夾。

。..。..。..。..

現(xiàn)在您的開(kāi)發(fā)環(huán)境已準(zhǔn)備好,讓我們繼續(xù)下一步!

步驟5:PS2無(wú)線控制器庫(kù)說(shuō)明

PS2無(wú)線控制器是機(jī)器人項(xiàng)目的絕佳工具。它有很多按鈕:20個(gè)數(shù)字按鈕和2個(gè)模擬按鈕。通過(guò)這種方式,可以控制機(jī)器人。

我使用Bill Porter的PS2X庫(kù)(https://github.com/madsci1016/Arduino-PS2X)將控制器連接到Arduino Uno板。

它為控制器定義了一個(gè)PS2X類(lèi),其中包含一些從操縱桿讀取模擬和數(shù)字輸入的方法。使用以下代碼(在設(shè)置之前或期間)創(chuàng)建此類(lèi)的對(duì)象:

PS2X ps2x;

定義對(duì)象后,必須使用以下鏈接將其鏈接到Arduino I/O引腳以下函數(shù):

error = ps2x.config_gamepad(clock,command,attention,data, pressure?, rumble?);

如果連接或控制器本身出現(xiàn)問(wèn)題,此函數(shù)可能會(huì)返回一些錯(cuò)誤。

庫(kù)中使用的主要函數(shù)是用于讀取數(shù)字和模擬輸入的。要讀取和數(shù)字輸入,使用以下方法:

ps2x.Button(button);

其中按鈕是要讀取的按鈕的名稱(chēng)。每個(gè)按鈕都按如下方式進(jìn)行操作:

方向按鈕:

PSB_PAD_UP = D-pad up按鈕;

PSB_PAD_DOWN = D-pad向下按鈕;

PSB_PAD_LEFT = D-pad左按鈕

PSB_PAD_RIGHT = D-pad右按鈕

動(dòng)作按鈕:

PSB_GREEN或PSB_TRIANGLE =綠色三角形按鈕

PSB_RED或PSB_CIRCLE =紅色圓圈按鈕

PSB_BLUE或PSB_CROSS =藍(lán)色x按鈕

PSB_PINK或PSB_SQUARE =粉紅方形按鈕

觸發(fā):

PSB_L1 =左側(cè)觸發(fā)按鈕1

PSB_R1 =右側(cè)觸發(fā)按鈕1

PSB_L2 =左側(cè)觸發(fā)按鈕2

PSB_R2 =右側(cè)觸發(fā)按鈕2

棒子:

PSB_L3 =左手按鈕(是的,你可以按下手柄作為按鈕)

PSB_R3 =右鍵按鈕

菜單:

PSB_SELECT =選擇按鈕

PSB_START =啟動(dòng)按鈕

要讀取棒的模擬值(使用轉(zhuǎn)換器在0到255之間的整數(shù)),請(qǐng)使用以下方法:

ps2x.Analog(stick_axis);

其中 stick_axis 表示操縱桿和要讀取的方向,如下所示:

PSS_LY =左撇子的y位置

PSS_LX =左撇子的x位置

PSS_RY =右杖的y位置

PSS_RX =右手的x位置

使用這些基本功能,您就可以在項(xiàng)目中使用PS2控制器!在以下步驟中,我展示了一些組合這些按鈕的Arduino草圖示例!

步驟6:草圖#1 - Dpad按鈕

舊的視頻游戲,如SEGA Master System,Mega Drive和Nintendo SNES,沒(méi)有強(qiáng)制敏感按鈕。方向按鈕僅為開(kāi)/關(guān)按鈕。對(duì)于這個(gè)例子,我想模仿那些控制臺(tái)的舊視頻游戲中的那種控件。

對(duì)于第一個(gè)Sketch,我使用Dpad按鈕作為機(jī)器人的輸入。機(jī)器人使用每個(gè)按鈕執(zhí)行一項(xiàng)基本動(dòng)作:向前移動(dòng),向右轉(zhuǎn),向左轉(zhuǎn)或向后移動(dòng)。

這些按鈕具有二進(jìn)制輸出。這樣,微控制器只會(huì)理解按鈕被按下,但不會(huì)理解按下它們的難度。這樣,一旦點(diǎn)擊一個(gè)給定的按鈕,電機(jī)就會(huì)全速運(yùn)轉(zhuǎn)。

如果按照我的原理圖連接所有電源,你將得到以下輸出:

PSB_PAD_UP =前進(jìn)

PSB_PAD_DOWN =后退

PSB_PAD_LEFT =左轉(zhuǎn)

PSB_PAD_RIGHT =右轉(zhuǎn)

正如我之前所說(shuō),電機(jī)將以固定速度移動(dòng)。向左或向右轉(zhuǎn)動(dòng)時(shí),電機(jī)將在相反的方向上運(yùn)行,以便機(jī)器人繞其軸轉(zhuǎn)動(dòng)。

Arduino代碼:

下載代碼并在Arduino IDE上打開(kāi)它。如果您使用相同的引腳排列,您可能不需要更改代碼上的任何內(nèi)容(盡管可能需要,如果電機(jī)的方向不同

要上傳代碼,請(qǐng)選擇‘ Arduino/Genuino Uno’板,在計(jì)算機(jī)的USB端口選擇正確的COM端口,插板并上傳代碼。

上傳完成后,拔掉USB線,然后放上電池。代碼將開(kāi)始運(yùn)行并且Arduino板將自動(dòng)連接PS2操縱桿。首次使用時(shí)打開(kāi)串口監(jiān)視器并檢查連接狀態(tài)。如果無(wú)法連接操縱桿,有一些事情應(yīng)該做:

重置Arduino Uno板。嘗試幾次(對(duì)我來(lái)說(shuō),它通常在第三次復(fù)位后工作);

檢查操縱桿是否打開(kāi)(和充電電池)。接收器有一些LED指示燈將指示操縱桿是否配對(duì)。同時(shí)檢查Arduino的RX和TX引腳是否在接收到新命令時(shí)閃爍(并更新?tīng)顟B(tài)串行端口);

檢查連接。..。..組件之間的跳線可能有問(wèn)題。

代碼說(shuō)明:

在這個(gè)項(xiàng)目中我只需要使用PS2X_lib.h庫(kù)。我在代碼的開(kāi)頭添加了。

#include

定義連接到h橋的Arduino的引腳。如果您使用我所做的相同連接,您將擁有以下配置。如果您選擇使用不同的引腳,請(qǐng)更新代碼的這一部分。

// These are used to set the direction of the bridge driver.

#define ENA 3 //ENA

#define MOTORA_1 4 //IN3

#define MOTORA_2 5 //IN4

#define MOTORB_1 8 //IN1

#define MOTORB_2 7 //IN2

#define ENB 6 //ENB

在設(shè)置之前聲明了一些全局變量( p2sx ,錯(cuò)誤,鍵入和振動(dòng))。第一個(gè)是PS2X類(lèi)的實(shí)例。連接期間的錯(cuò)誤狀態(tài)將存儲(chǔ)在錯(cuò)誤整數(shù)上。 類(lèi)型和振動(dòng)將指示控制器的類(lèi)型(DualShock或GuitarHero控制器)以及是否應(yīng)根據(jù)給定命令振動(dòng)。

第一個(gè)我在設(shè)置過(guò)程中做的事情是配置I/O引腳狀態(tài)(作為輸出)并將使能引腳設(shè)置為低電平。這樣你就可以在啟動(dòng)時(shí)禁用兩個(gè)電機(jī),機(jī)器人在等待剩下的代碼時(shí)不會(huì)隨機(jī)移動(dòng)。

// Configure output pins

pinMode(ENA, OUTPUT);

pinMode(MOTORA_1, OUTPUT);

pinMode(MOTORA_2, OUTPUT);

pinMode(ENB, OUTPUT);

pinMode(MOTORB_1, OUTPUT);

pinMode(MOTORB_2, OUTPUT);

// Disable both motors

digitalWrite(ENA,0);

digitalWrite(ENB,0);

然后我啟動(dòng)了串口通訊(用于驗(yàn)證代碼)。選擇合適的波特率并在串行監(jiān)視器上設(shè)置相同的速度。

// Start serial communication

Serial.begin(57600);

最后,使用連接到操縱桿接收器的Arduino引腳(分別為時(shí)鐘,命令,注意和數(shù)據(jù))配置ps2x對(duì)象。它可能會(huì)返回錯(cuò)誤(顯示在串行監(jiān)視器上)??刂破鞯念?lèi)型也將顯示(盡管您可能已經(jīng)知道此時(shí)手中的控制器類(lèi)型:D)。

error = ps2x.config_gamepad(13,11,10,12, true, true); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error

// Check for error

if(error == 0){

Serial.println(“Found Controller, configured successful”);

}

else if(error == 1)

Serial.println(“No controller found, check wiring or reset the Arduino”);

else if(error == 2)

Serial.println(“Controller found but not accepting commands”);

else if(error == 3)

Serial.println(“Controller refusing to enter Pressures mode, may not support it.”);

// Check for the type of controller

type = ps2x.readType();

switch(type) {

case 0:

Serial.println(“Unknown Controller type”);

break;

case 1:

Serial.println(“DualShock Controller Found”);

break;

case 2:

Serial.println(“GuitarHero Controller Found”);

break;

}

在主循環(huán)期間,Arduino將讀取每個(gè)D-pad按鈕(UP,DOWN,LEFT和RIGTH)并設(shè)置輸出引腳的不同值,以便移動(dòng)輪子??焖傺舆t后,將啟動(dòng)一個(gè)新循環(huán)。

以下部分顯示如果按下UP按鈕,如何向前移動(dòng)機(jī)器人。 MOTORA_1和MOTORA_2引腳定義電機(jī)A的旋轉(zhuǎn)方向.ENA將定義是否啟用運(yùn)動(dòng)(電機(jī)開(kāi)/關(guān))。注意它是一個(gè)“模擬”輸出(實(shí)際上是PWM輸出)。它的值應(yīng)該介于0和1023之間。這將調(diào)制PWM,并改變h-brigde輸出端的平均電壓(介于0和12V之間)。如果平均電壓太低,電機(jī)根本無(wú)法移動(dòng)。

// MOVE FORWARD

if(ps2x.Button(PSB_PAD_UP)) {

digitalWrite(MOTORA_1,LOW);

digitalWrite(MOTORA_2,HIGH);

digitalWrite(MOTORB_1,HIGH);

digitalWrite(MOTORB_2,LOW);

analogWrite(ENB, 1023);

analogWrite(ENA, 1023);

Serial.println(“Move forward”);

}

如果你按照我的方式連接引腳,你將得到以下輸出:

輸出ENAIN1IN2ENBIN3IN4

FORWARD1023 *LOWHIGH1023 *HIGHLOW

BACKWARD1023 * 《無(wú)線電通信/》HIGHLOW1023 *LOWHIGH

RIGHT1023 *HIGHLOW1023 *HIGHLOW

LEFT1023 *LOWHIGH0 *LOWHIGH

STOP0 ***0 ***

*我使用了PWM輸出作為ENA和ENB引腳。這樣,1023表示具有最大長(zhǎng)度的脈沖(引腳始終接通),0表示不存在脈沖(引腳始終斷開(kāi))。如果在這里使用不同的(較小的)值,則預(yù)計(jì)電機(jī)運(yùn)行較慢,因?yàn)樗鼈兊亩俗又械钠骄妷簳?huì)較小。

第7步:草圖#2 - 模擬棒和數(shù)字按鈕(L2和R2)

At在給定的時(shí)間內(nèi),所有控制臺(tái)都采用了兩根模擬搖桿的操縱桿。這些新的輸入允許力敏感的輸入產(chǎn)生變速動(dòng)作并在各種視頻游戲中變得流行。

在第二個(gè)例子中,我想使用模擬開(kāi)關(guān)來(lái)操縱坦克,并推動(dòng)一對(duì)按鈕作為油門(mén)和剎車(chē)/倒車(chē)。這種配置在許多賽車(chē)游戲中非常流行,例如Mario Kart。按下R2按鈕加速水箱,按L2反轉(zhuǎn),根據(jù)左手的x位置設(shè)定運(yùn)動(dòng)方向。

我使用的機(jī)器人套件沒(méi)有很多慣性(如果電機(jī)上的電壓設(shè)置為0V,它將不會(huì)保持運(yùn)動(dòng)一段時(shí)間)。這樣,就無(wú)需定義用于制動(dòng)機(jī)器人的命令。

大部分代碼已在前一步驟中說(shuō)明。一個(gè)不同之處在于我定義了兩個(gè)存儲(chǔ)每個(gè)電機(jī)速度的變量(從0到1023)。

int motor_right_speed = 0;

int motor_left_speed = 0;

在主循環(huán)中,Arduino將讀取左搖桿的x位置。它將接收0到255之間的值,并將其映射到-1023和1023之間。

此值將被添加(或減去)到每個(gè)電機(jī)的速度,以便在速度之間產(chǎn)生差異每個(gè)軌道,讓機(jī)器人向左或向右轉(zhuǎn)動(dòng)。

int nJoyL = ps2x.Analog(PSS_LX); // read left stick

nJoyL = map(nJoyL, 0, 255, 1023, -1023);

motor_right_speed = 1023;

motor_left_speed = 1023;

if (nJoyL 《 0) {

motor_right_speed = motor_right_speed + nJoyL;

}

if (nJoyL 》 0) {

motor_left_speed = motor_left_speed - nJoyL;

}

如果按下R2按鈕,水箱應(yīng)向前移動(dòng)。這樣,Arduino就可以為電機(jī)引腳設(shè)置合適的值。 ENA和ENB為每個(gè)電機(jī)創(chuàng)建“模擬”輸出,其值與每個(gè)電機(jī)所需的速度成比例(基于左手桿的x位置)。

L2將執(zhí)行類(lèi)似的操作,但會(huì)反轉(zhuǎn)電機(jī)的方向。

if(ps2x.Button(PSB_R2)) {

digitalWrite(MOTORA_1,LOW);

digitalWrite(MOTORA_2,HIGH);

digitalWrite(MOTORB_1,HIGH);

digitalWrite(MOTORB_2,LOW);

analogWrite(ENA, motor_right_speed);

analogWrite(ENB, motor_left_speed);

}

if(ps2x.Button(PSB_L2)) {

digitalWrite(MOTORA_1,HIGH);

digitalWrite(MOTORA_2,LOW);

digitalWrite(MOTORB_1,LOW);

digitalWrite(MOTORB_2,HIGH);

analogWrite(ENA, motor_right_speed);

analogWrite(ENB, motor_left_speed);

}

if(!ps2x.Button(PSB_L2) && !ps2x.Button(PSB_R2)) {

analogWrite(ENA, 0);

analogWrite(ENB, 0);

}

如果沒(méi)有按下任何按鈕,電機(jī)將被禁用。

步驟8:草圖#3 - 左右模擬棒(差分驅(qū)動(dòng)器

這是我的最?lèi)?ài)控制坦克的方法(雖然它在資源方面不是最佳的)!這讓我覺(jué)得我用雙手控制著一臺(tái)真正的大機(jī)器!

在這段代碼中,我用兩根木棍來(lái)設(shè)定每條軌道的方向和速度。左手桿將命令左側(cè)軌道,右側(cè)手柄將控制右側(cè)軌道。

代碼幾乎與之前描述的相同。但是這次我想要讀取兩根棒的位置:

int nJoyL = ps2x.Analog(PSS_LY); // read left stick

int nJoyR = ps2x.Analog(PSS_RY); // read right stick

nJoyL = map(nJoyL, 0, 255, 1023, -1023);

nJoyR = map(nJoyR, 0, 255, -1023, 1023);

根據(jù)棒的位置,代碼將設(shè)置數(shù)字引腳以設(shè)置每個(gè)電機(jī)的方向。/p》

我在啟用(1023)時(shí)使用了固定值,但我根據(jù)模擬棒的實(shí)際值使用了一個(gè)變量值。我定義了一個(gè)死區(qū)(+ -50),微控制器將禁用電機(jī)。

// Perform movements based on both analog sticks

if(nJoyR》50) {

digitalWrite(MOTORA_1,HIGH);

digitalWrite(MOTORA_2,LOW);

analogWrite(ENA, 1023);

}

if(nJoyR《-50) {

digitalWrite(MOTORA_1,LOW);

digitalWrite(MOTORA_2,HIGH);

analogWrite(ENA, 1023);

}

if (abs(nJoyR)《50) {

analogWrite(ENA, 0);

}

步驟9:草圖#4 - 僅限左模擬棒

在此最后一個(gè)Sketch應(yīng)用程序我使用一個(gè)操縱桿來(lái)控制機(jī)器人。它在使用資源方面是優(yōu)勢(shì)(你將有很多按鈕可以配置不同的動(dòng)作),但很難理解。

每個(gè)軌道的速度在x和x上有所不同。 y操縱桿的位置。這樣,可以在每個(gè)軌道上應(yīng)用不同的速度,并以不同的速度/方向移動(dòng)機(jī)器人。

第10步:最后的注意事項(xiàng)

我為這個(gè)項(xiàng)目付出了很多努力,使其盡可能清晰和有教育意義。如果你喜歡它,請(qǐng)不要忘記“喜歡”和“分享”它。你的支持對(duì)我來(lái)說(shuō)非常重要! :D

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17840

    瀏覽量

    194726
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    31277

    瀏覽量

    223283
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    阿普奇KiWiBot系列“大小腦”控制器:打造具身智能機(jī)器人的“核心引擎”

    一個(gè)輕巧而強(qiáng)大的控制器,正悄然驅(qū)動(dòng)著機(jī)器人從“能動(dòng)”走向“智能”的關(guān)鍵一躍。 控制器,被稱(chēng)為機(jī)器人的“神經(jīng)中樞”,其性能直接決定了機(jī)器人的智
    的頭像 發(fā)表于 12-11 18:03 ?551次閱讀
    阿普奇KiWiBot系列“大小腦”<b class='flag-5'>控制器</b>:打造具身智能<b class='flag-5'>機(jī)器人</b>的“核心引擎”

    高精度機(jī)器人控制的核心——基于 MYD-LT536 開(kāi)發(fā)板的精密運(yùn)動(dòng)控制方案

    處理,支持 1.8 GHz 主頻,并集成2Tops NPU、G2D、VPU 4K高清視頻編解碼,為復(fù)雜控制算法與視覺(jué)融合計(jì)算提供充足算
    發(fā)表于 11-14 15:48

    MCU微控制器,N32H47x高性能MCU機(jī)器人關(guān)節(jié)控制方案

    在工業(yè)自動(dòng)化領(lǐng)域,關(guān)節(jié)作為機(jī)器人的核心運(yùn)動(dòng)部件,其控制精度直接決定了整機(jī)性能。英尚微電子基于國(guó)民技術(shù)MCU微控制器N32H47x系列,推出創(chuàng)新機(jī)器人關(guān)節(jié)
    的頭像 發(fā)表于 11-07 16:28 ?840次閱讀

    RK3576機(jī)器人核心:三屏異顯+八路攝像頭,重塑機(jī)器人交互與感知

    、遠(yuǎn)程作業(yè)機(jī)器人、特種檢測(cè)機(jī)器人· 多攝像頭輸入:通過(guò)多路攝像頭無(wú)死角監(jiān)控作業(yè)現(xiàn)場(chǎng),實(shí)現(xiàn)精準(zhǔn)操作與安全監(jiān)控。· 多屏顯示:將不同視角的畫(huà)面、傳感數(shù)據(jù)、控制界面分別顯示,幫助操作員遠(yuǎn)程
    發(fā)表于 10-29 16:41

    小蘿卜機(jī)器人的故事

    代替, LED, 有大佬感興趣, 一起關(guān)注和討論代碼, 這個(gè)機(jī)器人知名度不高, 可是是機(jī)器人的原型, 如果開(kāi)放接口, 定位和無(wú)線充電, 也不失為未來(lái)的禮物。 讓我們?yōu)樾√}卜工程師的, 自掏腰包救蘿卜
    發(fā)表于 10-23 05:24

    48V機(jī)器人關(guān)節(jié)控制器的拆解分析

    最近機(jī)器人非?;穑藐P(guān)節(jié)控制器和底盤(pán)執(zhí)行例如轉(zhuǎn)向控制等比較類(lèi)似,拆解了一款,簡(jiǎn)單分析了一下。
    的頭像 發(fā)表于 10-14 15:25 ?1122次閱讀
    48V<b class='flag-5'>機(jī)器人</b>關(guān)節(jié)<b class='flag-5'>控制器</b>的拆解分析

    突破人形機(jī)器人控制器性能瓶頸:高效穩(wěn)定的電容器解決方案

    在人形機(jī)器人的精密世界中,每一個(gè)微小的部件都承擔(dān)著重要的角色。控制器,作為機(jī)器人的“大腦”,其穩(wěn)定性和可靠性對(duì)于整個(gè)系統(tǒng)的性能至關(guān)重要。控制器不僅需要處理復(fù)雜的算法和信號(hào),還要精確地指
    的頭像 發(fā)表于 08-30 10:56 ?681次閱讀
    突破人形<b class='flag-5'>機(jī)器人</b><b class='flag-5'>控制器</b>性能瓶頸:高效穩(wěn)定的電容器解決方案

    海默RC系列機(jī)器人控制器

    海默協(xié)作機(jī)器人與焊接機(jī)器人控制器HARMOROBOTICS控制器作為工業(yè)機(jī)器人的三大核心零部件之一,也是工業(yè)
    的頭像 發(fā)表于 08-01 15:35 ?1262次閱讀
    海默RC系列<b class='flag-5'>機(jī)器人</b><b class='flag-5'>控制器</b>

    工業(yè)機(jī)器人的特點(diǎn)

    的基礎(chǔ),也是三者的實(shí)現(xiàn)終端,智能制造裝備產(chǎn)業(yè)包括高檔數(shù)控機(jī)床、工業(yè)機(jī)器人、自動(dòng)化成套生產(chǎn)線、精密儀器儀表、智能傳感、汽車(chē)自動(dòng)化焊接線、柔性自動(dòng)化生產(chǎn)線、智能農(nóng)機(jī)、3D 打印機(jī)等領(lǐng)域。而智能制造裝備中工業(yè)
    發(fā)表于 07-26 11:22

    盤(pán)點(diǎn)#機(jī)器人開(kāi)發(fā)平臺(tái)

    地瓜機(jī)器人RDK X5開(kāi)發(fā)套件地瓜機(jī)器人RDK X5開(kāi)發(fā)套件產(chǎn)品介紹 旭日5芯片10TOPs算力-電子發(fā)燒友網(wǎng)機(jī)器人開(kāi)發(fā)套件 Kria KR260機(jī)器人開(kāi)發(fā)套件 Kria KR260-
    發(fā)表于 05-13 15:02

    【「# ROS 2智能機(jī)器人開(kāi)發(fā)實(shí)踐」閱讀體驗(yàn)】機(jī)器人入門(mén)的引路書(shū)

    ROS的全稱(chēng):Robot Operating System 機(jī)器人操作系統(tǒng) ROS的 目的 :ROS支持通用庫(kù),是通信總線,協(xié)調(diào)多個(gè)傳感 為了解決機(jī)器人里各廠商模塊不通用的問(wèn)題,讓機(jī)器人
    發(fā)表于 04-30 01:05

    【「# ROS 2智能機(jī)器人開(kāi)發(fā)實(shí)踐」閱讀體驗(yàn)】+內(nèi)容初識(shí)

    規(guī)劃:導(dǎo)航是機(jī)器人自主運(yùn)行的關(guān)鍵功能。書(shū)中詳細(xì)介紹了基于 ROS 2 的導(dǎo)航系統(tǒng),包括地圖創(chuàng)建、路徑規(guī)劃和導(dǎo)航控制等環(huán)節(jié)。首先,通過(guò)激光雷達(dá)等傳感獲取環(huán)境信息,使用 SLAM(Sim
    發(fā)表于 04-27 11:24

    人形機(jī)器人步入“雙腦協(xié)同”時(shí)代:破解核心控制器的技術(shù)困局

    的“中樞神經(jīng)系統(tǒng)”——核心控制器領(lǐng)域。面對(duì)傳統(tǒng)架構(gòu)的固有缺陷,阿普奇創(chuàng)新推出“雙腦協(xié)同”核心大小腦方案,為行業(yè)提供了突破體積、算力、實(shí)時(shí)性三重枷鎖的技術(shù)路徑。 行業(yè)痛點(diǎn):算力、體積與可靠性的“不可能三角” 傳統(tǒng)人形機(jī)器人控制器長(zhǎng)
    的頭像 發(fā)表于 04-21 13:52 ?1216次閱讀
    人形<b class='flag-5'>機(jī)器人</b>步入“雙腦協(xié)同”時(shí)代:破解核心<b class='flag-5'>控制器</b>的技術(shù)困局

    德州儀器與庫(kù)卡發(fā)布新一代工業(yè)機(jī)器人控制器

    在今年慕尼黑上海電子展期間,德州儀器 (TI) 與美的集團(tuán)旗下庫(kù)卡(后簡(jiǎn)稱(chēng)“庫(kù)卡”)合作發(fā)布了新一代工業(yè)機(jī)器人控制器 KR C5 micro-2。作為芯片技術(shù)與機(jī)器人
    的頭像 發(fā)表于 04-18 14:34 ?1793次閱讀

    具身智能機(jī)器人控制器的創(chuàng)新未來(lái)需要高效、可靠、易用的控制方案

    在智能化浪潮席卷全球的今天,具身智能機(jī)器人正逐步從工業(yè)場(chǎng)景邁向更廣闊的應(yīng)用領(lǐng)域。作為這一領(lǐng)域的核心技術(shù)支撐, 機(jī)器人控制器 的性能與可靠性直接決定了機(jī)器人的智能化水平。阿普奇憑借深厚的
    的頭像 發(fā)表于 04-15 17:00 ?795次閱讀