Robofun 機器人論壇

標題: [馬達問題AX-12][AT89S51控制問題]我是新手!幫解 [打印本頁]

作者: wowo8250    時間: 2009-4-24 07:28
標題: [馬達問題AX-12][AT89S51控制問題]我是新手!幫解
本帖最後由 wowo8250 於 2009-5-3 23:31 編輯

最近幾天買到了
AX-12馬達

因為第一次用!!不知道怎麼玩


我要用8051去控制這個馬達


請問一下   我在測試之前

必須要先有甚麼  軟硬體之類的嗎?

因為我摸了AX-12 3天了   

8051版子在旁邊  不會寫程式  也不知道怎麼接
作者: abcd1234abcd    時間: 2009-4-24 11:40
本帖最後由 abcd1234abcd 於 2009-4-24 11:52 編輯

請問一下你的馬達是不是跟採智買的?
如果是的話他們應該都會附一片光碟
裡面會有一些測試用的軟體
和一些範例程式&馬達使用手冊

如果是馬達不會控制可以看手冊裡的example
裡面有寫到控制馬達轉動時要寫什麼資料給馬達
另外還要注意馬達的 "baud rate" 和 "ID"
馬達的接腳在手冊裡也有
馬達的資料傳輸屬於半雙工
所以在接8051的UART時要注意一下

硬體只要有能提供10V的電源就好了

軟體部分我是直接用電腦控制
所以你要用的8051相關軟體我就不太清楚
作者: wowo8250    時間: 2009-4-30 00:32
2# abcd1234abcd


他的光碟 裡面有點看不太懂

他需要CM-5  去控制

我要的是AT89S51去控制

我只不到相關的資訊   有S51的晶片去控制這顆馬達
作者: abcd1234abcd    時間: 2009-4-30 13:26
請問你是一定要用S51去控制嗎?
如果是的話我就很難幫上忙了
因為我8051的編輯能力一直都停留在跑馬燈那裡
可能要看有哪個對8051大大比較熟的大大教你了

要是可以用電腦控制我才比較幫得上忙
作者: wowo8250    時間: 2009-4-30 15:32
4# abcd1234abcd

在問一下
在傳輸資料是用RS232傳送

是不是在晶片裡面程式編譯的時候

要寫相關RS232  編譯嗎?


RX和TX  分別是甚麼意思?    接收端嗎?
作者: abcd1234abcd    時間: 2009-4-30 21:20
關於8051不是很熟
所以只有辦法大概說明而已
8051要使用串列傳輸的時候在編輯時要先設定傳輸模式
AX-12是使用半雙工串列傳輸
也就是傳資料與接收資料是使用同一隻接腳
8051的傳輸模式必須設定為模式0
這時候8051串列的鮑率為振盪器的12分之1
AX-12馬達的預設鮑率為1M
就看你是要改馬達的鮑率還是用振盪器去調8051的鮑率

RX是傳輸端
TX是接收端

在模式0的時候RX是傳輸端也是接收端
作者: wowo8250    時間: 2009-5-1 00:30
6# abcd1234abcd


那我瞭解了!!謝謝大大的努力回答


那還有就是  大大也有用過 AX-1馬達?


還有那個控制器的問題

不是可用圖形監控方式去  下指令給機器人

那   LA VIEW  也可去控制?
作者: abcd1234abcd    時間: 2009-5-1 11:39
我AX-12已經用了有一段時間了
感覺起來還不錯用
而且還沒用到燒壞過

控制器的話我只有用過原廠附的程式編輯
要用LA VIEW可以打電話問採智的工程師
他以前有跟我說過
他大部分都是用LA VIEW去做
作者: wowo8250    時間: 2009-5-1 11:50
8# abcd1234abcd

請問大大的控制器是使用哪一種晶片?  和語言?

我發現傳輸過程   還要再買  採智的RS232傳輸接頭   這個一定要買嗎?"


那還有什麼  控制器方便  讓我去測試這顆馬達的  功率?  先暫時讓我知道說 這顆馬達的用意


