2014年12月13日 星期六
從AppInventor2開發產品中,體驗智慧財產的重要
學校自這個學期開始授課App Inventor課程之後,學生普遍的反應還算不錯。
過去國三的電腦課程,通常是上Visual Baic,但對於初次接觸程式設計的孩子來說,一堆抽象的文字語言,數字與字串,或者是運算子,甚至是迴圈的應用,條件式的判斷....光是這些就足以讓孩子們失去學習的信心。
這個學期開始之前,鄭博全老師找我一起商討對於國三學生的課程時談到AppInventor課程,打算在學期中授課,當下我對於這一套軟體並不陌生,因為過去在設計機器人nxt設計時,在進行藍芽連線時,就已經開始使用App Inventor這個軟體作為手機與機器之間的溝通橋樑。
在開始授課的時候,孩子們開始學習圖形化程式設計的操作,崁入式的程式碼建構,相較於傳統的文字程式來說,是淺顯而易懂的。雖然在剛開始還是會排斥著,然而在經過一段時間的學習後,孩子們慢慢地能夠習慣操作,並能慢慢地能夠自己產生一個簡易的軟體。
這個建構的過程並不簡單,因為從零學起,從排斥到接納,雖然是半強迫式的學習,但也消弭了對程式設計的恐懼感。從程式設計中,孩子們除了培養靈活的邏輯設計觀念之外,更從中體驗到:原來開發一個程式軟體,竟是相當不簡單!
一個手機遊戲軟體,人人取得容易。然而一個軟體的生命週期,從玩家對於軟體的精緻程度,將決定喜好的程度。 因此,在建構一個軟體的過程,不斷修飾程式的外觀之外,對於程式的內涵(程式碼)的功能強度,更是考驗一個程式設計者的智慧。
我們從課程中,最後希望帶給孩子們的是:認真看待智慧財產權。在一個產品開發的階段,是如此耗費工夫(時間)的,為了讓產品能永續成長,智慧財產是不容許被侵害的,因為從設計的過程中,既然如此辛苦,就更能體會其他開發產品的原設計者,當時對這個商品的努力程度。
過去國三的電腦課程,通常是上Visual Baic,但對於初次接觸程式設計的孩子來說,一堆抽象的文字語言,數字與字串,或者是運算子,甚至是迴圈的應用,條件式的判斷....光是這些就足以讓孩子們失去學習的信心。
這個學期開始之前,鄭博全老師找我一起商討對於國三學生的課程時談到AppInventor課程,打算在學期中授課,當下我對於這一套軟體並不陌生,因為過去在設計機器人nxt設計時,在進行藍芽連線時,就已經開始使用App Inventor這個軟體作為手機與機器之間的溝通橋樑。
在開始授課的時候,孩子們開始學習圖形化程式設計的操作,崁入式的程式碼建構,相較於傳統的文字程式來說,是淺顯而易懂的。雖然在剛開始還是會排斥著,然而在經過一段時間的學習後,孩子們慢慢地能夠習慣操作,並能慢慢地能夠自己產生一個簡易的軟體。
這個建構的過程並不簡單,因為從零學起,從排斥到接納,雖然是半強迫式的學習,但也消弭了對程式設計的恐懼感。從程式設計中,孩子們除了培養靈活的邏輯設計觀念之外,更從中體驗到:原來開發一個程式軟體,竟是相當不簡單!
一個手機遊戲軟體,人人取得容易。然而一個軟體的生命週期,從玩家對於軟體的精緻程度,將決定喜好的程度。 因此,在建構一個軟體的過程,不斷修飾程式的外觀之外,對於程式的內涵(程式碼)的功能強度,更是考驗一個程式設計者的智慧。
我們從課程中,最後希望帶給孩子們的是:認真看待智慧財產權。在一個產品開發的階段,是如此耗費工夫(時間)的,為了讓產品能永續成長,智慧財產是不容許被侵害的,因為從設計的過程中,既然如此辛苦,就更能體會其他開發產品的原設計者,當時對這個商品的努力程度。
2014年12月12日 星期五
利用matlab,一秒鐘讀取一筆資料
影片結果:https://www.youtube.com/watch?v=JZhv-OIad-8&feature=youtu.be
程式碼:
clear all
clc
data=[100 90 80 60 80 90 75 70 80 100];
n=size(data,2);
sum=0;
average_value=0;
for i=1 :10
if i==1
max_value=data(i);
min_value=data(i);
end
sum=sum + data(i);
if data(i)>max_value
max_value= data(i);
end
if data(i) min_value=data(i);
end
fprintf('第%d筆資料=%d,讀取完畢\n',i,data(i))
pause(1);
end
fprintf('-------------\n')
average_value=sum/n;
fprintf('平均值=%3.2f\n',average_value)
fprintf('最大值=%d\n',max_value)
fprintf('最大值=%d\n',min_value)
程式碼:
clear all
clc
data=[100 90 80 60 80 90 75 70 80 100];
n=size(data,2);
sum=0;
average_value=0;
for i=1 :10
if i==1
max_value=data(i);
min_value=data(i);
end
sum=sum + data(i);
if data(i)>max_value
max_value= data(i);
end
if data(i)
end
fprintf('第%d筆資料=%d,讀取完畢\n',i,data(i))
pause(1);
end
fprintf('-------------\n')
average_value=sum/n;
fprintf('平均值=%3.2f\n',average_value)
fprintf('最大值=%d\n',max_value)
fprintf('最大值=%d\n',min_value)
2013年4月14日 星期日
UltraSonicSensor應用-保護眼睛的守護神
NXT ,保護眼睛的守護神!
當超音波偵測到前方人體離電視太近的時候,系統發出Light光 線及聲音警告。
[機構]
[程式]
#define sonic_sensor IN_1
#define touch_sensor IN_2
#define light_sensor IN_3
#define touch SENSOR_2
#define MotorOut OUT_B
#define length 150
long tick;
void WaitSEC3()
{
tick=CurrentTick();
while(CurrentTick()<(tick+3000))
{
PlayTone(880,50);
Wait(950);
}
Wait(1000);
}
task main()
{
SetSensorTouch(touch_sensor);
ResetTachoCount(MotorOut);
SetVolume(4);
SetSensorLight(light_sensor,false);
SetSensorLowspeed(sonic_sensor);
WaitSEC3();
}
task MotorRotateFn()
{
Follows(main);
while(touch==0)
{
RotateMotorPID(MotorOut,10,90,40,40,90); //右轉
Wait(100);
RotateMotorPID(MotorOut,10,-170,40,40,90); //左轉
Wait(100);
RotateMotorPID(MotorOut,10,80,40,40,90); //右轉
}
Off(MotorOut);
StopAllTasks();
}
task DetectFn()
{
Follows(main);
while(true)
{
if(SensorUS(sonic_sensor) <length{
PlayTone(500,50);
SetSensorLight(light_sensor,true);
Wait(50);
SetSensorLight(light_sensor,false);
Wait(50);
}
}
}
PlayTone(500,50);
SetSensorLight(light_sensor,true);
Wait(50);
SetSensorLight(light_sensor,false);
Wait(50);
}
}
}
[影片]
2013年4月5日 星期五
齒輪機構-玩玩
齒輪機構,有趣的地方在於透過齒輪之間的串合,可以有非常多的變化,因此被應用在馬達速度(差速)的變化。
齒輪比,藉由兩個齒輪串合,我們從經驗得知,大齒輪轉一圈,小齒輪轉動n圈,便可以做到差速的轉換。例如圖中:
與馬達串合在一起(同軸)的是8齒的小齒輪,8齒的小齒輪又與40齒的大齒輪咬合在一起。如此共構的齒輪組。我們知道:40齒的大齒輪轉動1圈,同時8齒的小齒輪已跑了5圈。
是以,馬達以150轉/分運轉,假設小齒輪轉150圈,那麼40齒的大齒輪,就是轉了30圈。所以以倍數的關係可知~大齒輪的轉速是30轉/分。
圖中另外一組是8齒小齒輪與24齒小齒輪,該8齒小齒輪與40齒同軸。
8齒小齒輪與24齒小齒輪的齒輪比=1:3,所以可知8齒小輪轉3圈,24 齒中齒輪轉1圈。
所以整個齒輪組的組合,從馬達的輸入端傳動到24齒輸出端的葉片轉動,呈現轉動比為:
(1/5)x(1/3)=1/15
另外,齒輪組改成Worm Gear也很有趣:
參考資料:
1.http://www.education.rec.ri.cmu.edu/roboticscurriculum/curriculum/introductiontogears.htm
2.http://www.education.rec.ri.cmu.edu/roboticscurriculum/curriculum/gearsspeedtorque.htm
訂閱:
文章 (Atom)






