这是之前自己做的STM32开发板,可以同时控制8个舵机和2个编码器电机

作者: 硬件工程师Oskar分类: 极客DIY 发布时间: 2022-11-15 04:23:12 浏览:141660 次

这是之前自己做的STM32开发板,可以同时控制8个舵机和2个编码器电机

神锋1:
我用51做了一个舵机控制,全是模拟的,数量是8个,但其实一个端口一个,用了4个按键控制,一个控制端口加减,一个控制舵机角度的加减,因为用的是开发板,所以还用了数码管进行对端口和角度的显示,还能根据舵机的精度进行计算队应角度,但我用的是g90s,用的舵机不知道为啥只能160度转动,所以我给的控制度是0.8度一加,但我感觉g90s达不到这个精度,但这是算出来的,160/200=0.8,角度显示使用取余加减法得到每一位的数值,然后用数码管进行刷新的

【回复】我之前做过IO模拟PWM控制多个舵机,是可行的。只是IO模拟PWM的频率和脉宽不如用定时器的硬件PWM稳定、精确,会随着程序执行或者中断带来抖动。另一方面,很多舵机的精度确实不高[微笑]。可以用示波器或者逻辑分析看下IO输出的PWM信号是否符合预期,如果信号没问题就是舵机的误差。
【回复】回复 @神锋1 :Up和你说的不是一个芯片,51 32性能和外设都差很多,32有自带的硬件pwm,定时器加比较器硬件处理pwm不占主控资源,51只有个定时器。再说你程序里那些所谓的等待,无意义循环等,其实都是垃圾,51的定时器可以当系统时钟来用,定时器中断只负责按逻辑改变标志位,比如一个延时你之前是跑无意义的东西,完全可以用来跑信号检测和输出控制,等延时标志位变化到表示延时时间够了再跑延时后要执行的程序,pwm也是同理,pwm完全可以做到几路都能模拟出来误差不超过一个中断加两次不同主程序循环扫描的差的时间,不通讯不用时间复杂度高的算法控制在一两百个指令周期以内问题不大。我本科课设的时候统一用的51开发版,统一的题目我只能做性能优化和功能扩展,我按键数码管乱七八糟的东西专门写了兼容分时复用的驱动程序,甚至连通讯中间也进行分时复用,51性能挖掘的很极限,最后做到的是矩阵键盘,数码管,模拟I2C同时挂三个设备,串口双向高速通信,所有功能同时复用,并保持系统响应速度,系统时钟设置到1ms,与系统所有功能执行跑一遍的速度差不多,还能再快,不过涉及通讯也没再去优化。
【回复】回复 @神锋1 :我以前用io模拟过,8个舵机能控制,就是中断太频繁了[笑哭],会拖慢整体运行速度,尤其项目代码量很大时[妙啊]……我自己比较喜欢用硬件PWM,或者是专用的pwm芯片,减少对CPU的中断,让它专心跑复杂算法,比如卡尔曼滤波,就需要每秒执行很多次[笑]……根据实际需求,能解决问题就好[呲牙]
钢门已逝丶波门永存:
我看着一个舵机就要两个按键,感觉太浪费了,可以开发组合键么?让舵机共用一个方向轮。还有貌似不能多个舵机一起控制?不知道还能不能改进

【回复】回复 @在下箱子 :全是人工没有智能是吧
【回复】8个舵机2个定时器(每个4通道)就足够了,组合键的话读取键各键值写个逻辑就行
【回复】手柄是用stm32做的,感兴趣可以看后边这个视频[呲牙]https://b23.tv/BV1NG4y147qi
ju鞠bond:
请问这个板子上的蓝牙用的是什么模块?

【回复】那个是2.4G无线,用来跟手柄通信的,距离很远不是蓝牙,可以看这里https://b23.tv/BV1NG4y147qi
须乘醉听箫鼓:
大佬牛批,板子怎么跟手柄通信啊,模块是nrf24l01嘛[脱单doge]

【回复】回复 @Coke_zhu :手柄里边的主板也是自己做的,后边出一期视频讲这个[呲牙]
【回复】回复 @全栈学习者 :自己做的手柄
【回复】回复 @Coke_zhu :他就只用了手柄的壳和按钮输入
胡胡二哥:
小车零件是自己做的还是买的?哪里买的

【回复】轮子之类能买到现成的是买的,有的零件没有合适的,就需要找机加工做定制[微笑]
水融冰:
用的Xbox手柄,abxy键不灵,保你飞的更高[doge]

【回复】回复 @水融冰 :[笑哭]我只是想让你们看后边那期视频[呲牙] https://b23.tv/BV1NG4y147qi
【回复】回复 @硬件工程师Oskar : 别想太多[笑哭]
【回复】这不是xbox手柄,手柄是自己做的,也是STM32,可以看后边那个视频[OK]
滑稽树摘滑稽果:
这么多舵机,可以实现我小时候喜欢玩遥控挖掘机的梦想[笑哭]

Holmes大叔:
是那种pwm舵机吗,同时控制8个舵机需要8路pwm输出。估计是中高配置的stm32[doge]

【回复】回复 @福姬BK吃吃吃 :为啥不够,一个定时器能开4路PWM
【回复】F103RCT6,四个通用定时器,两个高级定时器,LQFP64封装
【回复】回复 @福姬BK吃吃吃 :即使是两三块钱的f103c6t6也够的
你们都是这个人:
连个pca9685不就好了,想控制多个舵机的话,用按键切换要操作的舵机

电子菜鸡啊:
up主厉害,可以给小菜鸡提供一个思路嘛[doge][doge]

【回复】源码和原理图公布在简介里边了,感兴趣可以研究下
【回复】回复 @君兮无上 :呀,怎么这么厉害啊,小菜鸡真的是羡慕死了呢[doge][doge]
【回复】一个普通io就能挂一个普通舵机,vcc和gnd并一起就好了,无刷的话,一个can轻松挂八个以上,我不清楚这里有什么难点
晨MN曦:
这叫能控制八个,不能叫同时吧[笑哭],同时怕是还只能是fpga额

【回复】可以多个联动,同时控制多个PWM值变化即可,当然这里的同时是指软件上的时间片轮询,不是FPGA的硬实时[呲牙]

DIY 单片机 编程 电子制作 电机 电子 STM32 编码器 开发板 舵机

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!