Robofun 機器人論壇

標題: [急問]有人會用8051去控制AI馬達的嗎 [打印本頁]

作者: cloud0812    時間: 2006-7-14 16:18
標題: [急問]有人會用8051去控制AI馬達的嗎
目前知道是用UART去控制(因為AI馬達是TX.RX輸出入)

不過進度就卡住了.是要用8051的TX.RX和馬達的連在一起嗎?
有哪位大大可以解惑的拜託了
作者: marbol    時間: 2006-7-15 13:32
原帖由 cloud0812 於 2006-7-14 16:18 發表
目前知道是用UART去控制(因為AI馬達是TX.RX輸出入)

不過進度就卡住了.是要用8051的TX.RX和馬達的連在一起嗎?
有哪位大大可以解惑的拜託了



光看字面很難說要不要透過MAX232轉換位準~~~~~
請問有AI馬達的使用說明可以參考嗎???
作者: cloud0812    時間: 2006-7-15 16:05
應該是要的.不過MAX232應該是用在232轉TTL至8051時用
下面是馬達的資料
http://www.besttechnology.co.jp/ ... AI%20Motor-1001.pdf
http://www.besttechnology.co.jp/index.htm <<<應該是官網
作者: ayu    時間: 2006-7-15 23:52
Pan-Tilt Demo 使用軟體下載 :     2 motor "record & playback"

http://www.garage-technologies.com/PanTilt.zip      

可能是使用這個電路圖,不用51來控制吧??

電路圖下載:

http://www.garage-technologies.com/gtapp-aim-1.pdf

好像只要電腦下指令就可控制的馬達,我不太懂,如有錯誤,請告知,這是一些找到的資料,請參考看看,
如有作出來的話,要分享喔!!


用51討論的文章   http://delphi.ktop.com.tw/board. ... =1167&tid=81786

[ 本帖最後由 ayu 於 2006-7-16 00:06 編輯 ]

Pan Tilt.JPG (19.86 KB, 下載次數: 502)

軟體操作畫面

軟體操作畫面

電路圖1.JPG (16.64 KB, 下載次數: 555)

電路圖1.JPG

作者: cloud0812    時間: 2006-7-16 02:17
用電腦轉232控制單一個馬達的話我是OK的.問題是如何用51去控制
他公司出的控制版好像是ARM系列的IC所以我想用51應該也可以
那個51論壇對我蠻有幫助的喔
非常感謝ayu大大熱心尋找資料@w@

[ 本帖最後由 cloud0812 於 2006-7-16 02:18 編輯 ]
作者: ayu    時間: 2006-7-16 07:59
原帖由 cloud0812 於 2006-7-16 02:17 發表
用電腦轉232控制單一個馬達的話我是OK的.問題是如何用51去控制
他公司出的控制版好像是ARM系列的IC所以我想用51應該也可以
那個51論壇對我蠻有幫助的喔
非常感謝ayu大大熱心尋找資料@w@


cloud0812 大大您好,
我找的資料有用avr ATMEGA128 控制的,  http://www.garage-technologies.com/MGR-CA128.pdf
51是8位元,ARM是32位元的晶片,這兩者可適用嗎?不太懂!! 還是可用就行了??
您提供了另一個資料,我也得到了另一方面的學習管道,謝謝您了。
這個AI motor好像都是韓國的產品,找的資料都是韓國的網站。

您怎麼用電腦來控制??可詳述一下嗎??

[ 本帖最後由 ayu 於 2006-7-16 08:01 編輯 ]
作者: marbol    時間: 2006-7-16 09:54
原帖由 ayu 於 2006-7-16 07:59 發表


cloud0812 大大您好,
我找的資料有用avr ATMEGA128 控制的,  http://www.garage-technologies.com/MGR-CA128.pdf
51是8位元,ARM是32位元的晶片,這兩者可適用嗎?不太懂!! 還是可用就行了??
您提供了另一 ...


謝謝ayu大大與cloud0812大大提供的資料~~~~~
看了avr ATMEGA128 控制板資料,以及AI馬達的資料有些重點說明整理一下

1.AI馬達=servo(伺服機)+SSC(串列伺服機控制器)
2.AI馬達的TX,RX是(12v,-12v)的準位,因此51需要MAX232倍壓IC來提昇位準以便與AI
  馬達通訊
