RM 機器人主控開發板-資料開源

  • RM 機器人主控開發板-資料開源
  • RM 機器人主控開發板-資料開源

北京单场奖金计算公式 www.ygpyvk.com.cn RM 機器人主控開發板-資料開源

RM 機器人主控開發板-資料開源


RoboMasters 主控開發板(以下簡稱RM開發板)是一款專門為RoboMasters競賽打造的機器人控制板,該開發板完全滿足RoboMasters競賽機器人控制需求。RM開發板的主控芯片為STM32F427,RM開發板除了具備控制RoboMasters競賽機器人的通用接口外,還包含16路PWM控制接口(含5V供電)、18個用戶自定義IO口、USB接口、SD卡接口和防反接電路等,用戶可以在控制機器人的基礎上,完成更復雜的自定義功能。IMU部分做了隔離設計,含有溫控電路,可以很大程度上解決IMU溫飄的問題(需軟件進行溫度閉環處理)。

結構框圖如下:

附件內容包含如下:

  • RM開發板-軟件工程
  • RM開發板-硬件原理圖
  • RM開發板-用戶手冊

電路相關文件

電路圖文件
源代碼
RM開發板-軟件工程.zip
描述:軟件工程
教程
RM開發板-用戶手冊.pdf
描述:用戶手冊
其他文件
分享到:
收藏 (9)
電子硬件助手小程序 電子硬件助手小程序

電路城電路折扣劵獲取途徑:

電路城7~10折折扣劵(全場通用):對本電路進行評分獲??;

電路城6折折扣劵(限購≤100元電路):申請成為賣家,上傳電路,審核成功后獲取。

