国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ESP32(MicroPython) 四足機(jī)器人(五)功能補(bǔ)充

這篇具有很好參考價(jià)值的文章主要介紹了ESP32(MicroPython) 四足機(jī)器人(五)功能補(bǔ)充。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本次更新增加了前后傾斜(每次動(dòng)作交換前部和后部高度)、蹲起與抬腳動(dòng)作,均位于用于連續(xù)執(zhí)行動(dòng)作的function函數(shù)中,但實(shí)測(cè)抬腳動(dòng)作需要先啟動(dòng)function函數(shù)的另一項(xiàng)功能才能正常開啟,代碼檢查無(wú)誤,應(yīng)該是MicroPython固件的bug。另外,對(duì)于判斷功能,增加了elif語(yǔ)句的使用,避免重復(fù)使用if語(yǔ)句以提高運(yùn)行效率。

程序如下

import time

from machine import SoftI2C,Pin

from servo import Servos

import _thread

i2c=SoftI2C(sda=Pin(9),scl=Pin(8),freq=10000)

servos=Servos(i2c,address=0x40)

?

servos.position(0,90)

servos.position(1,90)

servos.position(2,90)

servos.position(3,90)

servos.position(4,90)

servos.position(5,90)

servos.position(6,90)

servos.position(7,90)

servos.position(8,120)

servos.position(9,120)

servos.position(10,120)

servos.position(11,120)

time.sleep(1)

?

Height1=0 #前部高度,0為最高

Height2=0 #后部高度,0為最高

mode=0

delay=300

?

def straight(angle): #直行,給所有轉(zhuǎn)向舵機(jī)寫入相應(yīng)角度以調(diào)整方向

? ? servos.position(0,angle)

? ? servos.position(1,angle)

? ? servos.position(2,angle)

? ? servos.position(3,angle)

?

def turn(angle): #傾斜

? ? servos.position(0,angle)

? ? servos.position(1,angle)

? ? servos.position(2,180-angle)

? ? servos.position(3,180-angle)

? ??

def tilt(height1,height2): #前后傾斜,局部變量與全局變量通過(guò)大小寫區(qū)分

? ? servos.position(4,90-height1)

? ? servos.position(5,90-height1)

? ? servos.position(6,90-height2)

? ? servos.position(7,90-height2)

? ? servos.position(8,120-height1-height1) #底部舵機(jī)使用兩倍偏置以確保平衡

? ? servos.position(9,120-height1-height1)

? ? servos.position(10,120-height2-height2)

? ? servos.position(11,120-height2-height2)

? ??

def crawl(step,angle): #爬行,第一個(gè)參數(shù)為步驟數(shù),第二個(gè)參數(shù)為相比直立狀態(tài)降低的角度,步長(zhǎng)隨第二個(gè)參數(shù)的增大而增大

? ? if step==1:

? ? ? ? servos.position(4,90-angle-angle)

? ? ? ? servos.position(7,90-angle)

? ? if step==2:

? ? ? ? servos.position(5,90-angle-angle)

? ? if step==3:

? ? ? ? servos.position(6,90-angle-angle)

? ? if step==4:

? ? ? ? servos.position(4,90-angle)

? ? ? ? servos.position(5,90-angle)

? ? ? ? servos.position(6,90-angle)

? ? ? ? servos.position(7,90-angle-angle)? ?

def walk(step,angle): #步行,第一個(gè)參數(shù)為步驟數(shù),第二個(gè)參數(shù)為相比直立狀態(tài)降低的角度,步長(zhǎng)隨第二個(gè)參數(shù)的增大而增大

? ? if step==1:

? ? ? ? servos.position(4,90-angle-angle)

? ? ? ? servos.position(5,90-angle)

? ? ? ? servos.position(6,90-angle)

? ? ? ? servos.position(7,90-angle-angle)

? ? if step==2:

? ? ? ? servos.position(4,90-angle)

? ? ? ? servos.position(5,90-angle-angle)

? ? ? ? servos.position(6,90-angle-angle)

? ? ? ? servos.position(7,90-angle)

?

i1=0