3.而avr ATMEGA128 控制板本身已有位準提升IC,所以只要切換設定鈕就可以做兩件事
           (1) PC控制AI馬達
           (2)由控制板直接控制AI馬達
4.只要丟出4Bytes為單位的協定資料(AI馬達說明手冊有寫每Byte的含意)就可以控制AI馬達一個動作

5.只要用串列傳輸+協定資料就可以控制AI馬達,跟51是8位元,ARM是32位元的晶片沒有關係,換句話說,只要提供AI馬達能接受的資料,用哪種微控器都可以~~~~

[ 本帖最後由 marbol 於 2006-7-16 10:05 編輯 ]
作者: ayu    時間: 2006-7-16 12:58
原帖由 marbol 於 2006-7-16 09:54 發表


謝謝ayu大大與cloud0812大大提供的資料~~~~~
看了avr ATMEGA128 控制板資料,以及AI馬達的資料有些重點說明整理一下

1.AI馬達=servo(伺服機)+SSC(串列伺服機控制器)
2.AI馬達的TX,RX是(12v,-12v)的準位 ...


marbol大大您好,

您有買這一顆馬達嗎?有作出來嗎?它的控制好像比RC SERVO簡單?是不是?台灣那裏有賣這顆馬達的啊?

謝謝解答了。
作者: cloud0812    時間: 2006-7-16 13:15
原帖由 ayu 於 2006-7-16 12:58 發表


marbol大大您好,

您有買這一顆馬達嗎?有作出來嗎?它的控制好像比RC SERVO簡單?是不是?台灣那裏有賣這顆馬達的啊?

謝謝解答了。


益眾ICCI有代理這個AI馬達.廣華電子應該也買的到
作者: marbol    時間: 2006-7-16 18:28
原帖由 ayu 於 2006-7-16 12:58 發表


marbol大大您好,

您有買這一顆馬達嗎?有作出來嗎?它的控制好像比RC SERVO簡單?是不是?台灣那裏有賣這顆馬達的啊?

謝謝解答了。


沒有用過這種AI馬達哩!!!有點小貴~~~
從控制面來說都是要透過串列埠,在使用上跟SSC差不多,
AI馬達貴的原因就是它可以透過串列埠把位置資訊與負載電流值傳回,
也因為如此,就可以透過PC端的程式完成"教導盒"的功能,也就是它的價值所在

什麼是教導盒???就是透過與PC連線,然後扳動機器人的手腳,這時各個伺服機的角度都會傳回到軟體內,此時只要按下紀錄鈕,就可紀錄這一刻的動作,接下來,把不同的連續動作紀錄下來,就可以得到一連串動作組合的資料,是不是比一個軸一個軸慢慢key in方便許多~~~~~最後這個資料可以載入控制板,讓機器人據以執行動作~~
作者: ayu    時間: 2006-7-16 20:50
原帖由 marbol 於 2006-7-16 18:28 發表
從控制面來說都是要透過串列埠,在使用上跟SSC差不多,
AI馬達貴的原因就是它可以透過串列埠把位置資訊與負載電流值傳回,
也因為如此,就可以透過PC端的程式完成&quo ...


marbol大大您好,
您的SSC也是可作這樣的動作喔?要不要秀一下啊!!
謝謝啦。
作者: marbol    時間: 2006-7-16 22:31
原帖由 ayu 於 2006-7-16 20:50 發表


marbol大大您好,
您的SSC也是可作這樣的動作喔?要不要秀一下啊!!
謝謝啦。


我的SSC只有陽春的功能,無法執行教導盒的工作哩!!
而且教導盒還需要發展PC的介面程式,加上servo也需要改裝,
想了就頭大~~~~~~

教導盒可以從VB的PC介面程式為基礎來開始~~~~~
至於servo的改裝,目前市面上有益眾的AI伺服馬達,日本的AI馬達,以及飆網站的伺服馬達三款可參考~~~~

我看還是先弄出一個像h881068大大的那種VB的PC介面程式還是比較實在囉~~~~~~

[ 本帖最後由 marbol 於 2006-7-16 22:35 編輯 ]
作者: ayu    時間: 2006-7-17 07:12
原帖由 marbol 於 2006-7-16 22:31 發表


我的SSC只有陽春的功能,無法執行教導盒的工作哩!!
而且教導盒還需要發展PC的介面程式,本搨n改裝,
想了就頭大~~~~~~