採智附的光碟  是MC-5 控制器的程式碼  可以直接拿來用媽?
作者: abcd1234abcd    時間: 2009-5-1 12:23
本帖最後由 abcd1234abcd 於 2009-5-1 12:25 編輯

請問你是單買馬達還是買整隻機器人?

我說的控制器就是CM-5

RS232可以直接用電腦上的不用另外買
除非你的電腦上沒有RS232輸出介面

採智賣的傳輸接頭USB2Dynamexil
是利用USB去作一個虛擬的RS232輸出
還有將RS232的信號轉成TTL和RS485信號的功能
如過是要直接用電腦控制馬達
就需要用到TTL信號的功能

如果是要用機器人的控制器CM-5就不需要

馬達的功率這我就不懂
我是非機械系的學生
這個我就真的都不懂了


還有甚麼問題也歡迎你提出
也希望你能分享完成後的心得
作者: wowo8250    時間: 2009-5-2 09:17
10# abcd1234abcd

我是先單買馬達做測試!!

但是就是少了如何去操作的方法

讓我很納悶

上網也查了很多相關51系列的  就是找不到ˊˋ


馬達上面    哪一邊才是輸入端啊?

因為我在想  程式燒到晶片  然後再用傳輸線給馬達
作者: abcd1234abcd    時間: 2009-5-2 10:44
本帖最後由 abcd1234abcd 於 2009-5-2 10:48 編輯

馬達的接腳可以看下面的圖
這個圖是從馬達的手冊抓出來的
兩個都是輸入端
那兩端的接腳在馬達內部的電路是連在一起的


51控制ax-12
我也有搜尋過了
根本就找不到有關的資料
只能請你自己加油了
作者: wowo8250    時間: 2009-5-2 23:40
12# abcd1234abcd

對阿51不好找

那有C語言  已經是寫好的AX-12馬達的程式

讓我好燒入進去  讓我自己摸索  去玩這顆馬達

還有馬達的電池要買哪一種的?
作者: abcd1234abcd    時間: 2009-5-3 11:30
馬達手冊的第3頁有寫
輸入電壓7~10伏特
所以電池要挑7~10伏特的

51已經也好得C語言我是沒有
我只有電腦用VB.net寫的程式
如果需要我可以給你
作者: wowo8250    時間: 2009-5-3 15:53
14# abcd1234abcd




這是我的51版子

要是程式給我之後   我真懷疑  我的傳輸線要接去馬達哪哩!!

請問AX-12  可以用PWM偵測嗎?
作者: crazyking    時間: 2009-5-3 16:38
手上沒有AX-12的資料,不過從網站上看應該是類似AI馬達的產品,基本上你的板子上已經有RS232了,但是這顆
馬達應該是吃TTL的信號,所以找出板子上的RS232 TX接腳(TTL的),接到馬達上(記得共地)然後先從51的RS232程式開始練習
作者: marbol    時間: 2009-5-3 18:32
本帖最後由 marbol 於 2009-5-5 08:03 編輯
14# abcd1234abcd


4352

這是我的51版子

要是程式給我之後   我真懷疑  我的傳輸線要接去馬達哪哩!!



請問AX-12  可以用PWM偵測嗎?
wowo8250 發表於 2009-5-3 15:53


wowo大大~~~要解決問題需要瞭解您有什麼,如同您懷疑的,還缺一些東西,
畢竟您的板子是現成的,上面的接腳不是專門設計給AX-12使用,所以您還要準備一片麵包板,
您的板子另一面應該也有線路,有沒有線路圖,不然看起來會蠻吃力的~~在資料不足的情況下,
建議全部線路重新接在麵包板上,去找一本51的書,上面要有7805穩壓ic,雙列直插(DIP)的51,HIN232(51跟PC界面的電壓位準轉換ic)的線路圖,最好也準備好上列的硬體,都很容易買到,搭配的晶振與電容就不用講了吧,消化一下~~~~