(版權歸https://www.robomaster.com/所有)

版權聲明:電路城所有電路均源于網友上傳或網上搜集,供學習和研究使用,其版權歸原作者所有,對可以提供充分證據的侵權信息,本站將在確認后24小時內刪除。對本電路進行投訴建議,點擊投訴本電路反饋給電路城。

使用說明:直接使用附件資料或需要對資料PCB板進行打樣的買家,請先核對資料的完整性,如果出現問題,電路城不承擔任何經濟損失!

換一批 more>>

大家都在看:

繼續閱讀

  • DLT_RK3399開發板資料匯總附硬件/Android源代碼/固件等等

    本設計分享DLT_RK3399開發板硬件/Android源代碼/固件等等,供網友免費下載。K3399是瑞芯微推出的一款低功耗、高性能的應用處理器芯片,該芯片基于Big.Little架構,即具有獨立的NEON協同處理器的雙核Cortex-A72及四核Cortex-A53組合架構,主要應用于計算機、個人互聯網移動設備、VR、廣告機等智能終端設備。RK3399內置多個高性能硬件處理引擎,能夠支持多種格式的視頻解碼,如:4K*[email protected] H.264/H.265/VP9,也支持[email protected]的H.264/MVC/VP8 以及高質量的JPEG編解碼和圖像的前后處理器。DLT3399A 網盤資料鏈接:https://pan.baidu.com/s/17bKrPoby0xPz6EpVU8DIrw 提取碼:xa9g
    來自:其他開發板時間:2019-09-05 原理圖 開發板 dlt_rk3399
  • 巨硬STM32F746ZxT6開發板PCB工程文件/例程資料打包

    【巨硬STM32F7開發板V4.0】外設資源如下: 血氧??長AN8720A網絡接口一個兼容正點原子TFT-LCD液晶??櫚慕涌贑H340G USB串口一個板載SRAM足以應對吃RAM的程序GPIO口悉數引出CD4066??榭刈榭梢雜美純刂埔恍┤紓耗D獍醇涌詰染抻睸TM32F746ZxT6開發板實物截圖:附件資料截圖:
    來自:MCU開發板時間:2017-10-26 開發板 stm32f7 stm32f746zet6
  • 大駱駝瑞芯微RK3288開源硬件主板支持安卓5.1/7.1及ubuntu雙系統開發資料內附原理圖件/Android源代碼/固件

    瑞星微3288處理器是瑞芯微公司2014推出的超強四核處理器,Cortex-A17架構,頻率高達1.8GHz,整體性能較上一代RK3188有50%的提升!GPU采用Mali T76X系列GPU,Mali T764核心最大特點是采用第三代Midgard架構,大幅度改變了著色器核心的配置方式;著色器數量高達4個著色器核心,是之前的T654的兩倍;2400M/s的像素填充率和300M/s的三角形生成率相對于過去獲得了成倍的提升。瑞芯微DLT-RK3288B是業界首款支持4K H.265實時硬件解碼的ARM內核芯片,在視頻的支持上發揮了其以往的音視頻領域的積累優勢,真正支持4K視頻的輸出及播放。百度網盤:https://pan.baidu.com/s/1AlmMVg6E4xohzHs3mmOKyA 提取碼:8kac
    來自:其他開發板時間:2019-09-05 硬件主板 瑞芯微rk3288
  • PIC32MZ1024ECG為主控的開發板卡(AD格式)

    硬件pic32mz1024ecg-100/pf型ES8328音頻編解碼器LCD 16位SPI 48MHz最大頻率SD卡USB OTG高速WiFi藍牙NOR內存閃存-SQI四路50MHz
    來自:DIY創意產品時間:2019-09-05 開發板
  • 小米低功耗智能手表項目-基于NRF52832的SX1278完成源碼和原理圖

    著移動技術的發展,許多傳統的電子產品也開始增加移動方面的功能,比如過去只能用來看時間的手表,現今也可以通過智能手機或家庭網絡與互聯網相連,顯示來電信息、微信和天氣信息等內容。這種新手表可被稱作智能手表。1、 技術:全套開放源碼和原理圖,適合深度開發,更適合學習研究; 2、 通知中心:與手機通過低功耗藍牙實時連接,電話、微信不再遺漏,并且可以在手表上輕松查看; 3、 自拍神器:遠程控制手機相機,并且可以在手表上查看效果; 4、 超長待機:優秀的電源管理,最長可以待機近一周; 5、 健康助手:運動計步、心律檢測等工具讓手表成為健康的最好幫手。MCU采用新一代的nRF52832加入了很多新的功能。比如Cortex-M4F的內核,它能夠更強大的運算能力以及浮點運算的技術。現在很多的穿戴設備或者工業化設備需要內置非常復雜的算法,所以需要MCU有更快的運行速度。這顆Cortex-M4F的內核運行期64Mhz,比其他廠家的芯片提高了很多。
    來自:可穿戴設備時間:2019-08-28 開源
  • 穩定可靠的JLink v9.5,自動升級固件,已批量生產

    jlink v9工程文件含原理圖、 PCB、BOM、固件 親手打造,從打樣驗證,到批量生產,網上開源資料所有已知的,未知的問題均已修復,目前穩定可用。真正設計文件到手就能用,可以直接導生產文件。另外,有償提供技術支持,從0基礎到燒錄測試一條龍服務,歡迎交流。
    來自:其他時間:2019-07-14 stm32 單片機 diy制作 開源
  • UWB定位系統,已打板親測可用

    基于官方源碼修改的UWB定位系統,已打板親測可用板載072下載器 插上即可使用同時也有贈072可升級固件
    來自:無線手持設備時間:2019-07-11 stm32 開源 uwb定位
  • 漫威迷,DIY一個可以和你“交流”的鋼鐵俠

    在這個項目中,當你接近鋼鐵俠時,鋼鐵俠能夠檢測到你的靠近,和你說一些簡單的短語。硬件組件:Arduino UNO和Genuino UNO× 1 跳線(通用)× 1 超聲波傳感器 - HC-SR04(Generic)× 1 MP3 MODULE ARDUINO DFPLAYER MIN× 1 4通道繼電器× 1 軟件應用程序和在線服務:Arduino IDE手動工具和制造機器:熱膠槍(通用)烙鐵(通用)Tip Tinner / Cleaner,無鉛項目的詳細教程和相關資料見附件!
    來自:機器人時間:2019-07-08 arduino 機器人 led
  • 減輕家庭壓力,地板清潔機器人電路設計

    家庭清潔工作是個瑣碎又很平常的工作,如果可以找個機器人來處理您的地板清潔工作就很棒了。硬件組件:德州儀器MSP-EXP430G2 MSP430 LaunchPad× 1 Seeed Grove - 雙通道SPDT繼電器× 3 直流電機(通用)× 4 軟件應用程序和在線服務:德州儀器Energia地板清潔機器人基本上是一種緩解人們日常生活瑣碎工作的手段,因為機器人是自主的,并且通過德州儀器提供的MSP430上傳的ENERGIA代碼進行控制,從而免除了清潔機構,家庭和工業化合物的疲勞過程。目標:為了方便日常清潔場所的過程。提供便宜的成本,易于使用和易于維護的設備供每個人使用。使用MSP430微控制器作為人與機器之間的接口。
    來自:機器人時間:2019-07-03 機器人 繼電器 自動化 直流電動機
  • 支持手機APP控制的Arduino機械臂

    在本教程中,我們將學習如何制作一個Arduino機械臂,它可以使用自定構建的Android應用程序進行無線控制和編程。我將向您展示構建它的整個過程,從設計和3D打印機器人部件,連接電子組件和編程Arduino,到開發我們自己的Android應用程序來控制機械臂。 使用應用程序中的滑塊,我們可以手動控制機械臂的每個伺服或軸的運動。同樣使用“保存”按鈕,我們可以記錄每個位置或步驟,然后機械臂可以自動運行并重復這些步驟。使用相同的按鈕,我們可以暫停自動操作以及重置或刪除所有步驟,以便我們可以記錄新的步驟。 Arduino Robot Arm 3D模型 首先,我使用Solidworks 3D建模軟件設計了機械臂。手臂有5個自由度。 對于前3軸,腰部,肩部和肘部,我使用了MG996R伺服系統,而對于另外2軸,腕部滾動和腕部間距,以及夾具我使用了較小的SG90微型伺服系統。 您可以下載和下面的3D模型。3D打印機械臂 使用我的新3D打印機,Creality CR-10,我3D打印了Arduino機械臂的所有部件。為了完成組裝,我們只需使用一些螺栓和支架連接上部和下部框架,然后使用提供的電纜將電子組件與控制箱連接。 在嘗試之前,建議檢查滾輪是否足夠緊,如果沒有,可以簡單地使用偏心螺母將它們擰緊。就是這樣,在調平3D打印床之后,您就可以將3D創作變為現實。 我在幾個小時內準備好Arduino Robot Arm的所有部件。組裝機械臂 好的,我們準備組裝機械臂。我從基座開始,我使用其包裝中的螺絲連接了第一臺伺服電機。然后在伺服的輸出軸上我固定了一個圓角螺栓。在它的頂部,我放置上部并用兩個螺絲固定。 這里再次首先進入伺服,然后將圓形喇叭放到下一個部件上,然后使用輸出軸上的螺栓將它們固定在一起。 我們在這里可以注意到,在肩軸上最好包括某種彈簧,或者在我的情況下,我使用橡皮筋為伺服提供一些幫助,因為這種伺服也承載了其余部分的整個重量。作為有效載荷。 以類似的方式,我繼續組裝機械臂的其余部分。至于夾具機構,我使用了大約4毫米的螺栓和螺母來組裝它。 最后,我將夾具機構安裝到最后一個伺服機構上,完成了Arduino機械臂。Arduino機械臂電路圖 下一階段是連接電子產品。該項目的電路圖實際上非常簡單。我們只需要一個Arduino板和一個HC-05藍牙??橛脛悄蓯只型ㄐ?。六個伺服電機的控制引腳連接到Arduino板的六個數字引腳。 為了給伺服電機供電,我們需要5V,但這必須來自外部電源,因為Arduino無法處理所有電流都可以吸收的電流量。電源必須能夠處理至少2A的電流。因此,一旦我們將所有內容連接在一起,我們就可以繼續編寫Arduino并制作Android應用程序。Arduino機械臂代碼 由于代碼有點長,為了更好地理解,我將在每個部分的描述部分發布程序的源代碼。在本文的最后,我將發布完整的源代碼。 首先,我們需要包含SoftwareSerial庫,用于藍牙??楹退歐獾拇型ㄐ?。這兩個庫都包含在Arduino IDE中,因此您無需在外部安裝它們。然后我們需要定義六個伺服器,HC-05藍牙??楹鴕恍┯糜詿媧⑺歐韉鼻昂拖惹拔恢玫謀淞?,以及用于存儲自動模式的位置或步驟的陣列。 #include <SoftwareSerial.h> #include <Servo.h> Servo servo01; Servo servo02; Servo servo03; Servo servo04; Servo servo05; Servo servo06; SoftwareSerial Bluetooth(3, 4); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX) int servo1Pos, servo2Pos, servo3Pos, servo4Pos, servo5Pos, servo6Pos; // current position int servo1PPos, servo2PPos, servo3PPos, servo4PPos, servo5PPos, servo6PPos; // previous position int servo01SP[50], servo02SP[50], servo03SP[50], servo04SP[50], servo05SP[50], servo06SP[50]; // for storing positions/steps int speedDelay = 20; int index = 0; String dataIn = ""; 在設置部分,我們需要初始化伺服器和藍牙???,并將機械臂移動到其初始位置。我們使用write()函數來做到這一點,它只是將伺服器移動到0到180度的任何位置。 void setup() { servo01.attach(5); servo02.attach(6); servo03.attach(7); servo04.attach(8); servo05.attach(9); servo06.attach(10); Bluetooth.begin(38400); // Default baud rate of the Bluetooth module Bluetooth.setTimeout(1); delay(20); // Robot arm initial position servo1PPos = 90; servo01.write(servo1PPos); servo2PPos = 150; servo02.write(servo2PPos); servo3PPos = 35; servo03.write(servo3PPos); servo4PPos = 140; servo04.write(servo4PPos); servo5PPos = 85; servo05.write(servo5PPos); servo6PPos = 80; servo06.write(servo6PPos); } 接下來,在循環部分,使用Bluetooth.available()函數,我們不斷檢查智能手機是否有任何傳入數據。如果為true,則使用readString()函數將數據讀取為字符串并將其存儲到dataIn變量中。根據到達的數據,我們將告訴機械臂該做什么。 // Check for incoming data if (Bluetooth.available() > 0) { dataIn = Bluetooth.readString(); // Read the data as string Arduino機械臂控制Android應用程序 我們現在來看看Android應用程序,看看它實際發送給Arduino的數據類型。 我使用MIT App Inventor在線應用程序制作了應用程序,以及它的工作原理。在頂部,我們有兩個按鈕,用于將智能手機連接到HC-05藍牙???。然后在左側我們有一個機械臂的圖像,在右側我們有六個用于控制伺服器的滑塊和一個用于速度控制的滑塊。 每個滑塊都有不同的初始值,最小值和最大值,適合機械臂關節。在應用程序的底部,我們有三個按鈕,SAVE,RUN和RESET,通過它我們可以編程機械臂自動運行。下面還有一個標簽,顯示我們保存的步驟數。然而,有關如何使用MIT App Inventor構建此類應用程序的更多詳細信息,您可以查看我的其他詳細教程。 好的,現在讓我們看看應用程序背后的程序或塊。首先,在左側,我們有用于將智能手機連接到藍牙??櫚哪??。 然后我們有用于伺服位置控制的滑塊和用于編程機械臂的按鈕塊。因此,如果我們使用藍牙功能.SendText更改滑塊的位置,我們會向Arduino發送文本。此文本包含一個前綴,指示哪個滑塊已更改,以及滑塊的當前值。 這是上述MIT App Inventor項目的下載文件,以及準備安裝在智能手機上的Android App: 因此,在Arduino中,使用startsWith()函數,我們檢查每個傳入數據的前綴,因此我們知道接下來要做什么。例如,如果前綴是“s1”,我們知道我們需要移動伺服編號1。使用substring()函數我們得到剩余的文本,或者是位置值,我們將其轉換為整數并使用該值將伺服移動到該位置。 // If "Waist" slider has changed value - Move Servo 1 to position if (dataIn.startsWith("s1")) { String dataInS = dataIn.substring(2, dataIn.length()); // Extract only the number. E.g. from "s1120" to "120" servo1Pos = dataInS.toInt(); // Convert the string into integer 在這里我們可以簡單地調用write()函數并且伺服將轉到該位置,但是以這種方式伺服將以其最大速度運行,這對于機械臂來說太快了。相反,我們需要控制伺服的速度,因此我使用了一些FOR循環,以便通過在每次迭代之間實現延遲時間來逐漸將伺服從前一個位置移動到當前位置。通過更改延遲時間,您可以更改伺服的速度。 // We use for loops so we can control the speed of the servo // If previous position is bigger then current position if (servo1PPos > servo1Pos) { for ( int j = servo1PPos; j >= servo1Pos; j--) { // Run servo down servo01.write(j); delay(20); // defines the speed at which the servo rotates } } // If previous position is smaller then current position if (servo1PPos < servo1Pos) { for ( int j = servo1PPos; j <= servo1Pos; j++) { // Run servo up servo01.write(j); delay(20); } } servo1PPos = servo1Pos; // set current position as previous position } 相同的方法用于驅動機器人臂的每個軸。 在它們下面是SAVE按鈕。如果我們按下SAVE按鈕,每個伺服電機的位置將存儲在一個陣列中。隨著每次按壓,索引增加,因此陣列逐步填充。 // If button "SAVE" is pressed if (dataIn.startsWith("SAVE")) { servo01SP[index] = servo1PPos; // save position into the array servo02SP[index] = servo2PPos; servo03SP[index] = servo3PPos; servo04SP[index] = servo4PPos; servo05SP[index] = servo5PPos; servo06SP[index] = servo6PPos; index++; // Increase the array index } 然后,如果我們按下RUN按鈕,我們調用runservo()自定義函數,該函數運行存儲的步驟。我們來看看這個功能。所以這里我們一遍又一遍地運行存儲的步驟,直到我們按下RESET按鈕。使用FOR循環,我們遍歷存儲在陣列中的所有位置,同時我們檢查是否有來自智能手機的任何傳入數據。此數據可以是RUN / PAUSE按鈕,用于暫?;魅?,如果再次單擊則繼續自動運動。此外,如果我們改變速度滑塊位置,我們將使用該值來改變下面FOR循環中每次迭代之間的延遲時間,這將控制伺服電機的速度。 // Automatic mode custom function - run the saved steps void runservo() { while (dataIn != "RESET") { // Run the steps over and over again until "RESET" button is pressed for (int i = 0; i <= index - 2; i++) { // Run through all steps(index) if (Bluetooth.available() > 0) { // Check for incomding data dataIn = Bluetooth.readString(); if ( dataIn == "PAUSE") { // If button "PAUSE" is pressed while (dataIn != "RUN") { // Wait until "RUN" is pressed again if (Bluetooth.available() > 0) { dataIn = Bluetooth.readString(); if ( dataIn == "RESET") { break; } } } } // If SPEED slider is changed if (dataIn.startsWith("ss")) { String dataInS = dataIn.substring(2, dataIn.length()); speedDelay = dataInS.toInt(); // Change servo speed (delay time) } } // Servo 1 if (servo01SP[i] == servo01SP[i + 1]) { } if (servo01SP[i] > servo01SP[i + 1]) { for ( int j = servo01SP[i]; j >= servo01SP[i + 1]; j--) { servo01.write(j); delay(speedDelay); } } if (servo01SP[i] < servo01SP[i + 1]) { for ( int j = servo01SP[i]; j <= servo01SP[i + 1]; j++) { servo01.write(j); delay(speedDelay); } } 以前面用這些IF語句和FOR循環解釋的方式,我們將伺服器移動到下一個位置。最后,如果我們按下RESET按鈕,我們將清除陣列中的所有數據為零,并將索引重置為零,這樣我們就可以用新的動作重新編程機械臂。 // If button "RESET" is pressed if ( dataIn == "RESET") { memset(servo01SP, 0, sizeof(servo01SP)); // Clear the array data to 0 memset(servo02SP, 0, sizeof(servo02SP)); memset(servo03SP, 0, sizeof(servo03SP)); memset(servo04SP, 0, sizeof(servo04SP)); memset(servo05SP, 0, sizeof(servo05SP)); memset(servo06SP, 0, sizeof(servo06SP)); index = 0; // Index to 0 } 就是這樣,現在我們可以享受機械臂帶來的樂趣。
    來自:DIY創意產品時間:2019-06-29 diy制作 arduino 開源 藍牙 app
銷量
86
查看
1850
參數名 參數值
發布于 2018 年 05 月 31日
Moore8直播課堂

tracer ??