i2=0

def function(i1, i2): #功能函數(shù),執(zhí)行連續(xù)進(jìn)行的動(dòng)作

? ? global mode

? ? global delay

? ? global Height1

? ? global Height2

? ? while True:

? ? ? ? if Height1>45: #參數(shù)超出范圍時(shí)設(shè)為最大值

? ? ? ? ? ? Height1=45

? ? ? ? if Height2>45: #參數(shù)超出范圍時(shí)設(shè)為最大值

? ? ? ? ? ? Height2=45? ??

? ? ? ? if mode==0 or mode>6: #不執(zhí)行功能

? ? ? ? ? ? Step=0 #步數(shù)復(fù)位? ? ? ? ? ??

? ? ? ? elif mode==1: #爬行功能

? ? ? ? ? ? if Step==0:

? ? ? ? ? ? ? ? tilt(Height1,Height1) #先降低高度

? ? ? ? ? ? ? ? Step=1 #改變變量的值以進(jìn)入下一步驟

? ? ? ? ? ? elif Step==1:? ??

? ? ? ? ? ? ? ? crawl(1,Height1)

? ? ? ? ? ? ? ? Step=2

? ? ? ? ? ? elif Step==2:? ??

? ? ? ? ? ? ? ? crawl(2,Height1)

? ? ? ? ? ? ? ? Step=3

? ? ? ? ? ? elif Step==3:? ??

? ? ? ? ? ? ? ? crawl(3,Height1)

? ? ? ? ? ? ? ? Step=4

? ? ? ? ? ? elif Step==4:? ??

? ? ? ? ? ? ? ? crawl(4,Height1)

? ? ? ? ? ? ? ? Step=1

? ? ? ? elif mode==2: #爬行功能(反向)

? ? ? ? ? ? if Step==0:

? ? ? ? ? ? ? ? tilt(Height1,Height1) #先降低高度

? ? ? ? ? ? ? ? Step=4 #改變變量的值以進(jìn)入下一步驟

? ? ? ? ? ? elif Step==4:? ??

? ? ? ? ? ? ? ? crawl(4,Height1)

? ? ? ? ? ? ? ? Step=3

? ? ? ? ? ? elif Step==3:? ??

? ? ? ? ? ? ? ? crawl(3,Height1)

? ? ? ? ? ? ? ? Step=2

? ? ? ? ? ? elif Step==2:? ??

? ? ? ? ? ? ? ? crawl(2,Height1)

? ? ? ? ? ? ? ? Step=1

? ? ? ? ? ? elif Step==1:? ??

? ? ? ? ? ? ? ? crawl(1,Height1)

? ? ? ? ? ? ? ? Step=4??

? ? ? ? elif mode==3: #步行功能(由于只有兩個(gè)步驟,無(wú)正反向調(diào)節(jié),可能不能正常使用,后續(xù)視實(shí)際測(cè)試情況進(jìn)行調(diào)整)

? ? ? ? ? ? if Step>2:

? ? ? ? ? ? ? ? Step=0

? ? ? ? ? ? if Step==0:

? ? ? ? ? ? ? ? tilt(Height1,Height1) #先降低高度

? ? ? ? ? ? ? ? Step=1 #改變變量的值以進(jìn)入下一步驟

? ? ? ? ? ? elif Step==1:? ??

? ? ? ? ? ? ? ? walk(1,Height1)

? ? ? ? ? ? ? ? Step=2

? ? ? ? ? ? elif Step==2:? ??

? ? ? ? ? ? ? ? walk(2,Height1)

? ? ? ? ? ? ? ? Step=1

? ? ? ? elif mode==4: #前后傾斜

? ? ? ? ? ? if Step>2:

? ? ? ? ? ? ? ? Step=0

? ? ? ? ? ? if Step==0:

? ? ? ? ? ? ? ? tilt(0,0) #回到直立狀態(tài)

? ? ? ? ? ? ? ? Step=1 #改變變量的值以進(jìn)入下一步驟

? ? ? ? ? ? elif Step==1:? ??

? ? ? ? ? ? ? ? tilt(Height1,Height2)

