完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
步进电机和普通电机最大的不同是步进电机可以更加精确地旋转,这个特性使得它们在各种树莓派项目中得到广泛运用。
步进电机选择 市面上有很多步进电机可供选择,最后我们还是决定使用ULN2003控制板和28BJY-48电机。选择它的原因是:便宜、5V供电、易于连接树莓派的GPIO接口等等。28BJY-48步进电机的数据表中还有很多详细信息。 树莓派的连接 先将步进电机连接到控制板。控制板上有6个引脚,需要连接到Pi的GPIO接口上,连接如下: 5V (P1-02) GND (P1-06) Inp1 (P1-11) Inp2 (P1-15) Inp3 (P1-16) Inp4 (P1-18) 上面的P1-XX指的是本文中使用的树莓派的引脚号。这些定义在下面Python代码的StepPins列表中,因此如果使用不同的引脚,请确保更新Python列表。您可以使用其他GPIO 引脚,只是记住要更新Python的脚本。 要控制步进电机旋转,我们需要一系列“high” 和 “low” 电平,通过设置正确的高低电平顺序,电机就会旋转,颠倒顺序旋转方向也会相反。 Python控制步进电机的代码示例 代码使用RPi.GPIO库,定义了4步和8步序列。 #!/usr/bin/python # Import required libraries import sys import time import RPi.GPIO as GPIO # Use BCM GPIO references # instead of physical pin numbers GPIO.setmode(GPIO.BCM) # Define GPIO signals to use # Physical pins 11,15,16,18 # GPIO17,GPIO22,GPIO23,GPIO24 StepPins = [17,22,23,24] # Set all pins as output for pin in StepPins: print "Setup pins" GPIO.setup(pin,GPIO.OUT) GPIO.output(pin, False) # Define advanced sequence # as shown in manufacturers datasheet Seq = [[1,0,0,1], [1,0,0,0], [1,1,0,0], [0,1,0,0], [0,1,1,0], [0,0,1,0], [0,0,1,1], [0,0,0,1]] StepCount = len(Seq) StepDir = 1 # Set to 1 or 2 for clockwise # Set to -1 or -2 for anti-clockwise # Read wait time from command line if len(sys.argv)>1: WaitTime = int(sys.argv[1])/float(1000) else: WaitTime = 10/float(1000) # Initialise variables StepCounter = 0 # Start main loop while True: print StepCounter, print Seq[StepCounter] for pin in range(0, 4): xpin = StepPins[pin]if Seq[StepCounter][pin]!=0: print " Enable GPIO %i" %(xpin) GPIO.output(xpin, True) else: GPIO.output(xpin, False) StepCounter += StepDir # If we reach the end of the sequence # start again if (StepCounter>=StepCount): StepCounter = 0 if (StepCounter<0): StepCounter = StepCount+StepDir # Wait before moving on time.sleep(WaitTime) 代码保存为“stepper.py”,然后使用“sudo”来运行: sudo python stepper.py 按Ctrl-C退出。 step等待时间 在本例中,默认等待时间设置为0.01秒(10毫秒)。要改变旋转速度,你可以改变这个值。我发现我可以在电机停止工作之前将它减少到4ms。如果脚本运行得太快,电机控制器就跟不上了。这种性能可能取决于你的电机和它的控制器。要指定不同的等待时间,可以使用以下方法: sudo python stepper.py 20 其中20是毫秒数。 步幅 完整的步幅由8个步幅组成。如果将StepDir设置为-2或2,则步幅数会减少到4。4步步幅速度更快,但扭矩更低。8步步幅速度更慢,但扭矩更高。 现在我们可以使用树莓派和Python脚本来控制步进电机了。如果再加上一个小马达,一个小型机器人的雏形就出现了! |
|
|
|
只有小组成员才能发言,加入小组>>
2434 浏览 0 评论
9090 浏览 4 评论
36754 浏览 19 评论
5021 浏览 0 评论
24729 浏览 34 评论
1519浏览 2评论
1735浏览 1评论
2183浏览 1评论
1544浏览 0评论
516浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 08:51 , Processed in 1.248830 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号