简易排水简车的制作 TurnipBit 系列教程
?
?
準備工作
?
ü?TurnipBit 開發板 1塊
ü?下載數據線 1條
ü?微型步進電機(28BYJ-48) 1個
ü?步進電機驅動板(ULN2003APG) 1塊
ü?TurnipBit 擴展板 1塊
ü?多種尺寸齒輪模型?1包
ü?接入網絡的電腦 1臺
ü?在線可視化編程器
http://turnipbit.com/PythonEditor/editor.html
?
步進電機的介紹
?
本次實驗采用的是28BYJ-48?四相八拍電機,電壓DC5V~12V。
24BYJ48名稱的含義:
24:電機外徑24mm
B:步進電機中步字的拼音首字母
Y:永磁中永字的拼音首字母
J:減速的減字拼音首字母
48:四相8步
?
實物圖
?
工作原理
?
步進電機是將電脈沖信號轉變為角位移或線位移的開環控制電機,是現代數字程序控制系統中的主要執行元件,應用極為廣泛。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度,稱為“步距角”,它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
?
28BYJ-48 步進電機參數表
?
上表中啟動頻率≥550 P.P.S(每秒脈沖數),意思是要想正常啟動,需要單片機每秒至少給出550個步進脈沖。那么每一節拍需要持續的時間就是1S/550≈1.8ms,所以控制節拍刷新的速率應大約1.8ms。
?
驅動原理
當連續不斷的給電機發送控制脈沖時,電機就會不斷的轉動。每一個脈沖信號對應步進電機的某一相或兩相繞組的通電狀態改變一次,對應轉子就會轉過一定的角度(步距角)。當通電狀態的改變完成一個循環時,轉子轉過一個齒距。
四相步進電機可以在不同的通電方式下運行,常見的通電方式:
四拍(單相繞組通電):A-B-C-D-A…
雙四拍(雙相繞組通電):AB-BC-CD-DA-AB-...
八拍: A-AB-B-BC-C-CD-D-DA-A…
?
?
器件的連接
?
1、將步進電機白色接頭插到驅動板對應的座子上。
2、TurnipBit對應插入擴展板,記住帶有LED燈和按鍵的一面朝向擴展板帶有針腳的一側。
3、將驅動板與TurnipBit與驅動板連接起來。接線圖如下:
| TurnipBit | ULN2003APG驅動板 |
| P5 | IN1 |
| P8 | IN2 |
| P11 | IN3 |
| P12 | IN4 |
| +5V | 5V正極 |
| GND | 負極 |
?
?
開始編程
?
1、之前的教程一直都是使用拖拽可視化編程,這種方式可以快速讓零基礎小伙伴入門,但是在實際項目或工作中,還是要直接敲代碼的。今天就給大家介紹一下TurnipBit的可視化編程器的另一項功能——代碼編程。
?
之前看過編程的小伙伴,不難發現,一打開編輯器首先進入的就是代碼編程器界面。如下圖:
?
?
2、接下來用代碼實現對步進電機的控制,可以指定步進電機轉動的角度,同時也可以進行正轉和反轉的控制。源代碼:
| # 在這里添加Python代碼 from microbit import * ? Pin_All=[pin5,pin8,pin11,pin12] ? #轉速(ms) 數值越大轉速越慢 最小值1.8ms speed=5 ? STEPER_ROUND=512 #轉動一圈(360度)的周期 ANGLE_PER_ROUND=STEPER_ROUND/360 #轉動1度的周期 ? ? def SteperWriteData(data): ????count=0 ????for i in data: ????????Pin_All[count].write_digital(i) ????????count+=1 def SteperFrontTurn(): ????global speed ???? ????SteperWriteData([1,1,0,0]) ????sleep(speed) ? ????SteperWriteData([0,1,1,0]) ????sleep(speed) ? ????SteperWriteData([0,0,1,1]) ????sleep(speed) ???? ????SteperWriteData([1,0,0,1]) ?? ????sleep(speed) ???? def SteperBackTurn(): ????global speed ???? ????SteperWriteData([1,1,0,0]) ????sleep(speed) ???? ????SteperWriteData([1,0,0,1]) ?? ????sleep(speed) ???? ????SteperWriteData([0,0,1,1]) ????sleep(speed) ? ????SteperWriteData([0,1,1,0]) ????sleep(speed) ? ? def SteperStop(): ????SteperWriteData([0,0,0,0]) ???? def SteperRun(angle): ????global ANGLE_PER_ROUND ???? ????val=ANGLE_PER_ROUND*abs(angle) ????if(angle>0): ????????for i in range(0,val): ????????????SteperFrontTurn() ????else: ????????for i in range(0,val): ????????????SteperBackTurn() ? ????SteperStop() ? if __name__=='__main__': ????while True: ????????SteperRun(360) |
?
3、接下來就結合齒輪、牛奶吸管制作一個簡易的排水簡車。如下圖:
?
?
演示視頻地址:https://v.qq.com/x/page/s052274o2kv.html
轉載于:https://www.cnblogs.com/xxosu/p/8092773.html
總結
以上是生活随笔為你收集整理的简易排水简车的制作 TurnipBit 系列教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享Ubuntu 16.04 几个国内更
- 下一篇: linux与windows互传文件、用户