教導盒可以從VB的PC介面程式為基礎來開始~~~~~
至於servo的改裝,目前市面上有益眾 ...


SSC無法用串列傳輸來控制嗎?您可以po圖來看嗎?或網站?也想來瞭解一下,麻煩您了。
作者: marbol    時間: 2006-7-17 21:25
原帖由 ayu 於 2006-7-17 07:12 發表


SSC無法用串列傳輸來控制嗎?您可以po圖來看嗎?或網站?也想來瞭解一下,麻煩您了。


您誤會囉!!
SSCII(全名Mini SSC II)這片板子可以用用串列傳輸來控制,若要用51控制SSCII,需要透過MAX232準位提昇IC~~~~

http://www.seetron.com/ssc.htm

我所做的ssc有參考它的資料協定格式,在它的code無從得知的情況下,依照它的功能表現硬是做出它的功能出來的囉~~~

相對於日本AI馬達的串列傳輸,它所用到的資料協定格式跟SSCII差不多,只是多了一個check sum來防止傳輸過程錯誤發生~~~~~

只是日本AI馬達的概念相當有意思,若是要做也只能做到他的部分功能(servo+SSC)啦!!!畢竟是重新由servo內部做整體設計,這點從它的說明手冊可以看的出來,它的功能方塊圖嵌入在servo的架構裡面,需要有系統方面的整合!!這不是DIY能做到的層次哩!!

[ 本帖最後由 marbol 於 2006-7-17 22:39 編輯 ]
作者: cloud0812    時間: 2006-9-6 16:47
我現在已經自己寫好一個VB去控制馬達的程式了
目前是卡在如何用8051去控制
由於馬達接收訊號是要接收4組訊號才會作一個動作.
但是8051的串列port功能我不是好熟所以就卡在目前的位置
進度大大落後了>"<
作者: marbol    時間: 2006-9-6 17:55
原帖由 cloud0812 於 2006-9-6 16:47 發表
我現在已經自己寫好一個VB去控制馬達的程式了
目前是卡在如何用8051去控制
由於馬達接收訊號是要接收4組訊號才會作一個動作.
但是8051的串列port功能我不是好熟所以就卡在目前的位置
進度大大落後了>" ...


cloud0812 大大~~~~~
其實不需要8051來控制AI馬達也行,看您提供的AI馬達說明書第一頁電路圖就很清楚,
只需MAX232與穩壓IC,您就可以用VB去控制AI馬達了~~~~這樣應該不用再煩惱了吧!!
作者: cloud0812    時間: 2006-9-7 01:47
我就是要用8051去控制.才能往自律的方向去做阿~~
大大你誤會了@@
作者: cloud0812    時間: 2006-9-7 01:52
MAX232與穩壓IC這部份我是OK的
作者: marbol    時間: 2006-9-7 18:39
原帖由 cloud0812 於 2006-9-7 01:47 發表
我就是要用8051去控制.才能往自律的方向去做阿~~
大大你誤會了@@

喔!!真不好意思~~~以為您要用VB透過串列埠傳給51,然後再由51透過串列的方式傳給AI馬達~~~

單就從51丟串列資料應該還OK,您有51的書嗎??翻到串列傳送那一章節,參考下列流程做做看!!

第一步要先設定51的控制暫存器SCON,TCON初始態,以便對應AI馬達的鮑率設定,
第二步就是主程式串列傳送程式,主要進行命令table(就是四個byte字串命令)的傳送
第三步就是延時副程式,以便微調串列命令的傳送間格,讓AI馬達有足夠的時間接收並解譯命令
         (此延時副程式由主程式來呼叫使用)
第四步就是建立命令table,以便讓第二步驟的主程式來抓取

這個網頁可以參考看看~~~~
http://delphi.ktop.com.tw/board.html?cid=173&fid=1167&tid=81786

接下來自律的的方向,您有什麼想法嗎??