如同abcd大大說的,AX-12的datasheet,上面提到使用的電源電壓,耗用電流及控制用的協定資料,照AX-12的datasheet看,電源可以用7.4v的鋰電,或者9.6v的鎳氫電池,若是您有可調電壓的電源供應器,供應電流最好要有1.5A以上(只接一顆AX-12的話)

這時候有兩個方式來控制AX-12,當做您已經會使用HIN232準位轉換IC,
只控制AX-12,不收AX-12的資料的接法
PC的TX(DB9接頭的第3腳)----->HIN232的第8腳--->HIN232的第9腳--->AX-12的第3腳(PIN3: Data),這時候,右下角接入電源,右上角接pc的rs232接腳,HIN232的接腳/5V的電源/GND,就拉到麵包板上,用排針接好,方便與AX-12的排線相連

控制AX-12,及收AX-12的資料的接法
另一個是PC的TX(DB9接頭的第3腳)----->HIN232的第8腳--->HIN232的第9腳--->(PLCC封裝,44隻腳)的51第11腳--->(PLCC封裝,44隻腳)的51第13腳----->AX-12的第3腳(PIN3: Data),這時候,右下角接入電源,右上角接pc的rs232接腳,HIN232的接腳/5V的電源/GND,就拉到麵包板上,用排針接好,方便與AX-12的排線相連,不同的是加上AX-12的datasheet第7頁的半雙工接法,傳輸方向的控制就隨便選用51的某一腳,當然也要對應寫好51程式,51做的事情就如同郵差收信送信的角色~~~

至於協定資料,有點像網路的協定資料,這是跟AX-12溝通用的,datasheet的第19頁就有範例,加上abcd大大的VB.net,能送出AX-12的協定資料格式,這樣才能給AX-12溝通喔~~~
作者: abcd1234abcd    時間: 2009-5-3 20:13
本帖最後由 abcd1234abcd 於 2009-5-3 20:16 編輯

15# wowo8250

馬達與8051的接法如下圖


AX-12馬達是使用串列傳輸的數位信號
所以不能用PWM
8051的UART記得要設成模式0
作者: abcd1234abcd    時間: 2009-5-3 20:20
17# marbol

我的VB.net程式你並沒有看過
為何你會認為是給701用的?
作者: wowo8250    時間: 2009-5-3 20:42
17# marbol

這你這麼講    但是這樣子的話  到最後實體要用在機器人架構上

不能叫我把麵包板   架上去吧?

還是  線路那些  載從新  另外做一塊出來
作者: wowo8250    時間: 2009-5-3 20:45
18# abcd1234abcd


不能用PWM偵測

那需要用甚麼  才能知道  馬達給的數據?
作者: abcd1234abcd    時間: 2009-5-3 20:49
21# wowo8250

馬達是使用數位信號
所以讀到的馬達數據也會是數位信號
作者: wowo8250    時間: 2009-5-3 23:21
22# abcd1234abcd

AX-12馬達有中文說明書嗎=  =

我翻譯翻到快死掉   

這個禮拜要給老師馬達數據   天阿  我到底還有甚麼辦法  去控制這個馬達@@

有甚麼控制器  先讓我暫時  看到馬達轉動= =
作者: abcd1234abcd    時間: 2009-5-4 08:59
本帖最後由 abcd1234abcd 於 2009-5-4 09:03 編輯

是有比較快能看到馬達動的方法
只是還要另外再花錢買東西
我是不太推薦

馬達的手冊原廠就只有英文的
如果是只要寫讓馬達轉動的命令
看18 19頁的表
和19頁的WRITE_DATA範例就差不多了
不用整份都看完
作者: wowo8250    時間: 2009-5-4 14:44
24# abcd1234abcd

我手上有單晶片的書  內容有控制步進馬達的程式   我可以用這個程式去控制嗎?



還是可以用圖中這個程式    去做測試呢?
作者: abcd1234abcd    時間: 2009-5-4 17:38
本帖最後由 abcd1234abcd 於 2009-5-4 17:41 編輯

