欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

ElectronBot教程之?dāng)?shù)字舵機(jī)

云深之無(wú)跡 ? 來(lái)源:云深之無(wú)跡 ? 作者:云深之無(wú)跡 ? 2022-08-04 11:57 ? 次閱讀

相信這個(gè)東西很多人都見(jiàn)過(guò),大佬做的一個(gè)機(jī)器人

大部分人都是在關(guān)注功能本身,只有我看上了這個(gè)改裝的小舵機(jī)。因?yàn)槭忻嫔系亩鏅C(jī)只能接收PWM信號(hào),進(jìn)行角度控制。

這就有問(wèn)題了。

在這種情況下我們只能發(fā)送指令,讓舵機(jī)運(yùn)動(dòng),卻不能接收指令,從而知道它的運(yùn)動(dòng)狀態(tài)。同時(shí),想要讓舵機(jī)進(jìn)行反驅(qū),就必須能讓舵機(jī)隨時(shí)進(jìn)行輸出力矩的切換。小驅(qū)動(dòng)器支持IIC總線通信,PID閉環(huán)控制,位置回傳,還能設(shè)置最大的輸出力矩,斷電儲(chǔ)存參數(shù)等。

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

更加詳細(xì)的一些內(nèi)容在readme里面

魔改后的舵機(jī)通過(guò)I2C接口和控制板進(jìn)行通信,STM32F4的控制板為主機(jī),舵機(jī)為從機(jī)。通信的過(guò)程始終是主機(jī)發(fā)起的,主機(jī)首先下發(fā)位置、參數(shù)等指令,然后即時(shí)取回相關(guān)數(shù)據(jù)完成一個(gè)通信來(lái)回。

每個(gè)舵機(jī)作為從機(jī)接收兩個(gè)地址的指令:自己的ID號(hào),以及0號(hào)廣播。廣播用于在沒(méi)有給舵機(jī)設(shè)置地址的時(shí)候作為通配地址使用(比如你剛燒寫(xiě)完舵機(jī)固件,此時(shí)舵機(jī)的Flash是沒(méi)有儲(chǔ)存自己的ID的,只能通過(guò)0號(hào)地址通信)。

值得注意的是:舵機(jī)和主機(jī)的上電需要有先后順序,一定要先讓從機(jī)初始化完成開(kāi)始監(jiān)聽(tīng)數(shù)據(jù),再讓主機(jī)發(fā)送指令!

如果主機(jī)發(fā)送指令的時(shí)候從機(jī)不響應(yīng),或者多個(gè)舵機(jī)地址相同同時(shí)響應(yīng),都可能引起通信錯(cuò)誤,因此需要保證上述的順序。

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

調(diào)試的時(shí)候,一個(gè)舵機(jī)一個(gè)舵機(jī)調(diào)試,注釋掉其他未連接的舵機(jī)的通信代碼,不然也會(huì)造成輪詢(xún)等待超時(shí)。

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

舵機(jī)指令的含義

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

大概的樣子

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

改裝后的樣子

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

在庫(kù)里面,我畫(huà)圖的地方是舵機(jī)庫(kù)的位置

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

一開(kāi)始的話就看fw這個(gè)就行,下面是用較為低級(jí)的一個(gè)庫(kù)寫(xiě)的。

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

單獨(dú)的keli工程

終于里面的芯片是這樣的,舵機(jī)馬達(dá)的驅(qū)動(dòng)IC

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

IC簡(jiǎn)單的介紹

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

DK是右邊的,方便調(diào)試和下載,量產(chǎn)的時(shí)候就用前面的就行。

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

右邊就是我們的驅(qū)動(dòng)IC了

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

這是兩個(gè)版本的正反面

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

當(dāng)然AD里面可以拿到兩個(gè)

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

這個(gè)就是LDO,輸入的是5V,輸出就3V3

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

這個(gè)驅(qū)動(dòng)芯片需要5V

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

3,4是PWM的腳

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

內(nèi)部的框圖

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

這個(gè)是控制的真值表

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

這個(gè)是預(yù)定的一些參數(shù)

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

典型波形圖

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

舵機(jī)的話,就使用這樣的原理圖

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

這個(gè)是main文件

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

但是具體的實(shí)現(xiàn)是在CPP文件里面

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

這個(gè)主控文件,就是這么簡(jiǎn)單

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

在一開(kāi)始會(huì)聲明兩個(gè)對(duì)象,一個(gè)舵機(jī),一個(gè)板子的配置

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

在這個(gè)類(lèi)里面,他包裝了一下舵機(jī)的信息,包括實(shí)現(xiàn)的PID功能

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

這些就是共有的接口

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

