在python3中制作腳本處理步進(jìn)電機(jī)沿滑軌和滾珠絲杠的運(yùn)動(dòng)
資料介紹
描述
你好,
很久以前我想嘗試處理一個(gè)新圖書館,但現(xiàn)在。那有意義嗎?可能是這樣,也可能不是,但源工作,機(jī)器和電氣板也是如此!
...
所以,我在幾年前的一些幫助下改變了源代碼!我還在 python3 中制作了一個(gè)小腳本來處理小型步進(jìn)電機(jī)沿滑軌和滾珠絲杠的運(yùn)動(dòng)......
所以,這個(gè)簡單的任務(wù)需要這些組件:
- 12VDC 鉛酸電池和/或 SLA 類型
- 電機(jī)橋角
- 兩條電源線和 GND 線連接到 Cape 和電池
- 兩個(gè)正確尺寸的快速斷開器......使用適合您的電池端子的任何斷開器!
- BeagleBone Green Gateway 或來自beagleboard.org板系列的其他板,即不包括 BBBlue、BBAI 和/或 PocketBeagle,除非您想讓它適用于這些板(它不是即插即用這三個(gè)板)。
- 哦……您可能需要一把小一字螺絲刀來處理 Cape 上的連接器。
- Micro USB 轉(zhuǎn) USB Type A 數(shù)據(jù)線
- 以太網(wǎng)或 Wifi 訪問以獲取腳本和其他工具/實(shí)用程序
好的……所以到目前為止,我們可能會(huì)也可能還沒有收集到我們的工具。如果我們有并且準(zhǔn)備好開始,讓我們開始吧。
...
?
![poYBAGNggzeAevLgABCrRPCDyWU529.jpg](https://file.elecfans.com/web2/M00/76/6B/poYBAGNggzeAevLgABCrRPCDyWU529.jpg)
...
在這里你可以看到我為這個(gè)項(xiàng)目選擇的快速斷開的電線。
另外......還有一個(gè)交互式 Python3 腳本可以處理我們的步進(jìn)電機(jī)使用情況:
https://github.com/silver2row/MotorBridgeCapeforBBG_BBB/tree/master
在上面你會(huì)看到我的 Seeed Studio Motor Bridge Cape lib 的分支。
我更改了一些項(xiàng)目以處理特定的數(shù)據(jù)轉(zhuǎn)換、庫更改和不推薦使用的庫。我還添加了一些庫。并改變了它們。幸運(yùn)的是,在這個(gè)硬件領(lǐng)域有一些經(jīng)驗(yàn)并為這個(gè)想法增加了時(shí)間,我已經(jīng)能夠輕松地適應(yīng)變化。
...
那么,讓我們來看看這些變化:
在 MotorBridge.py 上,讓我們更改一些特定的行...
import Adafruit_GPIO.I2C as I2C
import Adafruit_BBIO.GPIO as GPIO
import time
Reset = "P9_23"
MotorBridge = I2C.Device(0x4b, 2)
GPIO.setup
(Reset, GPIO.OUT)
這個(gè)來源變成了這個(gè)想法:
from smbus2 import SMBus
import time
import pathlib
# reset pin is P9.23, i.e. gpio1.17
reset_pin = pathlib.Path('/sys/class/gpio/gpio49/direction')
reset_pin.write_text('low')
bus = SMBus('/dev/i2c-2')
現(xiàn)在,這是他們在bbb.io/latest-images在線頁面上從 2020 年更新的映像中的 4.19.x 內(nèi)核。
...
和這個(gè)...
def WriteByte(Reg, Value):
data = [0 for i in range(2)]
data[0] = Reg
data[1] = Value
MotorBridge.writeList(WriteMode,data)
def WriteHalfWord(Reg,Value):
data = [0 for i in range(3)]
data[0] = Reg
data[1] = Value & 0xff
data[2] = (Value>>8) & 0xff
MotorBridge.writeList(WriteMode,data)
def WriteOneWord(Reg,Value):
data = [0 for i in range(5)]
data[0] = Reg
data[1] = Value & 0xff
data[2] = (Value>>8) & 0xff
data[3] = (Value>>16) & 0xff
data[4] = (Value>>24) & 0xff
MotorBridge.writeList(WriteMode,data)
def SetDefault():
WriteOneWord(CONFIG_VALID,0x00000000)
class MotorBridgeCape:
def __init__(self):
GPIO.output(Reset, GPIO.HIGH)
time.sleep(1)
我們將更改此源以處理特定的庫。在編寫此庫時(shí)選擇。我們將使用 smbus2 代替他們使用的任何東西,并使用純 python 代替 Adafruit_BBIO b/c,因?yàn)樗驯粭売谩?/font>
def WriteByte(Reg,Value):
data = [0 for i in range(2)]
data[0] = Reg
data[1] = Value
bus.write_i2c_block_data(0x4b, 1, data)
def WriteHalfWord(Reg,Value):
data = [0 for i in range(3)]
data[0] = Reg
data[1] = Value & 0xff
data[2] = (Value>>8) & 0xff
bus.write_i2c_block_data(0x4b, 1, data)
def WriteOneWord(Reg,Value):
data = [0 for i in range(5)]
data[0] = Reg
data[1] = Value & 0xff
data[2] = (Value>>8) & 0xff
data[3] = (Value>>16) & 0xff
data[4] = (Value>>24) & 0xff
bus.write_i2c_block_data(0x4b, 1, data)
def SetDefault():
WriteOneWord(CONFIG_VALID, 0x00000000)
class MotorBridgeCape:
def __init__(self):
reset_pin.write_text('high')
time.sleep(1)
所以,要完成這項(xiàng)工作。我們需要執(zhí)行一些特定的任務(wù):
1. 更改 smbus2 庫。在第 304 行處理 i2c-2 而不是任意 i2c 地址和數(shù)字。
2. https://github.com/kplindegaard/smbus2/blob/master/smbus2/smbus2.py#L304是您可以找到第 304 行的地方。
filepath="/dev/i2c-2".format(bus)
pip3 install 或 python3 -m pip install 中的第 304 行位于/.local/lib/python3.7/site-packages/
至少在我的板上,這是我在安裝 w/ 后列出 smbus2 的地方
pip3 install smbus2
or...
python3 -m pip install smbus2
3. 現(xiàn)在,使用壓接器。確??焖贁嚅_在通過拉動(dòng)和抓取施加高壓力時(shí)不會(huì)完全脫落。
4. 使用螺絲刀。用一字螺絲刀松開電機(jī)橋蓋上連接器上的螺釘。一次滑入一根電線。實(shí)際上,讓我們快速嘗試幾個(gè)測試,以確保我們的電線正確對齊......
5. 使用 DMM(數(shù)字萬用表)或 MM(萬用表)進(jìn)入連續(xù)性設(shè)置并進(jìn)行測試。轉(zhuǎn)到步進(jìn)器上的一根線,四根線中的一根,然后從 DMM 連接您的 Common GND。現(xiàn)在,嘗試另一根帶電壓的電線。
當(dāng)電線在同一個(gè)支架中時(shí),這里應(yīng)該會(huì)發(fā)出 DMM/MM 的蜂鳴聲。
如果搜索基礎(chǔ)知識和良好的一般信息,這是另一種選擇。關(guān)于步進(jìn)電機(jī):https ://en.wikipedia.org/wiki/Stepper_motor 。
6. 一旦我們正確配置了我們的電機(jī)并測試了哪些電線與其他電線一起使用,那么我們可以將它們一一放置在 Cape 到 BBGG 的連接器中。擰緊,使運(yùn)行軟件時(shí)電線不會(huì)松動(dòng)。沒有人需要 12v 電擊或電弧。
7. Cape 上有一個(gè)工作-待機(jī)開關(guān)。在不使用軟件時(shí),最好處于待機(jī)模式。然后,準(zhǔn)備就緒后,撥動(dòng)開關(guān)并運(yùn)行源。
8. git 克隆https://github.com/silver2row/MotorBridgeCapeforBBG_BBB
通過這種方式,我們可以更改上面提到的MotorBridge.py文件中的所有源。
9. 準(zhǔn)備從未感覺如此美好!
10. 現(xiàn)在,來源:
#!/usr/bin/python3
import MotorBridge
from time import sleep
motor = MotorBridge.MotorBridgeCape()
motor.StepperMotorAInit()
class board:
def StepperMotorATest():
core = int(input("Please provide a numerical value between 0 and 100\n "))
if core >= 85:
motor.StepperMotorAMove(2500, 1000)
sleep(5)
motor.StepperMotorAMove(-2500, 1000)
sleep(2)
print("Making 2500 steps in one direction and back again at 100% duty! ")
elif core <= 84:
motor.StepperMotorAMove(1000, 1000)
sleep(5)
motor.StepperMotorAMove(-1000, 1000)
sleep(2)
print("Making 1000 steps and back again at 100% duty! ")
else:
motor.StepperMotorAMove(500, 800)
sleep(5)
motor.StepperMotorAMove(-500, 800)
sleep(2)
print("Making 500 encoder counts and back again at 80% duty! ")
print("Starting the Script, try to press Control-C to quit!\n")
try:
while True:
board.StepperMotorATest()
sleep(5)
except KeyboardInterrupt:
print("You may have just pressed Control-C!\n")
很多這種來源是出于審美原因,并且是為了熟悉 BBGG 和 Motor Bridge Cape。我最近沒有看到 MBCape 出售。也許在 Ebay 或其他東西上,一個(gè)人可以獲得一個(gè)。誰知道?
賽斯
PS 但是...有一個(gè)類、函數(shù)、if-elif-else 語句和一個(gè) while 循環(huán),用于測試我們作為數(shù)字瞬間輸入的內(nèi)容。
如果我忘記了什么,請發(fā)表評論或分享你學(xué)到的東西。
?
![pYYBAGNgg16AUYD5ABAHHTsnGnI824.jpg](https://file.elecfans.com/web2/M00/76/FD/pYYBAGNgg16AUYD5ABAHHTsnGnI824.jpg)
...
?
- Python3與Arduino通信
- python3使用樹莓派GPIO控制步進(jìn)電機(jī)-新手詳細(xì)教程
- 步進(jìn)電機(jī)與滾珠絲桿使用
- 《深入Python3》中文版pdf 0次下載
- 在云芯一號中安裝Python3和HomeAssistant
- 步進(jìn)電機(jī)和私服電機(jī)的選型工具絲杠水平運(yùn)動(dòng)選型計(jì)算表格 12次下載
- 如何使用Python3檢查文件是否存在 14次下載
- python2與python3到底有什么區(qū)別 4次下載
- 使用python3寫的圖片壓縮代碼合集免費(fèi)下載 0次下載
- python3如何取出重復(fù)3次的字符串保存為3列 4次下載
- Python網(wǎng)頁爬蟲,文本處理,科學(xué)計(jì)算,機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘工具集 37次下載
- 滾珠絲杠的發(fā)塵特性研究 0次下載
- 步進(jìn)電機(jī)驅(qū)動(dòng)滾珠絲杠傳動(dòng)的六自由度并聯(lián)運(yùn)動(dòng)平臺 4次下載
- 快速兩天掌握Python3開發(fā) 28次下載
- 舵機(jī)滾珠絲杠副測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 直線電機(jī)有哪些優(yōu)缺點(diǎn) 2642次閱讀
- 滾珠絲杠是干什么用的 滾珠絲杠裝配注意事項(xiàng) 1286次閱讀
- 絲杠:核心傳動(dòng)功能部件 國產(chǎn)替代 1034次閱讀
- 基于LabVIEW的閉環(huán)步進(jìn)電機(jī)運(yùn)動(dòng)系統(tǒng)設(shè)計(jì)及精度分析 1520次閱讀
- Linux主機(jī)排查腳本介紹 577次閱讀
- 上銀HIWIN滾珠絲杠、絲桿特征及應(yīng)用 1504次閱讀
- Python怎么玩轉(zhuǎn)JS腳本 1157次閱讀
- 什么是步進(jìn)電機(jī)?步進(jìn)電機(jī)單極和雙極的區(qū)別 1.5w次閱讀
- PLC如何操控步進(jìn)電機(jī) 6926次閱讀
- Linux操作環(huán)境下安裝Python 3.6的步驟及避坑指南 2274次閱讀
- 可以使用手機(jī)編程實(shí)現(xiàn)python嗎 9775次閱讀
- 步進(jìn)電機(jī)使用過程中的異常處理 2547次閱讀
- 步進(jìn)電機(jī)的工作原理及使用特點(diǎn)_步進(jìn)電機(jī)在包裝機(jī)械中的應(yīng)用 4708次閱讀
- PLC與步進(jìn)電機(jī)的運(yùn)動(dòng)控制詳解 2.4w次閱讀
- python2與python3問題的分析 1063次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論