[ 本帖最後由 marbol 於 2006-9-10 15:10 編輯 ]
作者: cloud0812    時間: 2007-12-20 11:56
標題: 耍笨了= =
之前作好的VB程式我想說要讓他一次讀出所有的馬達編號和角度
但是笨的是我之前的程式不見了
現在又在VB傳訊號給馬達的地方卡住了= =
早知道要發表一下程式碼的
只好來跪求各位大大幫幫我解決這個問題了
輸出資料明明是4個byte
但他就是不動
Dim Data0 As String
Dim Data1 As String
Dim Data2 As String
Dim Data3 As String
_____________________________________________
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End Sub
______________________________________________
Private Sub Command1_Click()
Data0 = &HFF
Data1 = Val(Text1.Text)
Data2 = Val(Text2.Text)
Data3 = (Data1 Xor Data2) And &H7F
MSComm1.Output = Data0
MSComm1.Output = Data1
MSComm1.Output = Data2
MSComm1.Output = Data3
End Sub
會VB的大大幫幫手囉>~<感恩
作者: crazyking    時間: 2007-12-20 13:50
我剛好有用過,也寫了一個簡單的測試程式,大家參考看看吧,基本上使用時請先用原廠的軟體設定好通訊格式
9600,N,8,1還有馬達的ID即可,本程式可自由使用,但請勿任意附在任何也銷售媒體上(包含書籍、光碟及以任何付費下載者),另壓縮檔中的active x物件僅供測試用,其版權屬原公司,請自行取得授權。

畫面.jpg (140.58 KB, 下載次數: 305)

AI馬達軟體畫面

AI馬達軟體畫面

rs232-AI.rar

232.62 KB, 下載次數: 636

AI馬達測試軟體


作者: crazyking    時間: 2007-12-20 13:58
原帖由 cloud0812 於 2007-12-20 11:56 發表
之前作好的VB程式我想說要讓他一次讀出所有的馬達編號和角度
但是笨的是我之前的程式不見了
現在又在VB傳訊號給馬達的地方卡住了= =
早知道要發表一下程式碼的
只好來跪求各位大大幫幫我解決這個問題了
輸 ...

你的方式錯了,正確的寫法如下
dim ox(17) as byte
     ox(0) = &HFF
     Text5(0) = "FF"
     ox(1) = "&H" & Hex((32 * Val(Combo2.Text)) Or ("&H" & Hex(Val(Combo1.Text))))
     Text5(1) = Hex((32 * Val(Combo2.Text)) Or (Hex(Val(Combo1.Text))))
     ox(2) = "&H" & Hex(Val(Text5(4).Text))
     Text5(2) = Hex(Val(Text5(4).Text))
     ox(3) = (ox(1) Xor ox(2)) And &H7F
     Text5(3) = (ox(1) Xor ox(2)) And &H7F
mscomm1.output=ox
作者: cloud0812    時間: 2007-12-20 14:52
嗯嗯0.0感謝
作者: cloud0812    時間: 2007-12-20 22:07
那麼我可以請教一下一次送一組(0~9號)的話
程式要怎麼寫
我用陣列去寫.但是他就是不動
所以我用某個程式去讀取COM1輸出的訊號.發現居然有錯
FF 40 7D 3D FF 41 00 6B FF 42 00 5B FF 43 00 44   
FF 44 73 37 FF 45 7D 38 FF 46 00 6C FF 47 00 5C   
FF 48 00 42 FF 49 00 45
紅色部份和TEXT2不符合

因為沒學過VB.突然覺得自己好弱阿=口=~~~

BO.txt

815 Bytes, 下載次數: 616


作者: crazyking    時間: 2007-12-21 07:04
參考一下吧
for i=1 to 10
     ox(0) = &HFF
     Text5(0) = "FF"
     ox(1) = "&H" & Hex((32 * Val(Combo2.Text)) Or ("&H" & Hex(i - 1)))
     Text5(1) = Hex((32 * Val(Combo2.Text)) Or ("&H" & Hex(i - 1)))
     ox(2) = "&H" & Hex(Val(FG1.Text))
     Text5(2) = Hex(Val(FG1.Text))
     ox(3) = (ox(1) Xor ox(2)) And &H7F
     Text5(3) = (ox(1) Xor ox(2)) And &H7F
     MSComm1.Output = ox
next i
作者: cloud0812    時間: 2007-12-21 17:25
大感激.我成功讓他一直走路了
請問老師有做他Postion Read的部份嗎
照理說.在Postion Send的時候應該也會有回送電流和Postion的值
但就我觀察的結果並沒有收到.還是我程式又錯了=.=
作者: crazyking    時間: 2007-12-21 22:18
你可以先用我上傳的那個程式測試,畫面如圖

片段2.jpg (135.5 KB, 下載次數: 263)

片段2.jpg





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