私有的變量,命名清晰贊一個(gè)

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

設(shè)置要轉(zhuǎn)的角度

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

設(shè)置是否開(kāi)啟舵機(jī)

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

設(shè)置轉(zhuǎn)矩的設(shè)置

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

輸入是是位置和值

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

這個(gè)就是PWM的輸出函數(shù)

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

放大一點(diǎn)看

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

這個(gè)庫(kù)函數(shù)的參數(shù)

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

  1. 定時(shí)器的句柄,

2.已經(jīng)被配置好的定時(shí)器通道,

3.要對(duì)比的寄存器

電機(jī)的轉(zhuǎn)速是和PWM的占空比成正比的。

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

PWM波的生成

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

生成的原理

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

這里就是使用了兩個(gè)定時(shí)器

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

下面是4個(gè)定時(shí)器的通道

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

還記得板子的斷電信息存儲(chǔ)的功能嗎?這就是儲(chǔ)存數(shù)據(jù)

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

在每次上電后,都會(huì)取里面的數(shù)據(jù)

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

判斷目前的配置情況

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

進(jìn)行數(shù)據(jù)的賦值

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

把取到的數(shù)據(jù)都放在motor的類(lèi)里面,以便于后面的使用,最后一個(gè)就是裝載完成。

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

初始化兩個(gè)PWM的通道

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

然后這才開(kāi)始初始化IIC硬件

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

就是一段代碼了,應(yīng)該是很簡(jiǎn)單的

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

IIC的寄存器就是這些了

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

使用7位模式

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

最后的三行代碼

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

param hi2c 指向 I2C_HandleTypeDef 結(jié)構(gòu)的指針,該結(jié)構(gòu)包含 * 指定 I2C 的配置信息。

param pData 指向數(shù)據(jù)緩沖區(qū)的指針

param Size 要發(fā)送的數(shù)據(jù)量 * @retval HAL 狀態(tài)

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

200HZ下獲取數(shù)據(jù)

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

頻繁的判斷,舵機(jī)要工作的模式

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

對(duì)電壓的測(cè)量是使用的回調(diào)函數(shù)

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

接下來(lái)是大段的協(xié)議封裝

也就是我們的中斷回調(diào)函數(shù)

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

會(huì)先來(lái)判斷一下HAL的狀態(tài)

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

這是要發(fā)送和接受的I2C數(shù)組

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

看右邊

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

自己看這個(gè)數(shù)組的順

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

使用的是switch的結(jié)構(gòu)來(lái)解讀信息

當(dāng)這個(gè)信息是0x01的話,

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

會(huì)從這里的進(jìn)行一個(gè)數(shù)據(jù)的組裝

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

TX萬(wàn)事了RX,安排發(fā)送

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

最后是一個(gè)控制數(shù)據(jù)的發(fā)送,從ADC讀取,接著是angle角度的計(jì)算,把角度給PID的函數(shù)處理,平滑軌跡,最后設(shè)置PWM。

代碼還是看的有點(diǎn)粗,還有很多的細(xì)節(jié)沒(méi)有寫(xiě),但是學(xué)到的東西已經(jīng)很多了。

不過(guò)多數(shù)是這樣的。。。確實(shí)很強(qiáng)的大佬~

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

審核編輯:湯梓紅


聲明:本文內(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)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28691

    瀏覽量

    208649
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5201

    瀏覽量

    214961
  • 數(shù)字舵機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    11

    瀏覽量

    6364

原文標(biāo)題:ElectronBot-數(shù)字舵機(jī)篇