AI馬達的控制方式和部進馬達不同
所以你的書上的程式並不適用

你那個圖中的程式是給CM-5用的
那個程式編輯完成後
直接下載到CM-5控制器中
用CM-5控制馬達動作
作者: marbol    時間: 2009-5-5 07:59
17# marbol  

我的VB.net程式你並沒有看過
為何你會認為是給701用的?
abcd1234abcd 發表於 2009-5-3 20:20


abcd大大~~抱歉~~似乎看到AI-701,所以跟AX-12誤植了~~
作者: marbol    時間: 2009-5-5 08:02
15# wowo8250

馬達與8051的接法如下圖


AX-12馬達是使用串列傳輸的數位信號
所以不能用PWM
8051的UART記得要設成模式0
abcd1234abcd 發表於 2009-5-3 20:13


abcd大大~~如果要由51發出命令控制AX-12,應該接的是(TXD)p3.1那一腳喔~~
作者: abcd1234abcd    時間: 2009-5-5 10:33
28# marbol

我是上網查8051的串列傳輸
有分3個模式
模式1傳出去的位元數固定是10個
模式2傳出去的位元數固定是11個
模式0的時候就沒有固定了
而且是和馬達一樣用半雙工的方式傳輸
資料是由RXD傳出和接收
所以才會接在RXD那隻腳
作者: nichal    時間: 2009-5-5 14:57
28# marbol  

我是上網查8051的串列傳輸
有分3個模式
模式1傳出去的位元數固定是10個
模式2傳出去的位元數固定是11個
模式0的時候就沒有固定了
而且是和馬達一樣用半雙工的方式傳輸
資料是由RXD傳出和接收 ...
abcd1234abcd 發表於 2009-5-5 10:33


大概理解abcd1234abcd大大的意思
簡單說就是傳送不透過串列硬體
所以單純自己造哪一隻腳都OK

接收透過硬體中斷
確保收的訊號沒有漏掉
這樣一隻腳就可以搞定傳輸功能了...

(有點像LIN Bus呀)
作者: abcd1234abcd    時間: 2009-5-5 18:09
本帖最後由 abcd1234abcd 於 2009-5-5 18:10 編輯

30# nichal

不好意思我說明的不夠仔細
我想說的是利用8051串列傳輸的模式0
模式0剛好是半雙工的串列傳輸
所以還是透過8051的串列硬體作傳輸
而用來傳輸的接腳是RXD這隻接腳
作者: marbol    時間: 2009-5-5 23:33
本帖最後由 marbol 於 2009-5-6 07:06 編輯
28# marbol  

我是上網查8051的串列傳輸
有分3個模式
模式1傳出去的位元數固定是10個
模式2傳出去的位元數固定是11個
模式0的時候就沒有固定了
而且是和馬達一樣用半雙工的方式傳輸
資料是由RXD傳出和接收 ...
abcd1234abcd 發表於 2009-5-5 10:33


abcd大大~~
51串列傳輸模式0是用在同步的狀況下,需要配合TXD的移位脈波來同步傳輸,若是51採用12Mhz晶振,是可以達到1Mbps的傳輸效果,AX-12並沒有多的腳可以接TXD的移位脈波呢~~~~所以這個方法似乎不可行~~~

而且AX-12的協定在第9頁講到,它是使用非同步傳輸,非同步傳輸就不需要同步的移位脈波配合,但相互之間鮑率要約定好,AX-12似乎沒談到鮑率設定,所以就當作AX-12可以自行偵測囉~~~

但是如何確定這一個byte資料的完整,那就是加上起始位元與停止位元來確保,不過,AX-12的串列協定跟51串列傳輸模式1似乎不太一樣~~~~少了一個起始位元~~所以不確定是否能使用51串列傳輸模式1,因為AX-12並沒有串列協定時序可參考~~~
作者: nichal    時間: 2009-5-6 00:00

暈~~~連我都霧煞煞了....
作者: wowo8250    時間: 2009-5-6 00:14
32# marbol

