Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 11931|回復: 12
打印 上一主題 下一主題

請問Robosapien V1指令間的時間延時

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-7-23 22:29:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我的第一個機器人: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 編輯 ]
2#
 樓主| 發表於 2007-7-26 19:12:41 | 只看該作者

懶得測了

發現除了停止命令之間要350ms時間外,其餘動作只要200ms即可接受停止命令。所以所有指令皆以200ms做基本延時。
動作控制上,以動作配合停止命令可以做小動作修正。例如:
>>  快步前進 500 ms 停止
結果只會移動不到二公分。比用遙控器手按精準。
缺點是會多叫一聲。

[ 本帖最後由 wallace_tsou 於 2007-7-26 19:14 編輯 ]
3#
 樓主| 發表於 2007-7-27 10:37:22 | 只看該作者

誰可以借Robosapien V2?

我發現Robosapien V2指令是12bit。也就是說應可以和我現在的USB遙控器合在一起。也就是V1,V2可以共用同一個遙控器且可以同時發送指令。不過我沒有可以實驗的V2。有人可以提出意見嗎?
4#
 樓主| 發表於 2007-7-30 11:58:05 | 只看該作者

買了羅本艾特準備試

今天買了羅本艾特,到手後量量看有何不同,看看是否可以整合在同一個控制器上。
5#
 樓主| 發表於 2007-7-30 18:38:02 | 只看該作者

Robosapien V2指令軟體已完成

修改了一下8051程式結構,讓程式判定由PC送去的指令是否大於8位元。若不是則送出原本V1的指令,其指令長度為8位元;若是大於8位元,則送出12位元指令。
不過沒有可以試的對象,待以後有心人可以讓我試試看。
6#
 樓主| 發表於 2007-8-1 19:07:06 | 只看該作者

羅本艾特通信格式差很多

量了一下羅本艾特的通信方式。發現和史賓差異很大。
首先是載波頻率為36.3kHz。
Start bit為9ms,基本時間為3ms,也就是以333.3Hz為通信速度。
0 bit為3ms不發光接3ms發光。
1 bit為3ms不發光接6ms發光。
沒有結束信號。
所有通信以8 bits為一個命令。
停止命令為F0,其餘要一個一個查。
要合併遙控器是可以,但要二種發射狀態。
不過我對機構部分比較有興趣,本來就是買羅本艾特來拆的。
7#
 樓主| 發表於 2007-8-1 20:59:53 | 只看該作者

IR LED壞了

在試V2指令時就已燒壞,所以今天本來在準備發表的資料才發現不能動。還以為是程式改錯,抓了很久。最後換了LED才好,嚇了一跳。現在加上限流電阻,以免再發生燒壞現象。
8月4日要去展示一下成果了。
8#
 樓主| 發表於 2007-8-6 14:20:33 | 只看該作者

原來今年4月也有人做一樣的

在機器人自組DIY中也找到了有人做。還附電路圖。
只是我的電路比較起來要簡單多了,只用帶USB的8051,39.2kHz載波由8051自己生成,所以有機會使用命令方式改變載波頻率,這部分程式曾花了我不少時間讀IC資料。本來要做可切換史賓及羅本艾特的組合程式,但指令差太多且未查完。另外在發射功率上也要再調整,因羅本艾特的指令會產生較高功率,怕又會再燒掉,所以只好先暫停了。
9#
 樓主| 發表於 2007-8-6 14:52:06 | 只看該作者

USB遙控器只使用USB電源

有一點一直忘了提。我的遙控器只使用USB電力就可以運作了,這對展示上有很大的幫助。只要一台NoteBook就可以運作,也不用外部電源。只是目前使用的電路板並非專屬設計,所以板子大了些。
10#
 樓主| 發表於 2007-8-7 09:29:40 | 只看該作者

IR發射功率

剛做好的IR遙控器在驗證時,其發射能力很弱。除非正對才有作用。但史賓的遙控器在對天花板下命令仍能動作,這點我覺得驚訝(我沒做過遙控器)。後來發現史賓遙控器使用Pmos或PNP電晶體做為電源開關,就將原先使用NPN晶體驅動電路加裝PNP晶體來驅動,果然可以對天花板發射也可以收到。但要小心,發射時間太長,有可能燒掉。
11#
 樓主| 發表於 2007-8-8 17:55:57 | 只看該作者

USB 8051為Silicon Lab的C8051F340

使用此8051的好處是它具有USB界面,這很符合現在的設計驅勢。另外它也是很快速的8051,可以做高速中斷。我就是利用這個特性來做可調整頻率的載波。利用其內建PWM,利用程式調整PWM切換頻率達39.2kHz,再利用開關IO pin之特性來達成開關載波,就可以完全由軟體來控制載波頻率及發射信號。故可以做到送出想要的載波及信號。
另外此8051使用元件少,不需外接振盪器、USB傳輸IC即可運作。更重要的是有USB的8051程式碼及Windows下的程式碼,我就是將範例程式碼做少許修改,就可以從PC端下命令到8051。這樣對機器人研發方便不少。
12#
 樓主| 發表於 2007-8-9 23:50:59 | 只看該作者

開發工具及用途

Keil C:8051程式語言,主要是重組範例程式及編寫載波行為
Borland C:Windows 上DLL程式開發,主要是要產生DLL檔案給Forth語言用。也可以給VB用(未試)。
Win32Forth:可以產生單次程式呼叫,對於Try and Error試驗法特別有效。
示波器:看產生之載波狀況。
13#
 樓主| 發表於 2007-8-16 20:27:06 | 只看該作者

8月11日在符氏月會發表

因Forth同好有想推廣Forth語言,所以我去發表一下。
做機器人控制可以在Forth上開一個主題。也讓我有發揮機會。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-23 16:14 , Processed in 0.092358 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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