? ? ? ? ? ? ? ? Step=2

? ? ? ? ? ? elif Step==2:

? ? ? ? ? ? ? ? tilt(Height1,Height2) #向反方向傾斜

? ? ? ? ? ? ? ? Step=0

? ? ? ? elif mode==5: #蹲起動(dòng)作

? ? ? ? ? ? if Step>1:

? ? ? ? ? ? ? ? Step=0

? ? ? ? ? ? if Step==0:

? ? ? ? ? ? ? ? tilt(0,0) #回到直立狀態(tài)

? ? ? ? ? ? ? ? Step=1 #改變變量的值以進(jìn)入下一步驟

? ? ? ? ? ? elif Step==1:? ??

? ? ? ? ? ? ? ? tilt(Height1,Height2)

? ? ? ? ? ? ? ? Step=0

? ? ? ? elif mode==6: #抬腳動(dòng)作

? ? ? ? ? ? tilt(0,0) #回到直立狀態(tài)

? ? ? ? ? ? if Step==1:

? ? ? ? ? ? ? ? servos.position(4,20)

? ? ? ? ? ? ? ? Step=2 #改變變量的值以進(jìn)入下一步驟

? ? ? ? ? ? elif Step==2:? ??

? ? ? ? ? ? ? ? servos.position(4,90)

? ? ? ? ? ? ? ? Step=3

? ? ? ? ? ? elif Step==3:? ??

? ? ? ? ? ? ? ? servos.position(5,20)

? ? ? ? ? ? ? ? Step=4

? ? ? ? ? ? elif Step==4:? ??

? ? ? ? ? ? ? ? servos.position(5,90)

? ? ? ? ? ? ? ? Step=1? ??

? ? ? ? time.sleep_ms(delay)

?

#開啟線程

_thread.start_new_thread(function, (i1, i2))

? ??

while True:

? ? try:? ??

? ? ? ? data=int(input('input')) #輸入9位數(shù)字

? ? ? ? mode=data//100000000 #第一位為模式

? ? ? ? Height1=data%100000000 #第二、三位為前部高度或步長(zhǎng)

? ? ? ? Height1=Height1//1000000

? ? ? ? Height2=data%1000000 #第四、五、六位為后部高度或旋轉(zhuǎn)角度

? ? ? ? Height2=Height2//1000

? ? ? ? delay=data%1000 #最后三位為延時(shí)

? ? ? ? #非連續(xù)執(zhí)行的功能在此處執(zhí)行

?if mode==7: #直行功能
? ? ? ? ? ? if Height2<=180: #參數(shù)超出范圍則不執(zhí)行,下同
? ? ? ? ? ? ? ? straight(Height2) ?
? ? ? ? elif mode==8: #轉(zhuǎn)向功能
? ? ? ? ? ? if Height2<=180:
? ? ? ? ? ? ? ? turn(Height2)
? ? ? ? elif mode==9: #傾斜功能
? ? ? ? ? ? if Height1<=60 and Height2<=60:
? ? ? ? ? ? ? ? tilt(Height1,Height2) ? ? ? ?
? ? except:
? ? ? ? pass
? ??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-618678.html

