Robofun 機器人論壇

標題: 請問Robosapien V1指令間的時間延時 [打印本頁]

作者: wallace_tsou    時間: 2007-7-23 22:29
標題: 請問Robosapien V1指令間的時間延時
這是我的第一個機器人:Robosapien V1。
我按照資料給的規格自己做了一個USB遙控器控制板,可以正常下指令給Robosapien V1。

利用Win32Forth語言系統架了一個可以寫中文程式的環境。
可是我發現一個問題,那就是每個動作命令之間必須休息一段時間才可以下指令。
所有指令後面可以再接收的時間不太相同,有些可以做到一半下停止。
這些要自己試嗎?有沒有可以參考的資料。
我的程式的一部分:
WinLibrary Robo3.dll
: 史賓       call USBDeviceOpen if ." USB not found!" else ." Ready!" then ;
: usb_check  if ." USB was invalid!" then ;
: 右轉       $80 call USBWrite usb_check 200 ms ;
: 舉右手     $81 call USBWrite usb_check 450 ms ;
: 右手外彎   $82 call USBWrite usb_check 400 ms ;
: 身體右彎   $83 call USBWrite usb_check 200 ms ;
其中(:)冒號為定義程式,(;)分號為定義結束
也可以使用複合命令如
: 快步前進   前進 前進 ;
: 快步後退   後退 後退 ;
: 右轉前進   右轉 右轉 ;
: 左轉前進   左轉 左轉 ;
直接將指令鍵入則是執行,可以測試複合指令間狀態。如
>>  快步前進 500 ms 舉右手

[ 本帖最後由 wallace_tsou 於 2007-7-26 19:13 編輯 ]
作者: wallace_tsou    時間: 2007-7-26 19:12
標題: 懶得測了
發現除了停止命令之間要350ms時間外,其餘動作只要200ms即可接受停止命令。所以所有指令皆以200ms做基本延時。
動作控制上,以動作配合停止命令可以做小動作修正。例如:
>>  快步前進 500 ms 停止
結果只會移動不到二公分。比用遙控器手按精準。
缺點是會多叫一聲。

[ 本帖最後由 wallace_tsou 於 2007-7-26 19:14 編輯 ]
作者: wallace_tsou    時間: 2007-7-27 10:37
標題: 誰可以借Robosapien V2?
我發現Robosapien V2指令是12bit。也就是說應可以和我現在的USB遙控器合在一起。也就是V1,V2可以共用同一個遙控器且可以同時發送指令。不過我沒有可以實驗的V2。有人可以提出意見嗎?
作者: wallace_tsou    時間: 2007-7-30 11:58
標題: 買了羅本艾特準備試
今天買了羅本艾特,到手後量量看有何不同,看看是否可以整合在同一個控制器上。
作者: wallace_tsou    時間: 2007-7-30 18:38
標題: Robosapien V2指令軟體已完成
修改了一下8051程式結構,讓程式判定由PC送去的指令是否大於8位元。若不是則送出原本V1的指令,其指令長度為8位元;若是大於8位元,則送出12位元指令。
不過沒有可以試的對象,待以後有心人可以讓我試試看。
作者: wallace_tsou    時間: 2007-8-1 19:07
標題: 羅本艾特通信格式差很多
量了一下羅本艾特的通信方式。發現和史賓差異很大。
首先是載波頻率為36.3kHz。
Start bit為9ms,基本時間為3ms,也就是以333.3Hz為通信速度。
0 bit為3ms不發光接3ms發光。
1 bit為3ms不發光接6ms發光。
沒有結束信號。
所有通信以8 bits為一個命令。
停止命令為F0,其餘要一個一個查。
要合併遙控器是可以,但要二種發射狀態。
不過我對機構部分比較有興趣,本來就是買羅本艾特來拆的。
作者: wallace_tsou    時間: 2007-8-1 20:59
標題: IR LED壞了
在試V2指令時就已燒壞,所以今天本來在準備發表的資料才發現不能動。還以為是程式改錯,抓了很久。最後換了LED才好,嚇了一跳。現在加上限流電阻,以免再發生燒壞現象。
8月4日要去展示一下成果了。
作者: wallace_tsou    時間: 2007-8-6 14:20
標題: 原來今年4月也有人做一樣的
在機器人自組DIY中也找到了有人做。還附電路圖。
只是我的電路比較起來要簡單多了,只用帶USB的8051,39.2kHz載波由8051自己生成,所以有機會使用命令方式改變載波頻率,這部分程式曾花了我不少時間讀IC資料。本來要做可切換史賓及羅本艾特的組合程式,但指令差太多且未查完。另外在發射功率上也要再調整,因羅本艾特的指令會產生較高功率,怕又會再燒掉,所以只好先暫停了。
作者: wallace_tsou    時間: 2007-8-6 14:52
標題: USB遙控器只使用USB電源
有一點一直忘了提。我的遙控器只使用USB電力就可以運作了,這對展示上有很大的幫助。只要一台NoteBook就可以運作,也不用外部電源。只是目前使用的電路板並非專屬設計,所以板子大了些。
作者: wallace_tsou    時間: 2007-8-7 09:29
標題: IR發射功率
剛做好的IR遙控器在驗證時,其發射能力很弱。除非正對才有作用。但史賓的遙控器在對天花板下命令仍能動作,這點我覺得驚訝(我沒做過遙控器)。後來發現史賓遙控器使用Pmos或PNP電晶體做為電源開關,就將原先使用NPN晶體驅動電路加裝PNP晶體來驅動,果然可以對天花板發射也可以收到。但要小心,發射時間太長,有可能燒掉。
作者: wallace_tsou    時間: 2007-8-8 17:55
標題: USB 8051為Silicon Lab的C8051F340
使用此8051的好處是它具有USB界面,這很符合現在的設計驅勢。另外它也是很快速的8051,可以做高速中斷。我就是利用這個特性來做可調整頻率的載波。利用其內建PWM,利用程式調整PWM切換頻率達39.2kHz,再利用開關IO pin之特性來達成開關載波,就可以完全由軟體來控制載波頻率及發射信號。故可以做到送出想要的載波及信號。
另外此8051使用元件少,不需外接振盪器、USB傳輸IC即可運作。更重要的是有USB的8051程式碼及Windows下的程式碼,我就是將範例程式碼做少許修改,就可以從PC端下命令到8051。這樣對機器人研發方便不少。
作者: wallace_tsou    時間: 2007-8-9 23:50
標題: 開發工具及用途
Keil C:8051程式語言,主要是重組範例程式及編寫載波行為
Borland C:Windows 上DLL程式開發,主要是要產生DLL檔案給Forth語言用。也可以給VB用(未試)。
Win32Forth:可以產生單次程式呼叫,對於Try and Error試驗法特別有效。
示波器:看產生之載波狀況。
作者: wallace_tsou    時間: 2007-8-16 20:27
標題: 8月11日在符氏月會發表
因Forth同好有想推廣Forth語言,所以我去發表一下。
做機器人控制可以在Forth上開一個主題。也讓我有發揮機會。




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