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

2021年5月16日 星期日

TI Launchpad MSP430 with PIR(紅外線感應器)

緣起:
最近聽到有人的辦公室座位坐在靠走道人來人往,隱私被看光光,所以想研究能夠偵測有人靠近的"紅外線感應器(PIR)",將心得寫成此篇blog.本篇blog有不足之處,日後補上,轉貼或引用本篇文章, 不必交代出處!

系統架構: 
MSP430+PIR當偵測到有人靠近就送出一個字元資料'@'透過rs232傳輸到個人電腦PC端, PC端寫一個專門接收rs232(COM3)訊號的程式(ezPIR),當ezPIR程式收到rs232介面傳過來的資料, 馬上模擬鍵盤向作業系統送出一個"視窗鍵+D(將所有工作視窗縮小並顯示桌面)", 網購的PIR型號AM312如下:

所有程式碼下載連結:
https://drive.google.com/file/d/1FKPrjo4tR3qEZACkTcZNQEiyiAl1ANcX/view?usp=sharing


2014年11月16日 星期日

9軸感應器第二彈_重力感應器ADXL345

前言:
日前從網路上購得9軸感應器GY-80, 搭配TI MSP430 Launchpad寫有關重力加速度計ADXL345程式下去實測. 若有不周,歡迎批評指教,缺漏的部份日後會慢慢補上. 轉貼或引用本篇blog內文章段落, 不必交代出處.程式碼的部分是參考網路上arduino的程式改寫成適合MSP430跑的程式,用CCSv6編譯而成,所以相關著作權法律的問題請注意一下!

說明:
高中物理教的靜止狀態下_重力加速度約1g, GY-80板子背後標示X-Y-Z軸方向就是ADXL345的X-Y-Z軸的方向. 加速計能測各種使板子產生加速度的力,含靜止時只受重力. 等下介紹靜止狀態下, 3軸各別只有單一軸受到重力量到的值, 板子測法跟上一篇介紹的一樣.

本板使用i2c通訊:
Vcc(3.3V接launchpad的pin1),
GND(接launchpad的pinpin20 GND),
SCL(接launchpad的P1.6),
SDA(接launchpad的P1.7).

讀值採16bit的2的補數, 程式中直接將X軸,Y軸,Z軸讀值16bit每個bit都秀在HW uart(9600bps)那邊,1分鐘讀一次, 16bit的數值(單位:LSB)依2的補數還原成10進位的數字(不會算的可以用小算盤來算)後還要乘上4mg/LSB(單位:毫g,10的負三次方g),實際測試數據如下:

只有z軸受力(單位:g,所以正常值應該接近1):
1111111111101011         1111111111110010                 00000000 11011000
x                                       y(-14*4/1000=-0.056g)            z(216*4/1000=0.864g)
----------------------------------------------------------------------------------------
只有y軸受力(單位:g,所以正常值應該接近1):
0000000000000010         0000000011110100                 1111111111011000
x                                       y(244*4/1000=0.976g)            z(-40*4/1000=-0.16g) 
----------------------------------------------------------------------------------------
只有x軸受力(單位:g,所以正常值應該接近1):
0000000100000000         1111111111101000                 1111111111100111
x(256*4/1000=1.024g)    y(-24*4/1000=-0.096g)           z

所有程式碼下載連結:
https://drive.google.com/file/d/0B6EVEd5P2B9ceHdYSGZYMkF4dkU/view?usp=sharing

2014年7月20日 星期日

TI Launchpad with Gameduino之牛刀小試

前言:
近日聽到有人提到需要一個rfid讀卡機+PC螢幕(秀一些資訊)+網路功能, 也想來自己做一個, 在此先想到秀螢幕這部分需求的一個solution, 其他功能的solution日後補上, 若有不周,歡迎批評指教,缺漏的部份日後會慢慢補上. 轉貼或引用本篇blog內文章段落, 不必交代出處.不過程式碼的部分是拿TI板子出廠前preload的demo src code並參考外國網站(google搜尋:launchpad gameduino)而做修改的,所以相關著作權法律的問題請注意一下!

過程:
8051想要接大大的電腦螢幕或液晶電視,不想接陽春LCM模組/LED跑馬燈/七段顯示器/7吋平板電腦/7吋觸控螢幕,又不想花大錢買ARM等級的晶片+linux或DVR板子,該怎麼辦?
survey的結果發現比較便宜的3種解法:
1.'gameduino',
2.picaso uVGA-III(功能更多,價錢更貴),
3.google搜尋8051 vga,照網友提供的做法diy(省更多錢但更費功夫),

這邊我採用的是1.'gameduino':
8051我是用TI launchpad(基本款),然後接gameduino,接法如下表:
p.s.下表所列英文字都是印在板子上的英文字)
 launchpad                gameduino
--------------------------------------------
VCC                         3.3V,+5V
GND                         GND(有三處)
P2.0(CS)                   9(CS)
P1.5(CLK)                13(CLK)
P1.6(LED2)_MISO  12(MISO)
P1.7(MOSI)              11(MOSI)

接線圖:
 
 
 

程式修改的部分:
1.原本出廠板子上會插msp430g2553的IC,裡頭已經預先燒錄程式在裡頭,插上PC端的USB孔,
通電後就會red,green兩個led輪流亮,按下P1.3的按鍵後進入"量溫度模式",量出的溫度是攝氏,
改成華氏,

2.preload程式採用SW UART跟gameduino的SPI介面共用一些launchpad系統資源,導致SW UART失效,所以先將此部分code mark掉,改用gameduino來秀溫度在螢幕畫面上.

3.量出的溫度為兩位數,十位數字跟個位數字分別轉成ascii秀在螢幕畫面上!

成果圖:

所有程式碼下載連結:
https://drive.google.com/file/d/0B6EVEd5P2B9cQk1nWmh6R2t3a1E/edit?usp=sharing

8/3/2014 update:
經過修改launchpad preload程式的SMCLK_16MHz,除頻為4後, 再將PC端uart設定由原來的2400bps->9600bps,就可以在成果圖看到正確的結果, 另外一端PC端超級終端機也可以看到正確的溫度顯示!

所有程式碼下載連結:
https://drive.google.com/file/d/0B6EVEd5P2B9cSjBXRmxpQ2FJU00/edit?usp=sharing