找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6426|回復: 18
打印 上一主題 下一主題
收起左側

(機器人)想用一個51單片機控制同時多個電機,并且能夠控制步進電機的旋轉角度

  [復制鏈接]
回帖獎勵 75 黑幣 回復本帖可獲得 15 黑幣獎勵! 每人限 2 次
跳轉到指定樓層
樓主
ID:907403 發(fā)表于 2021-6-4 17:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大佬,求助!!本人想做一個六自由度機器人控制系統(tǒng)。。我的方案是這樣的。先運動學算出來各個機器人關節(jié)需要的位移角度,然后用單片機控制各關節(jié)的步進電機旋轉。打算一個單片機控制3個步進電機,并且能使步進電機轉動一定角度就停止。請問該怎么編程啊,往哪個方向能實現(xiàn)這個功能。。
還有就是怎么實現(xiàn)pc機和單片機之間的數(shù)據(jù)通訊。我想用來傳輸轉動速度和轉動角度。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:900662 發(fā)表于 2021-6-5 00:42 來自觸屏版 | 只看該作者
PC機和單片機通訊要做串口通訊,如果用串口助手傳輸數(shù)據(jù)的話,那就寫一個串口通訊的函數(shù)就行了,論壇里應該有,,單片機控制步進電機的話最好用兩片單片機控制,一片可能不夠
回復

使用道具 舉報

板凳
ID:157057 發(fā)表于 2021-6-5 07:22 | 只看該作者
電機控制,PWM,串口,和C語言,自己掌握。
回復

使用道具 舉報

地板
ID:844772 發(fā)表于 2021-6-5 08:40 | 只看該作者
1.數(shù)據(jù)傳輸有線的直接上串口,無線的用藍牙這些都是現(xiàn)成的,不會stm32你就用arduino做,51的算力不行;2.控制較多個步進電機用A4988吧,兩個口控制一個;3.前兩項都是看看就會了,關鍵你數(shù)學行不行啊,比如一個關節(jié)的單桿機器人的三次多項式系數(shù)會不會解?
回復

使用道具 舉報

5#
ID:584814 發(fā)表于 2021-6-7 20:15 | 只看該作者
現(xiàn)在的51單片機40多個腳至少可以控制6個步進電機,所以按你的問題程度可以直接上電動汽車或火箭,因為從難度上看差不太多。
回復

使用道具 舉報

6#
ID:739610 發(fā)表于 2021-6-7 20:53 | 只看該作者
太高看51的運算能力了吧  估計達不到你預想的效果
回復

使用道具 舉報

7#
ID:298123 發(fā)表于 2021-6-7 20:55 | 只看該作者
man1234567 發(fā)表于 2021-6-7 20:15
現(xiàn)在的51單片機40多個腳至少可以控制6個步進電機,所以按你的問題程度可以直接上電動汽車或火箭,因為從難 ...

話糙理不糙,不是什么都可以做的,但也不是不能做,折騰夠了,自然就進步了!
回復

使用道具 舉報

8#
ID:844772 發(fā)表于 2021-6-8 09:07 | 只看該作者
hz_dyg 發(fā)表于 2021-6-7 20:55
話糙理不糙,不是什么都可以做的,但也不是不能做,折騰夠了,自然就進步了!

普通的51直連A4988,就可以控制16個步進電機,但它算力不行啊,解算一個關節(jié)做平滑運動系數(shù)都困難,更不要說矩陣了。我覺得做機器人就要有個樣子,不能搞個軟啟動就叫機器手吧?
回復

使用道具 舉報

9#
ID:931684 發(fā)表于 2021-6-8 21:12 | 只看該作者
步進電機的帶負載能力不是太強,設計的時候得注意機器人的大小和重量;編程方面得用case,switch等語句實現(xiàn)多個程序同時運行,以達到同時控制多個電機的目的
回復

使用道具 舉報

10#
ID:931684 發(fā)表于 2021-6-8 21:15 | 只看該作者
PC機和單片機之間的數(shù)據(jù)通訊可以通過設置單片機的串行口控制寄存器SCON來實現(xiàn)多機通信
回復

使用道具 舉報

11#
ID:818024 發(fā)表于 2021-6-8 21:18 | 只看該作者
旋轉角度還是用舵機吧,步進電機負載大了或者頻率高了都會失步。
回復

使用道具 舉報

12#
ID:81196 發(fā)表于 2021-6-15 13:52 | 只看該作者
角度使用編碼器,再不行舵機也是行的.使用PWM驅動.
回復

使用道具 舉報

13#
ID:811711 發(fā)表于 2021-6-16 11:04 | 只看該作者
第一:不建議用步進電機,建議用永磁同步電機。
回復

使用道具 舉報

14#
ID:811711 發(fā)表于 2021-6-16 11:06 | 只看該作者
第二:數(shù)據(jù)通訊可以用村口通信,速率要求不高一般都是串口通信
回復

使用道具 舉報

15#
ID:1077953 發(fā)表于 2023-5-26 21:05 | 只看該作者
大佬,有求到嗎,求分享,可花錢
回復

使用道具 舉報

16#
ID:330059 發(fā)表于 2023-5-26 21:55 | 只看該作者
角度控制用舵機實現(xiàn),實現(xiàn)pc機和單片機之間的數(shù)據(jù)通訊用串口通信實現(xiàn)
回復

使用道具 舉報

17#
ID:1080200 發(fā)表于 2023-5-27 11:08 | 只看該作者
可以使用串口接口,如RS232、RS485等,來通過串口將數(shù)據(jù)發(fā)送到單片機
回復

使用道具 舉報

18#
ID:712097 發(fā)表于 2023-5-27 15:24 | 只看該作者
單片機用4個IO口,通過ULN2003A芯片放大后控制四相五線步進電機。單片機與計算機通信用串口即可。
以下為四相八拍方式驅動的 順時針/逆時針/停止函數(shù),供參考。

//順時針轉動 四相八拍驅動順序 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);//轉速調(diào)節(jié)
       
        IN1=1;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=1;IN3=1;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=0;IN3=1;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=0;IN3=1;IN4=1;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=1;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)

}
//逆時針轉動 四相八拍驅動順序 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);//轉速調(diào)節(jié)
       
        IN1=0;IN2=0;IN3=0;IN4=1;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=0;IN3=1;IN4=1;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=0;IN3=1;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=1;IN3=1;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=0;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=1;IN2=1;IN3=0;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)
       
        IN1=1;IN2=0;IN3=0;IN4=0;
        Delay_xms(M_Speed);//轉速調(diào)節(jié)

}
//停止轉動
void MotorStop(void)
{
        IN1=0;IN2=0;IN3=0;IN4=0;
        Delay_xms(4);//轉速調(diào)節(jié)
}
回復

使用道具 舉報

19#
ID:1034262 發(fā)表于 2023-5-27 18:24 | 只看該作者
步進電機本身就可以控制角度和速度。
現(xiàn)在的單片機速度快,哪怕用STC8H系列,同時控制4個步進電機,每個最高20KHz,或者同時控制8個步進電機,每個最高10KHz。步進電機細分越高,則要求的頻率就越高,但是大部分應用其機械精度都不高,所以我一般使用4~8細分就夠了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表