那意思就是說  我程式打好之後

傳輸只要從RX端   拉出  給馬達  然後馬達接電源  就可以進行控制了嗎?

假如是這樣  那接收的部分怎辦?  他資料是回傳到哪裡?
作者: abcd1234abcd    時間: 2009-5-6 10:27
32# marbol

AX-12是可以設定包率
第13頁有提到如何設定

關於8051我是真的不熟
也謝謝大大的詳細說明
作者: wowo8250    時間: 2009-5-10 16:35
請問一下  從PC  傳輸TX端給  MAX232然後在RX給馬達

請問在PC的時候 我要用LabVIEW  給他一個基本的旋轉

程式要怎麼拉阿!!要怎麼傳= =

直接從PC→MAX232→馬達    (不經過8051)

直接就是一個訊號進去了
作者: abcd1234abcd    時間: 2009-5-10 19:26
要讓馬達旋轉
要先把馬達設定成迴轉模式
馬達的control table
address 8 的直設定成 0
要讓馬達順時針方向旋轉
address 32的是值設定為 1~1023
逆時針方向旋轉
address 32的是值設定為 1024~2047
是值的大小表是轉速的快慢
作者: wowo8250    時間: 2009-5-13 17:28
本帖最後由 wowo8250 於 2009-5-13 20:32 編輯

我買了9V電池還有那個電池插座

+電壓 給馬達VDD
-電壓  我插在麵包版   這樣OK嗎?

馬達GND 也是插麵包版

可以跟ABCD大大    拿VB程式嗎?
作者: abcd1234abcd    時間: 2009-5-13 20:39
38# wowo8250

如過沒插錯的話接腳的話就可以

關於程式的部分
我要用什麼方式傳給你?
作者: wowo8250    時間: 2009-5-13 21:25
39# abcd1234abcd


ymca107我的即時通帳號
用信箱寄也可以
作者: abcd1234abcd    時間: 2009-5-13 21:50
40# wowo8250

我已經寄E-mail過去了

看看有沒有什麼問題
作者: wowo8250    時間: 2009-5-13 23:08
本帖最後由 wowo8250 於 2009-5-13 23:39 編輯

41# abcd1234abcd

怎麼我灌VB專業版了  開不起來
馬達送電之後   他的LED燈  是亮一下就消失嗎
作者: abcd1234abcd    時間: 2009-5-14 11:16
42# wowo8250

我是用VB.net寫的
要用Visual Stdio 2008才能開啟

馬達接上電時LED會閃一下是正常的
作者: wowo8250    時間: 2009-5-14 23:51


為什麼我照著範例做輸入數據    利用陣列方式串起輸出

但是發現就是傳給馬達直後  沒有動作

而且我多接了回傳數據可惜還是      輸入等於輸出

我這輸入是對的嗎?
作者: omegaCD    時間: 2009-5-15 01:29
本帖最後由 omegaCD 於 2009-5-15 01:38 編輯
4378

為什麼我照著範例做輸入數據    利用陣列方式串起輸出

但是發現就是傳給馬達直後  沒有動作

而且我多接了回傳數據可惜還是      輸入等於輸出

我這輸入是對的嗎?
wowo8250 發表於 2009-5-14 23:51

同學你有去看AX-12通信協定嗎?AX-12的馬達要回傳資料要先下對封包喔。
http://www.robotis.com/zbxe/?module=file&act=procFileDownload&file_srl=5448&sid=892169ec0cc789252a4b905cd2f6c3c6

還有每一筆封包結尾都要checksum,會做嗎˙˙?
(PS:一開始每單筆資料的間隔時間可以長一點,至少500mS)

還有馬達的ID也要記得設對~
作者: wowo8250    時間: 2009-5-15 07:34
通訊協定喔!!他不是屬於半雙工的
我RS232 寫入接11腳  輸出腳14   在短路測試的時候  可以經過HIN232這個晶片

至於ID部分    怎麼設定ID啊?

