在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣使用游戲控制器和Arduino控制機器人

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-03 16:39 ? 次閱讀

Arduino和類似的兼容板是世界各地DIY修補匠的首選設備之一。無論您是剛開始使用Arduino的初學者,還是已經開始使用它們的人,他們都為無數很棒的項目提供了平臺。

今天,我們將探索一種創新的方式使用處理和Xbox360控制器來控制伺服器。如果您已經很精通游戲開發,那么您可能會對我們的使用Unity的Custom Game Controller教程感興趣。

如果這是您第一次嘗試Arduino擺弄,則本教程將假設您具有一點先驗知識,您可能會在這里找到我們的Arduino指南。同樣,如果您是第一次使用Java,可能會有些混亂。雖然Processing使用該平臺的簡化版本,但這些Java概念和提示仍可能會有所幫助。

您需要的內容

1個Arduino。我們今天使用的是UNO。

1個業余伺服器。一切適用于Arduino引腳的東西。

1個有線Xbox360控制器。盡管從技術上講,這幾乎可以與任何控制器一起使用。

多條連接線。

除了這些內容之外,您還需要下載Processing和Arduino IDE

準備Arduino

首先,我們需要附加伺服器。接線顏色在這里可能會有所不同,但一般來說,紅色引腳會連接到 5v 引腳,并且棕色或黑色連接到 GND 引腳。數據線通常為黃色或橙色,連接到 pin 10 。

檢查接線并連接Arduino到計算機。打開Arduino IDE。

打開位于文件》示例》 Firmata》 StandardFirmata 的StandardFirmata草圖。此草圖設置了用于通過串行端口進行外部控制的電路板,與我們在使用Python控制Arduino的文章中使用的草圖相同。將草圖上傳到板上。

如果上傳失敗,請在工具菜單中檢查您是否選擇了正確的板和端口詳細信息。

我們的Arduino準備就緒!

設置處理程序

打開處理程序,您將得到一個空白的草圖。在這里做任何事情之前,我們將需要安裝一些庫。轉到素描菜單,然后選擇導入庫》添加庫。這將打開 Contribution Manager ,對于那里的所有Arduino用戶而言,它們看起來都很熟悉。

我們需要安裝三個庫來完成這項工作。首先是 Game Control Plus 庫。這就是允許我們將游戲控制器與處理一起使用的原因。使用搜索窗口找到它,然后單擊右下角的安裝。 Game Control Plus需要為其配置工具安裝另一個庫,所以現在就開始獲取它。搜索 G4P 庫并安裝它。

最后,我們需要 Arduino(firmata)庫。您猜對了,進行搜索,然后單擊安裝。安裝完這些東西之后,我們就可以開始測試一切正常。我們今天正在使用Windows 10,但是可用于大多數平臺(包括Raspberry Pi)進行處理。想象一下可能性!

測試Arduino

在我們開始創建自定義草圖之前,我們先來測試Arduino和Servo和Processing。打開文件》示例,然后從 Contributed Libraries/Arduino(firmata)文件夾中選擇 ArduinoServo 。我們將使用它來測試我們的伺服器,但首先我們可能需要更改幾件事。

向下滾動草圖并找到以下行:

println(Arduino.list());

如果已將其注釋掉,請在 println(Arduino.list()); 之前刪除兩個斜杠,然后保存草圖。通過單擊播放圖標運行它,并注意底部的控制臺。這將列出連接到您的 COM 端口的所有內容。

就我而言,我的Arduino在COM 8上這里列出的第三個端口。這很重要,因為下面一行中的代碼有一個 Array ,其值確定要使用哪個COM端口。

需要更改它以反映我們的COM端口。對我來說,它是第三個位置,或索引編號2:

arduino = new Arduino(this, Arduino.list()[2], 57600);

我們需要對此代碼進行其他一些小的更改才能對其進行測試。向下滾動到設置Arduino引腳的位置,并在此處注釋掉其中一行。將另一個更改為 Pin 10 。

//arduino.pinMode(4, Arduino.SERVO);

arduino.pinMode(10, Arduino.SERVO);

我們需要在 Draw()中執行相同的操作方法:

arduino.servoWrite(10, constrain(mouseX / 2, 0, 180));

