Arduino專題 : 偵測水位並透過GPRS遠端傳回資料庫

 一、目的與應用

在防災工程中,如何利用感測器測量橋梁下河面的高度以及江河面高度即時傳回端監控站作為災害評估。

 

二、所需零件

  • SSO0002 (eTape液面高度檢測器), 數量 : 3
  • MCR0016 (Arduino Uno Rev3),數量 : 1
  • DTI0027 (RS232 to TTL 介面轉換接頭),數量 : 2
  • GPRS 行動通訊模組, 數量 : 1 (洽詢本公司)
  • 耗材:
    • 麵包板,杜邦線,排針數個

 

三、動作說明

利用etape 液面壓力感測器的特性,我們將Arduino的analog read腳位接上三個etape感測器,將讀出的數值用RS232串列輸出,此時,橋接一台GPRS 行動通訊模組並事先安裝一張SIM卡(具有門號),以及在遠端機房架設一台可以上網的電腦,該電腦架設http server便可以透過網頁方式即時監看與讀取橋梁etape感測器所量得的水深高度值。

 

四、製作說明

將三個Etape(液面高度檢測器) 讀取到的數據搭配Arduino與TTL轉RS232模組,傳送給GPRS,再經由GPRS將該數據傳到網路上。

ea1

接到RS232轉接器的實體細部照片

ea2

接著,將etape sensor連接至載板,etape sensor本身的接頭沒有極性,因此,只要注意順序要對就好

再來,將GSM設備上的RXD的線(黃色線)和GND線(黑色線)連結至轉載板(如下圖)

ea3

分別將Arduino與GSM設備接上電源 如下圖

ea4

系統架設完成圖

ea5

在遠端網頁(google 瀏覽器)上看到的成果

ea6

 

 

五、程式說明