我只有單顆馬達    不是0X00嗎?
作者: omegaCD    時間: 2009-5-15 10:59
通訊協定喔!!他不是屬於半雙工的
我RS232 寫入接11腳  輸出腳14   在短路測試的時候  可以經過HIN232這個晶片

至於ID部分    怎麼設定ID啊?

我只有單顆馬達    不是0X00嗎?
wowo8250 發表於 2009-5-15 07:34

你電路怎麼接?可以稍微畫一下嗎?

還有Checksum有算對嗎?(這非常重要,算錯的話馬達就會把封包丟棄)
ID的話一開始是0x00沒錯,如果有2顆以上AX-12就要設喔(不然容易出問題...)
作者: wowo8250    時間: 2009-5-15 13:18
本帖最後由 wowo8250 於 2009-5-15 13:19 編輯

47# omegaCD



這是我麵包板的接法

程式部分  我電腦LabVIEW 是7.1的

要到學校才能開啟8.6板的


程式部分  LabVIEW 裡面

我用範例2     輸入FF FF 01 04 02  2B 01 CC  經過陣列串起輸出
但是範例答案說回傳數據是   FF FF 01 03 00 20 DB

但是就是輸入等於輸出
作者: mpuc    時間: 2009-5-15 14:13
本帖最後由 mpuc 於 2009-5-15 14:43 編輯

你232ic用反了= =///
,另外pc_232pin2接232ic_pin14,
pc_232pin3接232ic_pin13,
232ic_pin11,12短路接伺服器data_pin
作者: abcd1234abcd    時間: 2009-5-15 17:45
本帖最後由 abcd1234abcd 於 2009-5-15 17:46 編輯

46# wowo8250

AX-12手冊範例裡的馬達ID是01
這裡也要稍微注意一下
作者: wowo8250    時間: 2009-5-17 01:14
RS232_T1.vi (13.32 KB, 下載次數: 750)
請問一下  我的程式哪裡出了問題

就是不會動

範例十  是要怎麼打阿

我在通信部分  我打 FF FF 00 05 03 08 FF 01 EF

怪怪的

我的版本是  8.6板
作者: abcd1234abcd    時間: 2009-5-18 14:59
本帖最後由 abcd1234abcd 於 2009-5-18 15:17 編輯

範例10是設定馬達的轉動範圍
所以馬達並不會轉動

你可以試看看
FF FF 01 05 03 1E 00 00 D8
看馬達有沒有轉到0度的位置

FF FF 01 05 03 1E FF 03 D6
看馬達有沒有轉到300度的位置
作者: mpuc    時間: 2009-5-18 15:08
因為tx和rx接在一起,
所以由tx送出的data會立刻回到rx,
因此接收的buffer要2倍,
有示波器的話直接量測tx,rx會發現rx的data比tx的長
id預設是01,
作者: wowo8250    時間: 2009-5-21 08:33
我發現此馬達

除了透過CM-5控制器  以及 USB傳輸器  才能控制

請問一下你們傳輸控制是透過甚麼?
作者: abcd1234abcd    時間: 2009-5-21 21:29
我是用原廠的轉接器
作者: suhlih    時間: 2010-7-9 14:39
可以寄給我VB or C的程式嗎?
suhlih70501@yahoo.com.tw
非常感謝!!
作者: tie210099    時間: 2010-7-20 17:12
因為最近也在接觸這顆馬達
想說可以不要通過CM-5來控制
所以可以寄給我VB的程式嗎?
我想用vb來玩看看
tie210099@yahoo.com.tw
非常感謝!!
作者: showsweetnow    時間: 2011-7-21 18:19
.
作者: showsweetnow    時間: 2011-7-21 18:21
請問我要怎ㄇ用8051去控制AX-12

我已經找到AX-12ㄉDATASHEETㄌ..但程式方面不是很懂

還有阿AX-12要怎ㄇ接上8051版子是將訊號腳位直接接上8051ㄉPORT腳位ㄇ?




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2