// arduino.servoWrite(4, constrain(180 - mouseX / 2, 0, 180));

保存草圖并運行。您應該能夠通過在程序生成的窗口上來回移動鼠標來移動伺服器。

如果它不適用于您,檢查伺服接線,并檢查COM端口的陣列位置是否正確。一旦您知道Arduino與Processing的配合很好,就該繼續了。

配置控制器

我們正在使用的Game Control Plus庫也具有強大的配置。確保已插入控制器,打開 Configurator 示例項目,然后運行它。您將獲得如下菜單:

單擊您的控制器名稱,將彈出一個更大的配置窗口。

這看起來似乎很艱巨,但是它的設計盡可能簡單。在左側填寫第一個鍵,其中包含您要用作變量的名稱。此變量將控制伺服器的位置,因此我將其稱為 servoPos 。

在其旁邊的框中,您可以對其功能進行簡要說明。現在,拿起控制器并移動您希望與伺服器一起使用的操縱桿。進行一些實驗后,發現右指尖與“ X旋轉”框相對應。在 servoPos 變量和此框之間拖動一條線。

現在,我們需要將配置保存為數據文件。在窗口的右上方,填寫設備角色字段和文件名字段。

文件名很重要,因為您會在您的代碼中使用它。我將其命名為 xbs 來保持簡單。點擊驗證,然后點擊保存。這將為我們的控制器編寫一個包含說明的文件,以后可以使用。

準備自定義草圖文件夾

讓我們進行設置我們的工作文件夾。打開一個空白的處理草圖,并以您喜歡的任何名稱保存。這樣會在保存位置為其創建一個目錄。

現在導航至 Documents/Processing/libraries/GameControlPlus/examples/Configurator ,然后復制標有 data 。此文件夾包含我們剛剛創建的配置文件。導航到新保存的空白草圖的目錄,然后粘貼數據文件夾。

創建自定義草圖

現在所有內容到位,我們可以使用我們的兩個庫開始制作草圖。我們將逐步進行此操作,但如果您想繼續前進,可以下載完整的草圖和數據文件夾。請注意,您可能仍需要修改代碼以反映您的Arduino COM端口。

首先導入我們需要的所有庫:

import processing.serial.*;

import net.java.games.input.*;

import org.gamecontrolplus.*;

import org.gamecontrolplus.gui.*;

import cc.arduino.*;

import org.firmata.*;

我們還需要聲明 ControlDevice , I/O 和 Arduino 以及 float 來保存值從我們的指尖開始:

ControlDevice cont;

ControlIO control;

Arduino arduino;

float thumb;

我們的 setup()方法會創建一個小窗口(控制器的實例),并將設備與我們的配置進行匹配文件。在此重要的是正確獲取配置數據文件的文件名:

void setup() {

size(360, 200);

control = ControlIO.getInstance(this);

cont = control.getMatchedDevice(“xbs”);

if (cont == null) {

println(“not today chump”); // write better exit statements than me

System.exit(-1);

}

// println(Arduino.list());

arduino = new Arduino(this, Arduino.list()[2], 57600);

arduino.pinMode(10, Arduino.SERVO);

}

我們還在此階段檢查是否沒有適用的控制器,然后退出該程序是否需要。雖然不需要使用 size()創建的窗口,但稍后會向我們提供一些有關是否從控制器中獲取有用值的反饋。我們也像測試時一樣初始化Arduino并將其固定在此處。

現在,我們創建一個小方法來從控制器中獲取輸入值,并將其映射到我們的伺服器將能夠使用的值:

public void getUserInput() {

thumb = map(cont.getSlider(“servoPos”).getValue(), -1, 1, 0, 180);

}

這一行代碼使用我們的數據文件來獲取命名控件 servoPos ,該控件鏈接到控制器的右指尖,并從中讀取值。然后它將值映射,并將值存儲在我們的 thumb float變量中。

現在此代碼從未調用過,我們現在將對其進行修復。

void draw() {

getUserInput();

background(thumb,100,255);

arduino.servoWrite(10, (int)thumb);

}

