顯示具有 FPGA 標籤的文章。 顯示所有文章
顯示具有 FPGA 標籤的文章。 顯示所有文章

2009年6月18日 星期四

用念力來控制輪椅

看完了像「X戰警」這種電影,大家都會開始幻想自己有超能力。不必再幻想啦,自己開始當「X教授」吧...

1. 拿個NI CompactRIO
2. 寫 LabVIEW FPGA 程式。
3. 把 CompactRIO綁在輪椅上。
4. 坐上輪椅,用力想著「我要前進我要前進我要前進我要前進」

好啦,可能沒有這麼簡單,不過各位可以參考這些學生的作品,說不定你也可以用念力來控制飛機 ...

http://www.theaudeo.com

原始連結:
http://viroadshow.blogspot.com/2007/02/wheelchair-controlled-only-by-your.html


2009年6月9日 星期二

如何做一個客製化 I2C Sensor 的 CompactRIO 模組 (簡敘)

最近越來越多機器人都在用 CompactRIO 在做開發,而其實現在也有很多小型,低耗電的 sensor 都是用 I2C 的通訊方式在溝通。真可惜 NI 沒有在 CompactRIO 上做個現成的 I2C 界面啊!  不過還好因為 I2C 是個序列的通訊協定,只需要兩個訊號來做溝通 (Clock & Data),一般來講我們可以用 CompactRIO 的一些現成 DIO module,將兩條 digital line 定義為 I2C 的 clock 和 data 訊號,再用 LabVIEW FPGA 寫 I2C 的編碼解碼邏輯就可以了。

什麼?! 你沒有寫過 LabVIEW FPGA? 還好 NI 在網路上有些現成的 I2C 範例,可以讓我們直接放在 FPGA 上。請參考以下聯結:

I2C Implementation in LabVIEW FPGA

I2C Bus Communication Example Using LabVIEW FPGA

所以到時候這個架構會長的像這樣:

image

如果我們想把 I2C Sensor 直接做進一個 CompactRIO 的模組的話,這樣也可以。好處是,模組的殼能夠保護 sensor,而且未來如果其他人有同款 I2C sensor 的需求的話,或許這個模組可以商品化,幫他人節省時間和麻煩。

Clock & Data 這兩條訊號也可以從 CompactRIO 背板上直接定義,這樣一來 sensor 就可以 lay 在一個電路板上,然後放在一個空殼裡面。架構如下:

image

剛好最近 NI 也有個 CompactRIO 模組設計競賽,有興趣的朋友們要趕快報名參加哦!

NI 產品設計創業競賽

2009年6月8日 星期一

使用FPGA來產生PWM信號,為什麼0% duty cycle還是會有一段短的時間會有pulse?

 

又到了 LabVIEW FPGA Q&A 時間,這個現象我以前也會碰到,因為我拿 LabVIEW 的 PWM 範例直接下去 compile,但是 NI 給的 FPGA PWM 範例其實是可以再改善的。這是 Example Finder 所提供的範例:

image

這時候如果 duty cycle 是 0% 或 100% 的話, low pulse 或 high pulse 的值很有可能是 0,但是將 "0" feed 給 Loop Timer 的話,它很難真正給你停 0 秒,因為這個指令已經被下了,說什麼也要花幾個 tick 的時間。如果可以想辦法改一下的話,讓low pulse 或 high pulse等於0的時候直接送出 0V 或 5V,就不會有那個現象了。這裡有個範例給大家看看:

Example of modified FPGA PWM

還有,這邊再附上一個很方便的VI,讓我們從RT那邊幫我們算 high & low ticks 應該要多少,只要跟它講你要的 duty cycle以及PWM的頻率就好了。注意,此VI會假設FPGA那邊是用預設的40Mhz的timebase,假如你用其他的timebase,那可能這個VI還要在修改一下。用途如下:

image

Calculate PWM High and Low Ticks.vi