到了這里,關(guān)于ESP32(MicroPython) 四足機(jī)器人(五)功能補(bǔ)充的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【機(jī)器人/小車】自己動(dòng)手用ESP32手搓一個(gè)智能機(jī)器人:ESP32-CAM AI Robot(文末附完整工程源碼)

    目錄 介紹 硬件需求? 軟件需求 步驟 總結(jié) 源碼下載 ESP32-CAM是一款集成了Wi-Fi和藍(lán)牙功能的微控制器模塊,同時(shí)還集成了攝像頭接口,使其成為一個(gè)非常適合構(gòu)建智能機(jī)器人的選擇。在本項(xiàng)目中,我將向您展示如何使用ESP32-CAM模塊構(gòu)建一個(gè)

    2024年04月15日
    瀏覽(124)
  • 機(jī)器人坐標(biāo)系解讀及四足機(jī)器人虛擬模型控制(VMC)控制方法

    機(jī)器人坐標(biāo)系解讀及四足機(jī)器人虛擬模型控制(VMC)控制方法

    終于理清VMC控制方法了,對(duì)于很多新入門機(jī)器人的小伙伴,尤其像我這樣做畢設(shè)前完全沒有接觸過(guò)機(jī)器人的本科生來(lái)說(shuō),坐標(biāo)變換可謂是一大難,很多教材說(shuō)的也是非常一本正經(jīng),非常不利于入門學(xué)習(xí)。本文對(duì)四足機(jī)器人坐標(biāo)變換以及VMC控制方法作以簡(jiǎn)要介紹,力求簡(jiǎn)單易懂

    2024年02月06日
    瀏覽(24)
  • 四足步行機(jī)器人的結(jié)構(gòu)設(shè)計(jì)及仿真

    四足步行機(jī)器人的結(jié)構(gòu)設(shè)計(jì)及仿真

    目 錄 摘要 I ABSTRACT II 第1章 緒論 1 1.1 課題研究的目的和意義 1 1.2 國(guó)內(nèi)外關(guān)于四足步行機(jī)器人的發(fā)展現(xiàn)狀 2 1.2.1 國(guó)外關(guān)于四足步行機(jī)器人的發(fā)展現(xiàn)狀 2 1.2.2 國(guó)內(nèi)關(guān)于四足步行機(jī)器人的發(fā)展現(xiàn)狀 3 1.3 本設(shè)計(jì)的研究目標(biāo)及完成的主要工作內(nèi)容、預(yù)期結(jié)果 5 1.3.1 研究目標(biāo) 5 1.3.2 設(shè)計(jì)

    2024年02月05日
    瀏覽(28)
  • 云深處絕影四足機(jī)器人協(xié)議學(xué)習(xí)解析

    云深處絕影四足機(jī)器人協(xié)議學(xué)習(xí)解析

    本學(xué)習(xí)文檔介紹了云深處 絕影X20 四足機(jī)器人的通信協(xié)議,并對(duì)相關(guān)的通信機(jī)制和命令格式進(jìn)行了簡(jiǎn)單的解析。該協(xié)議在機(jī)器人系統(tǒng)和上位機(jī)(例如外部板卡或系統(tǒng))之間進(jìn)行TCP通信時(shí)使用。 在此協(xié)議中, 機(jī)器人本體 作為 TCP服務(wù)端 , 上位機(jī) 作為 TCP客戶端 。協(xié)議的TCP服務(wù)

    2024年02月13日
    瀏覽(25)
  • 論文閱讀:四足機(jī)器人對(duì)抗運(yùn)動(dòng)先驗(yàn)學(xué)習(xí)穩(wěn)健和敏捷的行走

    論文閱讀:四足機(jī)器人對(duì)抗運(yùn)動(dòng)先驗(yàn)學(xué)習(xí)穩(wěn)健和敏捷的行走

    論文:Learning Robust and Agile Legged Locomotion Using Adversarial Motion Priors 進(jìn)一步學(xué)習(xí):AMP,baseline方法,TO 介紹了一種新穎的系統(tǒng),通過(guò)使用對(duì)抗性運(yùn)動(dòng)先驗(yàn) (AMP) 使四足機(jī)器人在復(fù)雜地形上實(shí)現(xiàn)穩(wěn)健和敏捷的行走。主要貢獻(xiàn)包括為機(jī)器人生成AMP數(shù)據(jù)集,并提出一種教師-學(xué)生訓(xùn)練框架

    2024年02月21日
    瀏覽(19)
  • ESP32-S3語(yǔ)音喚醒技術(shù),智能機(jī)器人應(yīng)用,物聯(lián)網(wǎng)技術(shù)發(fā)展

    ESP32-S3語(yǔ)音喚醒技術(shù),智能機(jī)器人應(yīng)用,物聯(lián)網(wǎng)技術(shù)發(fā)展

    隨著技術(shù)的發(fā)展,智能服務(wù)正在融入群眾的生活。智能機(jī)器人的應(yīng)用,大大提高人們的工作效率,并減少投入的成本。 傳感器檢測(cè)是否有來(lái)賓,指紋識(shí)別模塊可以用來(lái)簽到,語(yǔ)音識(shí)別處理模塊可以進(jìn)行簡(jiǎn)單的日常提問(wèn)進(jìn)行識(shí)別并用相應(yīng)的回答,觸摸屏界面實(shí)現(xiàn)人機(jī)互動(dòng),可以

    2024年02月13日
    瀏覽(43)
  • 【全網(wǎng)首發(fā)開源教程】【Labview機(jī)器人仿真與控制】Labview與Solidworks多路支配關(guān)系-四足爬行機(jī)器人仿真與控制

    【全網(wǎng)首發(fā)開源教程】【Labview機(jī)器人仿真與控制】Labview與Solidworks多路支配關(guān)系-四足爬行機(jī)器人仿真與控制

    ??歡迎來(lái)到Labview專欄~四足爬行機(jī)器人仿真與控制 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏與酒 ?? ? 博客主頁(yè): 小夏與酒的博客 ??該系列 文章專欄: Labview-3D虛擬平臺(tái) 文章作者技術(shù)和水平有限,如果文中出現(xiàn)錯(cuò)誤,希望大家能指正?? ?? 歡迎大家關(guān)注! ?? ?? 四足機(jī)器人整

    2024年02月03日
    瀏覽(25)
  • 【標(biāo)準(zhǔn)DH法和改進(jìn)DH法介紹及三自由度四足或雙足機(jī)器人腿建?!狹ATLAB機(jī)器人工具箱使用】

    【標(biāo)準(zhǔn)DH法和改進(jìn)DH法介紹及三自由度四足或雙足機(jī)器人腿建?!狹ATLAB機(jī)器人工具箱使用】

    DH參數(shù)是機(jī)器人學(xué)習(xí)過(guò)程中常用的一種建模方法,通常情況下每一次坐標(biāo)變換需要6個(gè)獨(dú)立參數(shù)來(lái)描述坐標(biāo)系i相對(duì)坐標(biāo)系i-1的關(guān)系,即3個(gè)用來(lái)描述位置另外3個(gè)用來(lái)描述姿態(tài)。而DH參數(shù)法只需要4個(gè)參數(shù),列出DH參數(shù)表并帶入變換矩陣中可以輕易的得到機(jī)械手末端和基

    2024年02月02日
    瀏覽(91)
  • 機(jī)器人工程創(chuàng)新類課程補(bǔ)充說(shuō)明-2023-

    機(jī)器人工程創(chuàng)新類課程補(bǔ)充說(shuō)明-2023-

    內(nèi)容僅供參考,不嚴(yán)謹(jǐn)。 案例: 在f1tenth仿真中如何實(shí)現(xiàn)更快速的跑圈-曲線分析篇? 所有課程其實(shí) 主動(dòng)權(quán)永遠(yuǎn)都掌握在學(xué)生手中 ,愿意學(xué)的會(huì)多花時(shí)間自主研究(主動(dòng)學(xué)習(xí)),不愿意的就會(huì)用一些獨(dú)特手段應(yīng)付(被動(dòng)學(xué)習(xí)),這些其實(shí)都是學(xué)生的自主選擇,一定要尊重學(xué)生

    2024年02月11日
    瀏覽(18)
  • 機(jī)器人工程創(chuàng)新類課程補(bǔ)充說(shuō)明-2023-2

    機(jī)器人工程創(chuàng)新類課程補(bǔ)充說(shuō)明-2023-2

    僅供參考 之前一篇: 機(jī)器人工程創(chuàng)新類課程補(bǔ)充說(shuō)明-2023- 自主學(xué)習(xí) → 自主研究 → 自主創(chuàng)新 ,這是一個(gè) 循序漸進(jìn) 的過(guò)程,著急沒用的,大部分學(xué)生,都卡在第一個(gè)階段,自主學(xué)習(xí)的效率比較低,并且成果不突出。后面兩個(gè)階段就很難開展。 結(jié)合這些天以及往屆學(xué)生數(shù)百

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包