找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3812|回复: 18
打印 上一主题 下一主题
收起左侧

(机器人)想用一个51单片机控制同时多个电机,并且能够控制步进电机的旋转角度

  [复制链接]
回帖奖励 75 黑币 回复本帖可获得 15 黑币奖励! 每人限 2 次
跳转到指定楼层
楼主
ID:907403 发表于 2021-6-4 17:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬,求助!!本人想做一个六自由度机器人控制系统。。我的方案是这样的。先运动学算出来各个机器人关节需要的位移角度,然后用单片机控制各关节的步进电机旋转。打算一个单片机控制3个步进电机,并且能使步进电机转动一定角度就停止。请问该怎么编程啊,往哪个方向能实现这个功能。。
还有就是怎么实现pc机和单片机之间的数据通讯。我想用来传输转动速度和转动角度。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:900662 发表于 2021-6-5 00:42 来自手机 | 只看该作者
PC机和单片机通讯要做串口通讯,如果用串口助手传输数据的话,那就写一个串口通讯的函数就行了,论坛里应该有,,单片机控制步进电机的话最好用两片单片机控制,一片可能不够
回复

使用道具 举报

板凳
ID:157057 发表于 2021-6-5 07:22 | 只看该作者
电机控制,PWM,串口,和C语言,自己掌握。
回复

使用道具 举报

地板
ID:844772 发表于 2021-6-5 08:40 | 只看该作者
1.数据传输有线的直接上串口,无线的用蓝牙这些都是现成的,不会stm32你就用arduino做,51的算力不行;2.控制较多个步进电机用A4988吧,两个口控制一个;3.前两项都是看看就会了,关键你数学行不行啊,比如一个关节的单杆机器人的三次多项式系数会不会解?
回复

使用道具 举报

5#
ID:584814 发表于 2021-6-7 20:15 | 只看该作者
现在的51单片机40多个脚至少可以控制6个步进电机,所以按你的问题程度可以直接上电动汽车或火箭,因为从难度上看差不太多。
回复

使用道具 举报

6#
ID:739610 发表于 2021-6-7 20:53 | 只看该作者
太高看51的运算能力了吧  估计达不到你预想的效果
回复

使用道具 举报

7#
ID:298123 发表于 2021-6-7 20:55 | 只看该作者
man1234567 发表于 2021-6-7 20:15
现在的51单片机40多个脚至少可以控制6个步进电机,所以按你的问题程度可以直接上电动汽车或火箭,因为从难 ...

话糙理不糙,不是什么都可以做的,但也不是不能做,折腾够了,自然就进步了!
回复

使用道具 举报

8#
ID:844772 发表于 2021-6-8 09:07 | 只看该作者
hz_dyg 发表于 2021-6-7 20:55
话糙理不糙,不是什么都可以做的,但也不是不能做,折腾够了,自然就进步了!

普通的51直连A4988,就可以控制16个步进电机,但它算力不行啊,解算一个关节做平滑运动系数都困难,更不要说矩阵了。我觉得做机器人就要有个样子,不能搞个软启动就叫机器手吧?
回复

使用道具 举报

9#
ID:931684 发表于 2021-6-8 21:12 | 只看该作者
步进电机的带负载能力不是太强,设计的时候得注意机器人的大小和重量;编程方面得用case,switch等语句实现多个程序同时运行,以达到同时控制多个电机的目的
回复

使用道具 举报

10#
ID:931684 发表于 2021-6-8 21:15 | 只看该作者
PC机和单片机之间的数据通讯可以通过设置单片机的串行口控制寄存器SCON来实现多机通信
回复

使用道具 举报

11#
ID:818024 发表于 2021-6-8 21:18 | 只看该作者
旋转角度还是用舵机吧,步进电机负载大了或者频率高了都会失步。
回复

使用道具 举报

12#
ID:81196 发表于 2021-6-15 13:52 | 只看该作者
角度使用编码器,再不行舵机也是行的.使用PWM驱动.
回复

使用道具 举报

13#
ID:811711 发表于 2021-6-16 11:04 | 只看该作者
第一:不建议用步进电机,建议用永磁同步电机。
回复

使用道具 举报

14#
ID:811711 发表于 2021-6-16 11:06 | 只看该作者
第二:数据通讯可以用村口通信,速率要求不高一般都是串口通信
回复

使用道具 举报

15#
ID:1077953 发表于 2023-5-26 21:05 | 只看该作者
大佬,有求到吗,求分享,可花钱
回复

使用道具 举报

16#
ID:330059 发表于 2023-5-26 21:55 | 只看该作者
角度控制用舵机实现,实现pc机和单片机之间的数据通讯用串口通信实现
回复

使用道具 举报

17#
ID:1080200 发表于 2023-5-27 11:08 | 只看该作者
可以使用串口接口,如RS232、RS485等,来通过串口将数据发送到单片机
回复

使用道具 举报

18#
ID:712097 发表于 2023-5-27 15:24 | 只看该作者
单片机用4个IO口,通过ULN2003A芯片放大后控制四相五线步进电机。单片机与计算机通信用串口即可。
以下为四相八拍方式驱动的 顺时针/逆时针/停止函数,供参考。

//顺时针转动 四相八拍驱动顺序 A---AB---B---BC---C---CD---D---DA
void MotorCW(uint M_Speed)
{
        IN1=1;IN2=0;IN3=0;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=1;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=1;IN3=1;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=0;IN3=1;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=0;IN3=1;IN4=1;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//转速调节
       
        IN1=1;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//转速调节

}
//逆时针转动 四相八拍驱动顺序 DA---D---CD---C---BC---B---AB---A
void MotorCCW(uint M_Speed)
{
        IN1=1;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=0;IN3=1;IN4=1;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=0;IN3=1;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=1;IN3=1;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=0;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=1;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//转速调节
       
        IN1=1;IN2=0;IN3=0;IN4=0;
        Delay_xms(M_Speed);//转速调节

}
//停止转动
void MotorStop(void)
{
        IN1=0;IN2=0;IN3=0;IN4=0;
        Delay_xms(4);//转速调节
}
回复

使用道具 举报

19#
ID:1034262 发表于 2023-5-27 18:24 | 只看该作者
步进电机本身就可以控制角度和速度。
现在的单片机速度快,哪怕用STC8H系列,同时控制4个步进电机,每个最高20KHz,或者同时控制8个步进电机,每个最高10KHz。步进电机细分越高,则要求的频率就越高,但是大部分应用其机械精度都不高,所以我一般使用4~8细分就够了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表