用寫好的micro-controller 和 用pc做control 有什麼大不同?

2006-12-05 12:57 am
我之前買了本講用pic的micro-controller 做機械人的書...都幾得意~ 但我覺得限制很大.....所有東西都由個粒micro-controller做....其實像看卡通一樣的用一台真正的電腦去接收sensor 的資料,再用回在電腦上所寫的program去做控制 / 手動在program中做控制係咪比單單用micro-controller 難呢?
在反應時間上那個方法會比較快呢?

用電腦控制咪可以令個program做到更難的運算囉?

咁接PC做野係咪都一樣要有controller搞返d 控制摩打呢?

還是可以用電腦直接做到?

通常會用什麼東西接的?
更新1:

如果用linux,自己改kernel接...不用window會不會好d呢?

更新2:

應該會用servo motor的....但在想...有冇其他比servo motor更好的選擇....或許除左用servo motor外..還會同時用其他的東西..

更新3:

Return Result/ Real Time feed back ..........給你講到了...我還想用個database儲d data用來給program 做分析再出result...所以我諗單單用單晶片應該做不到吧....

回答 (2)

2006-12-05 6:50 am
✔ 最佳答案
1. 其實像看卡通一樣的用一台真正的電腦去接收sensor 的資料,再用回在電腦上所寫的program去做控制 / 手動在program中做控制係咪比單單用micro-controller 難呢?
如果是十分簡單的系統, 直接用電腦控制是可行, 筆者曾經試過用電腦的parallel port(訊號電平是0V - 5V)來控制1塊2*16characters的LCD module. 但於稍為複雜的要求, 例如輸入輸出的level, 輸入輸出是analog或digital, 訊號的timing要求等等, 單是利用com port或者parallel port是不能直接應付的.

2. 用電腦控制咪可以令個program做到更難的運算囉?
電腦的CPU的確比PIC之類的微控制器powerful得多. 所以如果需要一些數學運算, 大可以交俾佢做. 但是去到機械手腳的直接控制, 很多時候需要很準確的timing, 例如pulse width, 用microcontroller 就可以做得有效得多. 尤其是現今的電腦, OS通常是Windows的, CPU的工作大多是"time sharing", 因此要即時及準確控制機械人, 實在難以做到的.

3. 咁接PC做野係咪都一樣要有controller搞返d 控制摩打呢?還是可以用電腦直接做到?
基於上述原因, 用microcontroller來控制機械人是比較穩妥的.

4. 通常會用什麼東西接的?
於microcontroller線路板上, 加一粒叫MAX232的IC(如果該microcontroller 是5V I/O). MAX232是作為電腦COM port和microcontroller 的 UART的interface. 只要在電腦行的program把COM port設定好, 加上microcontroller 的firmware, 再用一條COM port交叉cable將PC與microcontroller連接, 就可以控制裕如. 當然這些program, firmware及hardware, 就要靠自己設計了.

2006-12-05 00:46:03 補充:
我未用過linux. 不過道理都是一樣的. 請問個摩打是否servo motor? 若果是的話, 就應該要microcontroller, 這是因為servo motor需要不停輸入準確pulse width的訊號, 否則不能固定於一個位置. 一部PC除非什麼都不做, 包括進入系統, 否則難以長期作出不停準確的輸出,
2006-12-07 11:31 pm
用PIC/8051果d最簡單既理由係可以大量生產, 而且體積細過PC, 控制其他電子硬件都有較大既彈性

用電腦進行操控其實都要用到Micro-Controller,唔通你開個Serial Port淨係為左連個Motor轉下轉下咁咩...當然係你電腦指令已經Programm左既Micro-Controller成品啦(其實好多PC HardWare都用到PIC/8051 好似CDROM, Sound Card咁)

比起反應時間,通訊時間係更重要,一個MCU一般都可以行到24MHz
但係用Serial同電腦通常既時間遠比呢個慢(Serial 對 8051 一般都係 9600 bit per second)
所以指令部份係MCU上會更好,如無必要都唔好同PC連(Return Result/ Real Time feed back就冇得好講la)
同時依家既Motor多數都係數位步進(控制1/0既時間控制速度)
比Micro Controller 去控制始終準確d(通訊時間限制)

可以用電腦直接控制任何硬件,但係你就要寫Driver,咁我寧可寫一個比MCU用

而且控制硬件對運算同速度/資訊要求比較低
所以用InXel/AMX 等 CPU 控制實在大材少用


收錄日期: 2021-04-30 22:11:33
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20061204000051KK02126

檢視 Wayback Machine 備份