我們在溫州中學、溫州中學新疆部和溫州實驗中學分別開設了Arduino的課程,因為溫州中學本部是高一的學生,編程基礎相對好些,我們選用的是arduino文本式的編程環境,新疆部因為有預科的學生在內,編程基礎相對薄弱一些,所以和溫州實驗中學(初一學生)一樣,我們選用了圖形式的積木化編程環境——ArduBlock。
專題一“認識機器人,點亮LED”是Arduino的第一課,我們每專題都采用兩個課時,讓學生有足夠的實踐時間。因為是第一課,我們必須要介紹機器人的基礎知識,如機器人的結構組成和基本原理。還需要掌握Arduino的驅動安裝過程以及編程環境的熟悉。
相關資源下載地址:http://pan.baidu.com/s/1kTqOYs3
本篇主要對本次課的重難點、主要教學設計的設計意圖以及學生上課的反應做部分說明。
1.板子的介紹
在這個部分,我們引導學生打開自己的工具盒,拿出arduino板子,在板子上找到相應的數字口和模擬口,在這個過程中,重點是讓學生找到板子上接地,接vcc和信號口的順序,為下面的點亮LED燈做鋪墊。在這個過程中,學生的注意力容易被arduino板子所吸引,教學效果很好。
2.Arduino驅動的安裝
在引導學生安裝驅動的時候,要讓學生通過設備管理器找到自己裝的端口是多少,等學生裝完后打開arduino編程環境界面時,注意提醒他們在工具——端口中進行設置,使得其與之前裝好的通信端口一致。在這個過程中,有些同學沒有認真聽講,直接導致后面在點亮led編程時,程序運行錯誤。
3.做一個閃爍的LED燈
在這個過程中,教師最開始需要特別提醒的是線的接法。LED燈模塊有三個引腳,一般情況黑線接地,紅線接5V,第三根線接數字口。很多學生在教師演示的時候沒有認真聽講,接線的時候沒有意識到線的次序,所以后面自己做的時候出現了問題。
4、點亮led燈的代碼編寫
在學生自己點亮led燈的時候,很多同學直接用了老師給的代碼,沒有把其中的引腳換成自己接的那一個,所以燈不亮。“pinMode(4,OUTPUT);//LED燈接數字口4”這個語句中的“4”表示接的是數字口4號引腳。學生在自己實驗的過程中,要注意提醒他們,把這里的“4”改為自己接在板子上的數字引腳號。
5.擴展任務:交通燈
在這個過程中,很多學生在前面的基礎上,成功地完成了交通燈的制作,舉一反三的能力也比較好,有一些創意性的設計出現。
比如說我們在課堂上發現有些學生編的程序如下:
void setup()
{
pinMode( 5 , OUTPUT);
pinMode( 8 , OUTPUT);
pinMode( 11 , OUTPUT);
}
void loop()
{
digitalWrite( 5 , HIGH );
delay( 1000 );
digitalWrite( 5 , LOW );
delay( 1000 );
digitalWrite( 5 , HIGH );
digitalWrite( 8 , HIGH );
delay( 1000 );
digitalWrite( 5 , LOW );
digitalWrite( 8 , LOW );
delay( 1000 );
digitalWrite( 5 , HIGH );
digitalWrite( 8 , HIGH );
digitalWrite( 11 , HIGH );
delay( 1000 );
digitalWrite( 5 , LOW );
digitalWrite( 8 , LOW );
digitalWrite( 11 , LOW );
delay( 1000 );
}
代碼看起來很復雜,但是學生說聽懂了以后進行一些變式還是比較簡單的,而且看著自己做的三個小燈,先是一個小燈亮了滅掉,然后是兩個小燈一起亮了再滅掉,最后是三個小燈一起亮了再滅掉,很有成就感,也覺得很有意思。從這個角度看,我們本次課的教學目標應該完成的不錯。最后附上學生完成的作品圖片一張。