程式碼:
//Read etape value
int etape1=14; //分別將3個etape設定到A0,A1,A2
int etape2=15;
int etape3=16;
void setup(){ //初始設定
Serial.begin(9600); //設定串列阜傳輸的鮑率
pinMode(etape1,INPUT); //將A0,A1,A2腳位設定為輸入
pinMode(etape2,INPUT);
pinMode(etape3,INPUT);
}
void loop(){ //不斷重複執行
int a;
a=analogRead(etape1); //讀取etape1的值並將其透過Serial輸出
Serial.print(“A");
Serial.print(a,DEC);
a=analogRead(etape2);//讀取etape2的值並將其透過Serial輸出
Serial.print(“B");
Serial.print(a,DEC);
a=analogRead(etape3);//讀取etape3的值並將其透過Serial輸出
Serial.print(“C");
Serial.print(a,DEC);
delay(1000);
}

 

Read More

BS2專題 : 仿生互動蝙蝠

一、目的與應用

製作一個模仿蝙蝠於空中飛行時,利用本身的超音波,偵測前方物體距離的裝置。

 

二、所需零件

  • MCC0002 (Arduino 控制器), 數量 : 1
  • SSU0005 (PING 超音波距離感測器), 數量 : 1
  • CMZ0054 (XBee Explorer USB連接板(PlayRobot)),數量 : 2
  • CMZ0004 (XBee 1mW Wire Antenna通訊模組),數量 : 2
  • LED, 數量 : 7
  • 蜂鳴器,數量 : 1
  • 按鈕開關,數量 : 1
  • 電阻10K歐姆,數量 : 1
  • 耗材:
    • 杜邦線,排針數個

 

三、動作說明

利用超音波(Ping)偵測距離,配合BASIC Stamp的指令,便可以得到超音波資料,超音波距離在距離遠時伺服機擺動最快,距離中間時伺服機擺動中速,距離近時伺服機擺動低速,也就是當使用者接近超音波越接近時,翅膀動越慢。若按下預置的按鈕時,可切換到鋼琴模式,在這個模式下,可以利用超音波感測前方物體的距離變化,進而發出不同音頻的聲音。

 

四、製作說明

接線圖

bat-1

 

實體圖(因部分元件變更 僅供參考)

sIMG_6819-2sIMG_6821-2

 

 

五、程式說明

bat

 

六、文件下載

Read More

BS2專題 : 自製聲音放大電路

一、目的與應用

我們利用簡單的壓電蜂鳴器,再加上BS2產生的脈衝,便可以控制揚聲器發出不同音頻的聲音。本專題除了複習基本的音頻產生電路與程式外,再利用MOSFET晶體製作一個可以放大聲音的電路與程式。

二、所需零件

  • MCC0002 (Arduino 控制器), 數量: 1
  • 揚聲器(pizeo speake), 數量: 1
  • MOSFET IRF511 , 數量: 1
  • 耗材:
    • 杜邦線,排針數個

 

三、動作說明

接上電路,寫入BS2程式,利用裡面指令的頻率輸出,產生不同的聲音。

 

四、製作及程式說明

以下先複習一個簡單的揚聲器範例 接線如下

00101

基礎範例程式-1 如下 :

here :
high 0
low 0
goto here
(響一聲, 靜止)

基礎範例程式-2 如下 :

x var word
here :
for x=50 to 1
high 0
low 0
pause x
next
got here
(響50次聲音, 停下)


接著接一個MOSFET來增大音量 接線如下

00102

MOSFET 範例程式 如下 :

x var byte
here :
for x = 1 to 10
high 0
low 0
next
pause 500
goto here

或是你可以用FREQOUT產生音頻聲音

freqout 0, 1500, 500, 1000
pause 500
dtmfout 0,100,50,[5,5,5,1,2,1,2]  ‘這個指令可以產生多種聲音, […]裡面代表要發出的聲音
pause 500
freqout 0,3000,100,500
stop


進階方法 : 一般微控制器再產生音頻的時候,因為要不斷的送出脈衝,所以很可能無法"同時"處理其他的輸出/輸入,這時候,我們可以利用 555 timer (類似震盪器)來產生一個脈衝流。此時,P0這個腳位此時就只需要扮演觸發的功能,BS2仍然可以處理其他事情。 接線如下 :

00103

LM555 範例程式-1 如下 :

high 0
stop 0

LM555 範例程式-2 如下 :

here :
high 0
pause 500
low 0
pause 500
goto here

 

五、文件下載

Read More

BS2專題:祈福籤筒

一、目的與應用

利用BS2搭配語音模組板,當拉起籤條時會隨意撥放一首簽詩,也會順便觸發Relay(繼電器)讓110V電燈亮起。

 

二、所需零件

  • MCC0002 (Arduino 控制器),數量 : 1
  • 其它
    • 繼電器 LEG-5 , 數量: 9
    • 電晶體2N2222A , 數量: 9 ,
    • 二極體IN4001 , 數量: 9 ,
    • 電阻10KΩ , 數量: 1
    • 電阻220Ω , 數量: 1

 

三、動作說明

利用BS2搭配語音模組板,當拉起籤條時會隨機撥放一首簽詩,並且觸發繼電器讓電燈亮起。

Relay(繼電器)說明:

BS2利用I/O腳高低電位處發Relay動作,Relay (繼電器)有分常開(NO)與常閉(NC),我們接常閉(NO)。
COM是用高電位處發使Relay (繼電器)裡面的開關動作,切換到常開(NO)或常閉(NC)。

BSX0007-1
二極體與電晶體說明:

IN4001二極體在這是做保護2N2222電晶體。2N2222電晶體在這是做電流放大。
BSX0007-2

四、製作說明

  1. 將Relay (繼電器)接至110V燈泡
  2. 按壓開關測試語音板是否有動作
  3. 將Relay (繼電器)與語音板連接
  4. 按壓開關測試Relay (繼電器)是否有動作
  5. Relay (繼電器)接上BS2板上
  6. 將程式燒錄BS2板內
  7. 焊接Relay (繼電器)腳位
  8. 看電路圖接BS2接線
  9. 測試語音板是否正確播放
  10. 錄製語音板
  11. 先準備材料

 

  • 錄音操作方式
    • 將MIC與/短路。
    • 把/與REC短路。
    • 壓住AN#鍵不放即開始錄音,LED亮起,對麥克風說話, 鬆鍵時一段錄音結束, LED滅。
    • 在壓住AN#鍵即錄第二段,如此錄音、分段,直到語音IC錄滿自動停止。
    • 全部錄音完畢時,按STOP鍵(LED亮),使語音段回到最前面。

BSX0007-3

 

  • 放音操作方式
    • 將PLAY與/短路。
    • 當按壓AN#鍵即開始播放,播放時LED亮起,放音結束時 LED滅。

BSX0007-4

  • 籤詩
    吉人相遇本和同,況有持謀天水翁,人力不勞公論協,事成功倍笑談中。
    羨君兄弟好名聲,只管謙撝莫自矜,單詔槐黃相逼近,巍巍科甲兩同登。
    巍巍獨步向雲間,玉殿千官第一班,富貴榮華天付汝,福如東海壽如山。
    嗟子從來未得時,今年星運頗相宜,營求動作都如意,和合婚姻誕貴兒。
    望渠消息尚長安,常把菱花仔細看,見說文書將入境,今朝喜色上眉端。
    君今百事且隨緣,水到渠成聽自然,莫嘆年來不如意,喜逢新運稱心田。
    彼亦儔中一輩賢,勸君持達與周旋,此時賓主歡相會,他日王侯卻並肩。
    碧玉池中開白蓮,莊嚴色相自天然,生來骨格超凡俗,正是人間第一仙。

 

  • 電路圖

BSX0007-5

 

實體接線圖

BSX0007-9

 

 

實體完成圖

BSX0007-8

 

五、程式說明

請自行參考範例程式內容

 

六、文件下載

 

Read More

BS2專題:運動員專用測量壓力的手套

一、目的與應用

當運動員如棒球投手在練習握球時,設計一種手套裝有壓力感測器,讓運動員帶上該感壓手套並握著棒球,可以讀出各點的壓力值,進而輔助球員正確的姿勢。

二、所需零件

  • 控制器2選1
    MCC0002 (Arduino 控制器),數量:1
    EDE0018 (BASIC stamp微控制器教育套件(USB)),數量 : 1
  • SSO0016 (Memory Stick Datalogger 資料儲存模組) , 數量 : 1
  • 其它:
    • ADC0834  數量 : 2
    • 玻璃纖維萬用板(洞洞板) 數量 : 1
    • 排針(1條40P) 數量 : 1
    • 杜邦線 數量 : 22條

 

三、動作說明

我們可分別利用有線方式(RS232)與無線方式(藍芽)來讀取壓力感測器的數值並做分析,利用免費的資料分析軟體StampPlot監看感壓sensor的力量曲線的變化。或是藉由隨身碟組成的的資料儲存器(data logger)將資料存在隨身碟中,等動作記錄完後,利用電腦的Excel來分析。

 

四、製作說明

無DataLogger模組電路圖(使用StampPlot)
pressure1

 

有DataLogger模組電路圖

pressure2

 

實體完成圖

SNV36199-1

 

實體操作圖

SNV36201-2

 

 

五、程式說明

請自行參考程式內容

 

六、文件下載

Read More

BS2專題 : [節能]控制庭院的110V的照明燈

一、目的與應用

利用光敏電阻(Cds)感應戶外的光線強度, 進而控制自己庭院的110V AC的照明燈, 達成節能減碳與環保的目的 。

 

二、所需零件

  • 控制器 2選1
    MCC0002 (Arduino 控制器), 數量:1
    EDE0018 (BASIC stamp微控制器教育套件(USB)) ,數量 : 1
  • SSR固態繼電器,數量:1
  • 光敏電阻,數量:1

 

三、動作說明

利用BS2讀取光敏電阻對環境光的感應值,進一步設定你想要做動的光感應值,將這個值寫入你的BS2程式中,就可以控制電燈何時打開與關閉。

 

四、製作說明

首先,接好光敏電阻,如下

cds1

鍵入以下BS2程式 :
‘ {$STAMP BS2}
‘ {$PBASIC 2.5}
time VAR Word
DO
HIGH 2
PAUSE 100
RCTIME 2, 1, time ‘這個指令是BS2用來處理類比轉數位的最好方法,time這個值就是對應cds的感應數值
DEBUG HOME, “time = “, DEC5 time
LOOP
以上, 可以先測試你的BS2是否可以正常與光敏電阻運作。

註 : 相關上述詳盡資料, 請參考 “何謂微處理器"一書的第七章

接著請你接上SSR與電燈, 如下:

cds2

註 : 上述電路,使用時要注意只能對電流較低的電器,若是你使用高電流的電器如冷氣、冰箱等,請參考下面的圖 :

cds3

加上以下程式 :
‘ {$STAMP BS2}
‘ {$PBASIC 2.5}
time VAR Word
LOW 0 ‘ Pin0等於LOW, SSR不會導通, 電燈是暗的
DO
HIGH 2
PAUSE 100
RCTIME 2, 1, time ‘這個指令是BS2用來處理類比轉數位的最好方法,time這個值就是對應cds的感應數值
DEBUG HOME, “time = “, DEC5 time
IF time = 120 THEN
HIGH 0 ‘ Pin0 等於HIGH時, SSR就會導通, 110V電源就會輸入電燈
ENDIF
LOOP

 

五、參考資料

What’s a Microcontroller v2.2 (.pdf) , (WAM 何謂微處理器中文版手冊, 請點擊下載)

 

六、文件下載

Read More

BS2專題 : 用Processing製作螢幕動畫與BB車互動

一、目的與應用

利用非常好用且免費的多媒體互動軟體Processing設計一個人機視窗(GUI),透過滑鼠控制GUI的圖案進而控制你的BB車(Boe-Bot car)。Processing 可以幫助我們在影像處理(Images), 互動(Interaction) 與動畫(Animation)。

 

二、所需零件

  • ROW0020 (BB-CAR全方位自走車),數量:1

 

三、動作說明

利用Processing繪製出的GUI,透過滑鼠控制BB車。

 

四、製作說明

  1. 先下載你的Processing軟體喔 http://processing.org/download
  2. 測試Processing 與BASIC Stamp的串列通訊

 

五、程式說明

以下範例程式是測試你的BS2與Processing是否可以通訊 , 可至下載區下載完整程式 :
若是可以,你的Processing畫面中會有一個方框會黑/白一直變色。 主要原因,你的BS2會一直送出 0, 1兩個整數給Procesisng。

BSX0004-2

BS2相對應的寫法 :

‘ {$STAMP BS2}
‘ {$PBASIC 2.5}
DO
SEROUT 16,16468,[0] ‘ BS2透過Pin16並以9600bps速度, 送出整數0
PAUSE 1000
SEROUT 16,16468,[1] ‘ BS2透過Pin16並以9600bps速度, 送出整數1
PAUSE 1000
LOOP

再來該進行我們的GUI設計了 !

BSX0004-3

再來,編輯BB車的程式如下 :

‘ {$STAMP BS2}
‘ {$PBASIC 2.5}
CmdData VAR Byte ‘接受指令
pos VAR Word ‘馬達轉速
DO
SERIN 16,16468,[CmdData] ‘接受RS232指令鮑率:9600->
pos = 750+((cmddata-100)*2) ‘調整BB車速度接受的區間
PULSOUT 12, pos
PAUSE 80
PULSOUT 13, pos
PAUSE 40
LOOP

~ 大功告成,你可以由螢幕上去控制你的BB車了

 

六、文件下載

Read More

BS2專題 : 自動撥放多種歌曲的音樂盒

一、目的與應用

隨著聖誕節到來,讓我們自己製作可以撥放5種不同聖誕歌曲的裝置,並且用LED顯示每個音符。我們用BASIC Stamp控制器搭配我們的5段切換開關(5-Position Switch),當你每次按下開關後BASIC Stamp就會撥放不同的歌曲,並且透過LED顯示歌曲中的每個音符 。

 

二、所需零件

  • MCC0002 (Arduino 控制器), 數量 : 1
  • DTC0118 (Parallax 5段開關模組),數量:1

 

三、動作說明

 

四、製作說明

請按照以下電路圖配置

Schematics

 

電路實體完成圖

bsx0003-s1

 

五、程式說明

測試電路

一但接線完成後, 根據下面的測試程式 TestCarolingDevice.bs2 , 並且確認會有下面的動作, 這樣, 才不會待會執行完整程式時, 浪費許多時間去修改程式。

√   所有LED都會亮

√   蜂鳴器會發出聲音

√   所有5段開端, 都會顯示在 Debug Terminal上(up, down, left, right, and pressed)

‘ TestCarolingDevice.bs2

‘ Tests that the Caroling Device is wired correctly.

 

‘ {$STAMP BS2}

‘ {$PBASIC 2.5}

 

HIGH 15                       ‘ Turn on all LEDs

HIGH 14

HIGH 13

HIGH 12

HIGH 11

 

FREQOUT 8, 2000, 3000         ‘ Play a tone

 

DEBUG CLS,                    ‘ Display directional graph

"            “, CR,

"     |      “, CR,

"   –   –    “, CR,

"     |      “, CR

 

‘ Display which direction is pressed on the 5-Position Switch

DO

IF (IN0 = 0) THENDEBUGCRSRXY, 2, 2, “<“ELSEDEBUGCRSRXY, 2, 2, " "

IF (IN1 = 0) THENDEBUGCRSRXY, 5, 4, “v"ELSEDEBUGCRSRXY, 5, 4, " "

IF (IN2 = 0) THENDEBUGCRSRXY, 8, 2, “>"ELSEDEBUGCRSRXY, 8, 2, " "

IF (IN3 = 0) THENDEBUGCRSRXY, 5, 2, “o"ELSEDEBUGCRSRXY, 5, 2, " "

IF (IN4 = 0) THENDEBUGCRSRXY, 5, 0, “^"ELSEDEBUGCRSRXY, 5, 0, " "

PAUSE 20

LOOP

選擇你的曲調

現在已經確認你的基本電路是OK的,該是選擇你要撥放的歌曲並且製作進入BASIC Stamp裡面。這裡我們利用5段開關,選擇四首歌曲並利用第五段開關關閉每首歌曲。我們選擇了耳熟能詳的的四首歌分別是 We Wish You a Merry ChristmasJingle BellsDeck the Halls and O Christmas Tree 接下來我們必須將這四首歌寫成程式並且放在四個不同的程式段。請參考程式下載

下方是利用五段開關,所寫的程式變換

DO

IF (IN0 = 0) THEN

GOSUB Deck_The_Halls

ELSEIF (IN1 = 0) THEN

GOSUB Jingle_Bells

ELSEIF (IN2 = 0) THEN

GOSUB Merry_Christmas

ELSEIF (IN4 = 0) THEN

GOSUB Christmas_Tree

ELSE

PAUSE 20

ENDIF

LOOP

為了節省EEPROM的空間,利用LOOKUP and LOOKDOWN指令去決定頻率
Get_Frequency:

LOOKDOWN noteLetter, [ “C", “d", “D", “e", “E",

“F", “g", “G", “a", “A",

“b", “B", “R", “Q"     ], offset

 

LOOKUP offset,        [ 4186, 4435, 4699, 4978, 5274,

5588, 5920, 6272, 6645, 7040,

7459, 7902,    0,    0     ], noteFreq

RETURN

 

六、文件下載:

Read More

BS2專題 : 避免閱讀時打瞌睡的智慧桌墊

一、目的與應用

這個專題是設計一個桌墊,可以放在書桌上,當你閱讀疲勞拍在桌上不知不覺睡著時,這個聰明桌墊會發出警示聲,提醒你不要睡著喔 ! 同時,我們還精心設計一個程式,避免重物壓在桌上時也會發出警告聲而造成誤動作。

二、所需零件

  • MCC0002 (Arduino 控制器),數量 : 1
  • SSF0012 (FS-101 25 lb 壓力感測器), 數量 : 4

 

三、動作說明

  1. 將壓克力夾板製作的桌墊裝置放在桌面上。
  2. 一般人的重量趴在桌墊上,時間計時到後,警報器發出警示聲
  3. 同時,利用按鈕切換,可以避免當將書本等重物放在桌上時,會造成桌墊誤認為是主人的重量而造成誤動作。
  4. 完成圖如下

sleep3

 

四、製作說明

按照以下電路接線,將HWboard接上四個壓力感測器並在適當位置安裝即可。

asleep

 

五、程式說明

SBX0001

 

六、文件下載

Read More