色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

ElectronBot教程之數字舵機

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-08-04 11:57 ? 次閱讀

相信這個東西很多人都見過,大佬做的一個機器人

大部分人都是在關注功能本身,只有我看上了這個改裝的小舵機。因為市面上的舵機只能接收PWM信號,進行角度控制。

這就有問題了。

在這種情況下我們只能發送指令,讓舵機運動,卻不能接收指令,從而知道它的運動狀態。同時,想要讓舵機進行反驅,就必須能讓舵機隨時進行輸出力矩的切換。小驅動器支持IIC總線通信PID閉環控制,位置回傳,還能設置最大的輸出力矩,斷電儲存參數等。

0d3a9d56-130e-11ed-ba43-dac502259ad0.png

更加詳細的一些內容在readme里面

魔改后的舵機通過I2C接口和控制板進行通信,STM32F4的控制板為主機,舵機為從機。通信的過程始終是主機發起的,主機首先下發位置、參數等指令,然后即時取回相關數據完成一個通信來回。

每個舵機作為從機接收兩個地址的指令:自己的ID號,以及0號廣播。廣播用于在沒有給舵機設置地址的時候作為通配地址使用(比如你剛燒寫完舵機固件,此時舵機的Flash是沒有儲存自己的ID的,只能通過0號地址通信)。

值得注意的是:舵機和主機的上電需要有先后順序,一定要先讓從機初始化完成開始監聽數據,再讓主機發送指令!

如果主機發送指令的時候從機不響應,或者多個舵機地址相同同時響應,都可能引起通信錯誤,因此需要保證上述的順序。

由于硬件上主機和舵機上電都是同時的,所以在主機的固件代碼中,有一個延時2S的代碼(其實可以不用那么久),就是等待舵機都上電初始化完成再開始通信。

調試的時候,一個舵機一個舵機調試,注釋掉其他未連接的舵機的通信代碼,不然也會造成輪詢等待超時。

0d614ffa-130e-11ed-ba43-dac502259ad0.png

舵機指令的含義

0d89abc6-130e-11ed-ba43-dac502259ad0.png

大概的樣子

0dbcc0c4-130e-11ed-ba43-dac502259ad0.png

改裝后的樣子

0dd37710-130e-11ed-ba43-dac502259ad0.png

在庫里面,我畫圖的地方是舵機庫的位置

0de91a8e-130e-11ed-ba43-dac502259ad0.png

一開始的話就看fw這個就行,下面是用較為低級的一個庫寫的。

0e038b9e-130e-11ed-ba43-dac502259ad0.png

單獨的keli工程

終于里面的芯片是這樣的,舵機馬達的驅動IC

0e5ea768-130e-11ed-ba43-dac502259ad0.png

IC簡單的介紹

0e6f9410-130e-11ed-ba43-dac502259ad0.png

DK是右邊的,方便調試和下載,量產的時候就用前面的就行。

0ec27644-130e-11ed-ba43-dac502259ad0.png

右邊就是我們的驅動IC了

0ee73074-130e-11ed-ba43-dac502259ad0.png

這是兩個版本的正反面

0f12cdce-130e-11ed-ba43-dac502259ad0.png

當然AD里面可以拿到兩個

0f4b4c58-130e-11ed-ba43-dac502259ad0.png

LP2992

0f6ad672-130e-11ed-ba43-dac502259ad0.png

0fa0f590-130e-11ed-ba43-dac502259ad0.png

兩版的原理圖

0fd156c2-130e-11ed-ba43-dac502259ad0.png

這個就是LDO,輸入的是5V,輸出就3V3

0fe02c9c-130e-11ed-ba43-dac502259ad0.png

這個驅動芯片需要5V

0fef84f8-130e-11ed-ba43-dac502259ad0.png

3,4是PWM的腳

1007ba64-130e-11ed-ba43-dac502259ad0.png

內部的框圖

10249436-130e-11ed-ba43-dac502259ad0.png

這個是控制的真值表

103a6982-130e-11ed-ba43-dac502259ad0.png

這個是預定的一些參數

10591db4-130e-11ed-ba43-dac502259ad0.png

典型波形圖

1078c934-130e-11ed-ba43-dac502259ad0.png

舵機的話,就使用這樣的原理圖

1092d5f4-130e-11ed-ba43-dac502259ad0.png

這個是main文件

10ea1292-130e-11ed-ba43-dac502259ad0.png

但是具體的實現是在CPP文件里面

1102c846-130e-11ed-ba43-dac502259ad0.png

這個主控文件,就是這么簡單

111caa90-130e-11ed-ba43-dac502259ad0.png

在一開始會聲明兩個對象,一個舵機,一個板子的配置

113853f8-130e-11ed-ba43-dac502259ad0.png

在這個類里面,他包裝了一下舵機的信息,包括實現的PID功能

115a4c4c-130e-11ed-ba43-dac502259ad0.png

這些就是共有的接口

11679000-130e-11ed-ba43-dac502259ad0.png

私有的變量,命名清晰贊一個