文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無(wú)跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【資料推薦】數(shù)字舵機(jī)與模擬舵機(jī)的控制方法與性能比較

    數(shù)碼舵機(jī)常見(jiàn)問(wèn)題原理分析及解決:一、數(shù)碼舵機(jī)與模擬舵機(jī)的區(qū)別 傳統(tǒng)模擬舵機(jī)數(shù)字比例舵機(jī)(或稱(chēng)之
    發(fā)表于 06-30 06:34

    舵機(jī)是什么?數(shù)字電機(jī)和模擬電機(jī)有什么不同?

    舵機(jī)是什么?舵機(jī)的參數(shù)有哪些?常見(jiàn)的舵機(jī)有哪幾種?數(shù)字電機(jī)和模擬電機(jī)有什么不同?
    發(fā)表于 07-13 07:29

    數(shù)字舵機(jī)與模擬舵機(jī)的區(qū)別在哪?

    舵機(jī)是什么?數(shù)字舵機(jī)的工作原理是什么?數(shù)字舵機(jī)與模擬舵機(jī)區(qū)別在哪?
    發(fā)表于 07-13 06:16

    HAL庫(kù)是如何控制數(shù)字舵機(jī)

    HAL庫(kù)方式控制數(shù)字舵機(jī)介紹數(shù)字舵機(jī)一般比較貴,數(shù)字舵機(jī)與模擬
    發(fā)表于 08-05 07:30

    數(shù)字舵機(jī)與模擬舵機(jī)的區(qū)別在哪

    無(wú)刷舵機(jī)是由哪些部分組成的?數(shù)字舵機(jī)有何優(yōu)勢(shì)?數(shù)字舵機(jī)與模擬舵機(jī)的區(qū)別在哪?
    發(fā)表于 08-10 06:00

    數(shù)字舵機(jī)與模擬舵機(jī)有哪些不同之處

    什么是舵機(jī)?舵機(jī)是由哪些部分組成的?舵機(jī)分為哪幾種?什么是無(wú)刷舵機(jī)?無(wú)刷舵機(jī)有何特點(diǎn)?數(shù)字
    發(fā)表于 08-23 06:04

    數(shù)字舵機(jī)與模擬舵機(jī)的區(qū)別在哪

    無(wú)刷舵機(jī)的結(jié)構(gòu)是由哪些部分組成的?有哪些優(yōu)缺點(diǎn)?普通舵機(jī)的結(jié)構(gòu)是由哪些部分組成的?有哪些優(yōu)缺點(diǎn)?數(shù)字舵機(jī)的結(jié)構(gòu)是由哪些部分組成的?有哪些優(yōu)缺點(diǎn)?
    發(fā)表于 09-02 06:08

    無(wú)刷舵機(jī)數(shù)字舵機(jī)以及模擬舵機(jī)有哪些區(qū)別

    無(wú)刷舵機(jī)有哪些優(yōu)缺點(diǎn)?其控制原理是什么?數(shù)字舵機(jī)有哪些優(yōu)缺點(diǎn)?其控制原理是什么?模擬舵機(jī)有哪些優(yōu)缺點(diǎn)?其控制原理是什么?
    發(fā)表于 09-06 07:57

    JAVA教程之數(shù)字時(shí)鐘

    JAVA教程之數(shù)字時(shí)鐘,很好的學(xué)習(xí)資料。
    發(fā)表于 03-31 11:13 ?8次下載

    數(shù)字舵機(jī)控制原理是什么_數(shù)字舵機(jī)與模擬舵機(jī)的區(qū)別

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

    dfrobot數(shù)字舵機(jī)Arduino擴(kuò)展板簡(jiǎn)介

    DRI0027是DFRobot研發(fā)的世界首款A(yù)rduino兼容的數(shù)字化總線式伺服舵機(jī)驅(qū)動(dòng)板,能夠?yàn)槟鉀Q機(jī)器人舵機(jī)控制領(lǐng)域的許多難題。該驅(qū)動(dòng)板是DFRobot針對(duì)博創(chuàng)CDS5516數(shù)字
    的頭像 發(fā)表于 11-20 17:26 ?3910次閱讀
    dfrobot<b class='flag-5'>數(shù)字</b><b class='flag-5'>舵機(jī)</b>Arduino擴(kuò)展板簡(jiǎn)介

    舵機(jī)是什么_數(shù)字舵機(jī)與模擬舵機(jī)有的區(qū)別

    本文首先介紹了舵機(jī)的概念,其次介紹了舵機(jī)的類(lèi)型,最后闡述了數(shù)字舵機(jī)與模擬舵機(jī)有的區(qū)別。
    的頭像 發(fā)表于 03-21 09:59 ?2.7w次閱讀

    Arduino的實(shí)驗(yàn)例程之9克舵機(jī)實(shí)驗(yàn)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Arduino的實(shí)驗(yàn)例程之9克舵機(jī)實(shí)驗(yàn)的詳細(xì)資料說(shuō)明。
    發(fā)表于 02-25 16:36 ?14次下載

    Arduino的實(shí)驗(yàn)例程之9克舵機(jī)實(shí)驗(yàn)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Arduino的實(shí)驗(yàn)例程之9克舵機(jī)實(shí)驗(yàn)的詳細(xì)資料說(shuō)明。
    發(fā)表于 02-25 16:36 ?30次下載

    Arduino UNO驅(qū)動(dòng)數(shù)字舵機(jī)

    Arduino UNO驅(qū)動(dòng)數(shù)字舵機(jī)舵機(jī)數(shù)字舵機(jī)工作原理數(shù)字
    發(fā)表于 11-30 12:06 ?15次下載
    Arduino UNO驅(qū)動(dòng)<b class='flag-5'>數(shù)字</b><b class='flag-5'>舵機(jī)</b>