陳世鷗
在組織高中通用技術課程中的電子控制技術模塊教學時,由于該課程的實踐性很強,需要理論聯(lián)系實際,傳統(tǒng)的“灌輸式”教學方法顯然已無法滿足學生學習的需求,這就需要教師結合現(xiàn)代電子、電氣技術的發(fā)展,適當充實教學內(nèi)容、變革教學手段。
一、Arduino平臺簡介
眾所周知,Arduino是一款便捷靈活、方便上手的開源平臺,包含硬件(各種型號的Arduino板)和軟件(ArduinoIDE),常用于電子電路的開發(fā)。開發(fā)者使用ArduinoIDE編寫出的程序簡明高效,可讀性與兼容性俱佳。且由于開源平臺的開放性,有數(shù)以萬計的專業(yè)工程師或電子愛好者都在Arduino平臺上開發(fā)電子產(chǎn)品,使得Arduino開發(fā)逐漸成為當今互聯(lián)網(wǎng)、物聯(lián)網(wǎng)時代的一種趨勢。
Arduino使用類似Java、C語言的Processing/Wiring搭建開發(fā)環(huán)境,在IDE中將編寫好的程序編譯成二進制文件,上傳寫入微控制器以告訴電路板接下來要做什么。在前端使用各類傳感器采樣感知外部環(huán)境,經(jīng)過一系列判斷、控制后,最終輸出至LED燈、馬達或其他裝置,控制其狀態(tài)發(fā)生變化。簡單的數(shù)行代碼加上必要的擴展元件,就能夠實現(xiàn)各種各樣的電子設備(比如循跡機器人、智能澆花裝置、無人機等)。
二、在高中階段嘗試應用Arduino平臺進行初步開發(fā)
高中生已經(jīng)具備了基本的邏輯推理能力,經(jīng)過信息技術學科相應模塊的學習,也有了初步的編程能力,在經(jīng)過必要的學習后就可以編寫出Arduino程序。在具體的任務情境中,可以先用Arduino軟件進行邏輯實現(xiàn),調(diào)試并模擬仿真,再結合面包板快速搭接電路實現(xiàn)控制目的。在這個過程中,學生變身為工程師,通過軟、硬件知識的相互印證,體驗到了現(xiàn)代電子開發(fā)的完整流程。
例如,設計一個能安裝到機器人上的火焰報警器,當檢測到火焰后通過蜂鳴器報警。其設計思路是:軟件下達開始指令后,傳感器采集紅外信號并將其轉化為變化的電流信號。當檢測到的數(shù)據(jù)低于設定的閾值,控制器判定為附近有火焰,蜂鳴器開始報警。
將硬件部分連接好(蜂鳴器模塊和火焰?zhèn)鞲衅鞣謩e連接到UNO板上的數(shù)字口8和模擬口0),并用螺釘固定到機器人擴展支架上,然后在ArduinoIDE中寫入并調(diào)試以下代碼:
//項目-火焰報警器
float sinVal;
int toneVal;
void setup(){
pinMode(8, OUTPUT); //蜂鳴器引腳設置
Serial.begin(9600); //設置波特率為9600 bps
}
void loop(){
int sensorValue = analogRead(0);//火焰?zhèn)鞲衅鬟B到模擬口,并從模擬口讀值
Serial.println(sensorValue);
delay(1);
if(sensorValue<1023){// 如果數(shù)據(jù)小于1023,說明有火源,蜂鳴器響
for(int x=0; x<180; x++){
//將sin函數(shù)角度轉化為弧度
sinVal=(sin(x*(3.1412/180)));
//用sin函數(shù)值產(chǎn)生聲音的頻率
toneVal=2000+(int(sinVal*1000));
//給引腳8一個
tone(8,toneVal);
delay(2);
}
}
else{// 如果數(shù)據(jù)大于等于1023,沒有火源,關閉蜂鳴器
noTone(8); //關閉蜂鳴器
}
}
編輯 李建軍