1177425c-130e-11ed-ba43-dac502259ad0.png

設置要轉的角度

11854d16-130e-11ed-ba43-dac502259ad0.png

設置是否開啟舵機

119fa756-130e-11ed-ba43-dac502259ad0.png

設置轉矩的設置

11c0640a-130e-11ed-ba43-dac502259ad0.png

輸入是是位置和值

11e6f8d6-130e-11ed-ba43-dac502259ad0.png

這個就是PWM的輸出函數

12109eca-130e-11ed-ba43-dac502259ad0.png

放大一點看

12345cd4-130e-11ed-ba43-dac502259ad0.png

這個庫函數的參數

125bae92-130e-11ed-ba43-dac502259ad0.png

  1. 定時器的句柄,

2.已經被配置好的定時器通道,

3.要對比的寄存器

電機的轉速是和PWM的占空比成正比的。

126d71cc-130e-11ed-ba43-dac502259ad0.png

PWM波的生成

12962a54-130e-11ed-ba43-dac502259ad0.png

生成的原理

12b1e262-130e-11ed-ba43-dac502259ad0.png

這里就是使用了兩個定時器

1309c5fe-130e-11ed-ba43-dac502259ad0.png

下面是4個定時器的通道

1331e0a2-130e-11ed-ba43-dac502259ad0.png

還記得板子的斷電信息存儲的功能嗎?這就是儲存數據

1357b480-130e-11ed-ba43-dac502259ad0.png

在每次上電后,都會取里面的數據

13898802-130e-11ed-ba43-dac502259ad0.png

判斷目前的配置情況

13a5e27c-130e-11ed-ba43-dac502259ad0.png

進行數據的賦值

13c5a1fc-130e-11ed-ba43-dac502259ad0.png

把取到的數據都放在motor的類里面,以便于后面的使用,最后一個就是裝載完成。

13e74a46-130e-11ed-ba43-dac502259ad0.png

初始化兩個PWM的通道

14056e54-130e-11ed-ba43-dac502259ad0.png

然后這才開始初始化IIC硬件

142410ac-130e-11ed-ba43-dac502259ad0.png

就是一段代碼了,應該是很簡單的

145b5558-130e-11ed-ba43-dac502259ad0.png

IIC的寄存器就是這些了

14853562-130e-11ed-ba43-dac502259ad0.png

使用7位模式

14a245b2-130e-11ed-ba43-dac502259ad0.png

最后的三行代碼

在從模式下接收一定量的數據,在非阻塞模式下使用中斷 。

param hi2c 指向 I2C_HandleTypeDef 結構的指針,該結構包含 * 指定 I2C 的配置信息。

param pData 指向數據緩沖區的指針

param Size 要發送的數據量 * @retval HAL 狀態

14bddfc0-130e-11ed-ba43-dac502259ad0.png

200HZ下獲取數據

14db16d0-130e-11ed-ba43-dac502259ad0.png

頻繁的判斷,舵機要工作的模式

14fe8a20-130e-11ed-ba43-dac502259ad0.png

對電壓的測量是使用的回調函數

15194072-130e-11ed-ba43-dac502259ad0.png

接下來是大段的協議封裝

也就是我們的中斷回調函數

153d864e-130e-11ed-ba43-dac502259ad0.png

會先來判斷一下HAL的狀態

155cdf94-130e-11ed-ba43-dac502259ad0.png

這是要發送和接受的I2C數組

1578fb3e-130e-11ed-ba43-dac502259ad0.png

看右邊

15a2fd12-130e-11ed-ba43-dac502259ad0.png

自己看這個數組的順

15d0c26a-130e-11ed-ba43-dac502259ad0.png

使用的是switch的結構來解讀信息

當這個信息是0x01的話,

15f5acd8-130e-11ed-ba43-dac502259ad0.png

會從這里的進行一個數據的組裝

160666b8-130e-11ed-ba43-dac502259ad0.png

TX萬事了RX,安排發送

16238180-130e-11ed-ba43-dac502259ad0.png

最后是一個控制數據的發送,從ADC讀取,接著是angle角度的計算,把角度給PID的函數處理,平滑軌跡,最后設置PWM。

代碼還是看的有點粗,還有很多的細節沒有寫,但是學到的東西已經很多了。

不過多數是這樣的。。。確實很強的大佬~

https://github.com/peng-zhihui/ElectronBot
https://www.tech-harry.cn/archives/4511
https://item.szlcsc.com/145106.html

審核編輯:湯梓紅


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

    關注

    211

    文章

    28380

    瀏覽量

    206918
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5181

    瀏覽量

    213809
  • 數字舵機
    +關注

    關注

    1

    文章

    11

    瀏覽量

    6313