draw()與Arduino IDE中的 loop()方法相似。每幀,它調用 getUserInput()方法并更新拇指值。它使用此值來更改 background()的紅色值,從而使我們可以直觀地看到值的變化。然后使用 arduino.servoWrite()函數將此值寫入伺服器。請注意,我們必須將 thumb 強制轉換為整數值,因為ServeWrite函數將兩個整數(引腳號和角度)作為參數。

檢查代碼是否存在錯誤,保存并單擊運行。在稍稍延遲了Arduino的初始化之后,它看起來應該像這樣:

使用游戲控制器和Arduino進行控制:已完成!

盡管經驗豐富的代碼庫可以為我們提供幫助,但該項目在很多方面對于經驗不足的編碼人員來說都是相當深入的。它代表著一種思考控制機器人以及您所構建的任何其他設備的新方式。

該項目將與我們有關構建激光炮塔的指南完美配合,使您可以完全控制它。您可以像我們的Simple Arduino Alarm教程中那樣設置壓電式蜂鳴器,并使用控制器來更改蜂鳴器的音高或燈光的顏色。

或者,您可以構建一個大型機器人并采用在地球上。只要您的USB線足夠長!
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    17022

    瀏覽量

    183272
  • 機器人
    +關注

    關注

    213

    文章

    29563

    瀏覽量

    211917
  • Arduino
    +關注

    關注

    189

    文章

    6494

    瀏覽量

    190289
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    從感知到運控:具身智能機器人控制器的雙腦協同設計與場景適配

    ,則是協調全身的“大腦”與“小腦”,既要像大腦一樣思考決策,又要像小腦一樣精準控制運動。作為具身智能機器人的核心樞紐,控制器直接決定了它能否在復雜場景中“像一樣靈活”,甚至超越人類的
    的頭像 發表于 05-11 17:42 ?219次閱讀
    從感知到運控:具身智能<b class='flag-5'>機器人</b><b class='flag-5'>控制器</b>的雙腦協同設計與場景適配

    人形機器人步入“雙腦協同”時代:破解核心控制器的技術困局

    的“中樞神經系統”——核心控制器領域。面對傳統架構的固有缺陷,阿普奇創新推出“雙腦協同”核心大小腦方案,為行業提供了突破體積、算力、實時性三重枷鎖的技術路徑。 行業痛點:算力、體積與可靠性的“不可能三角” 傳統人形機器人控制器
    的頭像 發表于 04-21 13:52 ?334次閱讀
    人形<b class='flag-5'>機器人</b>步入“雙腦協同”時代:破解核心<b class='flag-5'>控制器</b>的技術困局

    德州儀器與庫卡發布新一代工業機器人控制器

    在今年慕尼黑上海電子展期間,德州儀器 (TI) 與美的集團旗下庫卡(后簡稱“庫卡”)合作發布了新一代工業機器人控制器 KR C5 micro-2。作為芯片技術與機器人控制系統的創新合作
    的頭像 發表于 04-18 14:34 ?516次閱讀

    具身智能機器人控制器的創新未來需要高效、可靠、易用的控制方案

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

    突破人形機器人控制器性能瓶頸:高效穩定的電容器解決方案

    在人形機器人的精密世界中,每一個微小的部件都承擔著重要的角色。控制器,作為機器人的“大腦”,其穩定性和可靠性對于整個系統的性能至關重要。控制器不僅需要處理復雜的算法和信號,還要精確地指
    發表于 03-25 14:33 ?361次閱讀
    突破人形<b class='flag-5'>機器人</b><b class='flag-5'>控制器</b>性能瓶頸:高效穩定的電容器解決方案

    工業機器人4大控制方式,你知道幾種?

    方式和智能控制方式四種,這幾種控制方式的功能要點有哪些。 智慧倉儲物流 01 點位控制方式(PTP) 這種控制方式只對工業機器人末端執行
    的頭像 發表于 03-13 10:11 ?668次閱讀
    工業<b class='flag-5'>機器人</b>4大<b class='flag-5'>控制</b>方式,你知道幾種?

    開源項目!基于Arduino控制的六足機器人

    步驟,完整復現這款低成本、高性能的六足機器人。開發過程中建議使用支架輔助調試,避免足部意外觸地。如需進一步優化步態或擴展功能,可基于提供的Arduino代碼進行二次開發。 其他代碼資料:*附件:機器人
    發表于 03-03 11:25

    ZMC600E,多核異構如何成就機器人精準控制

    導讀ZMC600E主站控制器憑借其多核異構處理的強大性能,實現了高算力與高實時性的完美平衡,讓機器人動作流暢、精準無誤。接下來,讓我們深入了解其內核結構的奧秘。在ZMC600E主站控制器
    的頭像 發表于 02-24 11:37 ?276次閱讀
    ZMC600E,多核異構如何成就<b class='flag-5'>機器人</b>精準<b class='flag-5'>控制</b>?

    PID控制機器人中的應用案例

    是至關重要的。通過PID控制,可以實現對電機速度的精確控制。具體來說,設定電機速度r(t)與實際電機速度y(t)之間的差值e(t)作為PID控制器的輸入,PID控制器的輸出u(t)則作
    的頭像 發表于 11-13 14:42 ?1771次閱讀

    PID控制機器人技術中的應用

    在現代機器人技術中,精確控制是實現高效、穩定操作的關鍵。PID控制作為一種經典的控制策略,因其簡單、魯棒和易于實現的特點,在機器人領域得到了
    的頭像 發表于 11-06 10:35 ?1555次閱讀

    基于導納控制機器人拖動示教原理和實現步驟

    ,設計適當的導納模型,包括剛度和阻尼參數。? ? ??3.力控制器設計:開發基于導納模型的力控制器,該控制器根據測得的外部力和期望的導納模型響應,計算機器人
    的頭像 發表于 10-23 15:52 ?970次閱讀

    工業機器人控制方式有幾種

    景,下面將介紹這四種控制方式。 一、點位控制方式(PTP) 點位控制方式是工業機器人最基本的控制方式之一。這種
    的頭像 發表于 09-04 09:31 ?2246次閱讀

    工業機器人控制器的主要功能有哪些

    工業機器人控制器是工業機器人系統的大腦,負責接收指令、處理數據、控制機器人的運動和操作。控制器
    的頭像 發表于 09-04 09:18 ?1562次閱讀

    伺服控制機器人控制方式有哪些

    。 開環控制 : 定義 :開環控制是一種沒有反饋機制的控制方式,控制器根據預設的指令直接驅動機器人執行動作。 特點 :簡單、成本低,但無法自
    的頭像 發表于 09-04 09:16 ?964次閱讀

    人形機器人控制器之MCU、DSP、AI芯片

    電子發燒友網報道(文/李彎彎)人形機器人控制器是人形機器人中的核心神經系統,負責對機器人的運動進行細致規劃和控制,是
    的頭像 發表于 08-26 07:57 ?8633次閱讀
    主站蜘蛛池模板: china3p单男精品自拍 | 玖玖在线精品 | 国产成人精品曰本亚洲 | 欧美最猛性xxxx高清 | 国产稀缺精品盗摄盗拍 | 特黄aaaaa日本大片免费看 | 色综合视频一区二区三区 | a久久久久一级毛片护士免费 | 性夜黄a爽爽免费视频国产 羞羞答答xxdd影院欧美 | 无人码一区二区三区视频 | 上课被同桌摸下面做羞羞 | 午夜日 | 欧美一区二区三区在线 | 手机在线免费视频 | 久久97精品久久久久久久看片 | 欧美性f| 伦理一区二区三区 | 天天摸天天干 | 四虎精品永久在线 | 久久久免费精品视频 | 欧美日韩色综合网站 | 日韩亚洲欧洲在线rrrr片 | 91精品久久久久含羞草 | 成人精品视频一区二区三区 | 四虎影在永久地址在线观看 | 永久免费的拍拍拍网站 | 精品一区视频 | 精品欧美激情在线看 | 黄a免费| 黄在线观看网站 | 亚洲国产欧美日韩一区二区三区 | 91免费视频网 | 国产精品久久自在自2021 | 天堂网www天堂在线网 | 日本成片视频 | 色五月在线视频 | 天天躁狠狠躁狠狠躁夜夜躁 | 高清不卡免费一区二区三区 | 亚洲综合日韩欧美一区二区三 | 男啪女视频免费观看网站 | 天天干天天操天天干 |