原文標題:ElectronBot-數字舵機篇

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【資料推薦】數字舵機與模擬舵機的控制方法與性能比較

    數碼舵機常見問題原理分析及解決:一、數碼舵機與模擬舵機的區別 傳統模擬舵機數字比例舵機(或稱之
    發表于 06-30 06:34

    舵機是什么?數字電機和模擬電機有什么不同?

    舵機是什么?舵機的參數有哪些?常見的舵機有哪幾種?數字電機和模擬電機有什么不同?
    發表于 07-13 07:29

    數字舵機與模擬舵機的區別在哪?

    舵機是什么?數字舵機的工作原理是什么?數字舵機與模擬舵機區別在哪?
    發表于 07-13 06:16

    HAL庫是如何控制數字舵機

    HAL庫方式控制數字舵機介紹數字舵機一般比較貴,數字舵機與模擬
    發表于 08-05 07:30

    數字舵機與模擬舵機的區別在哪

    無刷舵機是由哪些部分組成的?數字舵機有何優勢?數字舵機與模擬舵機的區別在哪?
    發表于 08-10 06:00

    數字舵機與模擬舵機有哪些不同之處

    什么是舵機舵機是由哪些部分組成的?舵機分為哪幾種?什么是無刷舵機?無刷舵機有何特點?數字
    發表于 08-23 06:04

    數字舵機與模擬舵機的區別在哪

    無刷舵機的結構是由哪些部分組成的?有哪些優缺點?普通舵機的結構是由哪些部分組成的?有哪些優缺點?數字舵機的結構是由哪些部分組成的?有哪些優缺點?
    發表于 09-02 06:08

    無刷舵機數字舵機以及模擬舵機有哪些區別

    無刷舵機有哪些優缺點?其控制原理是什么?數字舵機有哪些優缺點?其控制原理是什么?模擬舵機有哪些優缺點?其控制原理是什么?
    發表于 09-06 07:57

    JAVA教程之數字時鐘

    JAVA教程之數字時鐘,很好的學習資料。
    發表于 03-31 11:13 ?8次下載

    數字舵機控制原理是什么_數字舵機與模擬舵機的區別

    數字舵機(Digital Servo)和模擬舵機(Analog Servo)在基本的機械結構方面是完全一樣的,主要由馬達、減速齒輪、控制電路等組成,而數字
    的頭像 發表于 05-30 16:29 ?6.3w次閱讀

    dfrobot數字舵機Arduino擴展板簡介

    DRI0027是DFRobot研發的世界首款Arduino兼容的數字化總線式伺服舵機驅動板,能夠為您解決機器人舵機控制領域的許多難題。該驅動板是DFRobot針對博創CDS5516數字
    的頭像 發表于 11-20 17:26 ?3832次閱讀
    dfrobot<b class='flag-5'>數字</b><b class='flag-5'>舵機</b>Arduino擴展板簡介

    舵機是什么_數字舵機與模擬舵機有的區別

    本文首先介紹了舵機的概念,其次介紹了舵機的類型,最后闡述了數字舵機與模擬舵機有的區別。
    的頭像 發表于 03-21 09:59 ?2.7w次閱讀

    Arduino的實驗例程之9克舵機實驗的詳細資料說明

    本文檔的主要內容詳細介紹的是Arduino的實驗例程之9克舵機實驗的詳細資料說明。
    發表于 02-25 16:36 ?14次下載

    Arduino的實驗例程之9克舵機實驗的詳細資料說明

    本文檔的主要內容詳細介紹的是Arduino的實驗例程之9克舵機實驗的詳細資料說明。
    發表于 02-25 16:36 ?30次下載

    Arduino UNO驅動數字舵機

    Arduino UNO驅動數字舵機舵機數字舵機工作原理數字
    發表于 11-30 12:06 ?15次下載
    Arduino UNO驅動<b class='flag-5'>數字</b><b class='flag-5'>舵機</b>
    主站蜘蛛池模板: 丝瓜视频樱桃视频在线观看免费| 国产香蕉尹人视频在线| 宝贝好紧好爽再搔一点试視頻 | 自拍黄色片| 97人妻AV天天澡夜夜爽| DASD-700美谷朱里| 国产第81页| 久久99re2热在线播放7| 麻豆AV无码蜜臀AV色哟| 啪啪做羞羞事小黄文| 无人区免费一二三四乱码| 亚洲午夜精品A片久久不卡蜜桃 | jizz非洲| 国产叼嘿久久精品久久| 国产中文字幕乱码一区| 美女脱得只剩皮肤| 三级视频黄色| 一攻多受h嗯啊巨肉bl巨污| 99无人区码一码二码三| 国产成人片视频一区二区青青| 好男人好资源在线播放| 毛片手机在线| 玩高中女同桌肉色短丝袜脚文| 亚洲中文在线偷拍| WWW亚洲精品久久久无码| 国产私拍福利精品视频| 狼与美女谐音歌词| 特级做A爰片毛片免费69| 伊人久久综合网站| 处女座历史名人| 久久精品国产96精品亚洲| 秋霞网站一级一片| 亚洲一级电影| 春药按摩人妻中文字幕| 久久久久久久久免费视频| 日本丝袜护士| 在线免费观看a视频| 国产99热在线观看| 猛烈抽插H1V1| 亚洲国产精麻豆| 成人在免费观看视频国产|