2017年03月

2017年03月23日

文部科学省は2020年から小学校での「プログラミング教育の必修化」を検討すると発表しましたが、我が校でも少し先取りし、子供たちと楽しみながらプログラミングを勉強しています。
先日、大須で電子部品を仕入れに行った時の話ですが、たまたま小中学校へ実験部品を収めている業者の方と居合わせ、団塊世代のベテラン教師の集団退職と共に、テスターすらまともに使えない先生が増えていると嘆いておられました。
経済産業省も、2020年までに36.9万人のIT人材が不足すると推計していますが、これは働く労働人口が減少しているのではなく、現場で使える質的な人材不足が顕在化しているということになります。
プログラミング教育には幼児向けに、様々なブロックを組み合わせるだけで回路を組めたり、パズルのようにプログラミングしロボットを動かせる教材が数多く出ていますが、これは料理で言えばインスタント食品でレンジでチンするだけ。最初から動くようにできているセンサーやモーターに手順を送って動作させているだけで、誰でも簡単なラジコンのオモチャと同じです。料理でも食べるのと作るのではまったく違うように、これでは、子供たちもおいしい手料理を作ったと胸を張って言えません。
当校ではできる限り人から与えられたキットを使わず、電気理論を考え電子部品を1から組み、それを動かす1つ1つプログラムを頭で必死に試行錯誤考え、自分の手で1文字1文字打ってコーディング(プログラム言語を用いてコンピュータが処理可能な形式のプログラムを記述すること)することで、モノが動く仕組みを基礎から身体を使って理解するトレーニングを行っています。

プログラミング言語には様々なものがありますが、今回は第2回目の授業です。
先週、Arduino Uno(アルドゥイーノ・ウーノ)と言うマイコン(小型コンピューター)を使って電子回路を動作させるArduino言語を少しだけ学びましたが、今週はいよいよプログラムを使ってLEDを点灯させます。
Arduino言語はC言語やC++言語をベースに作られたものなので初心者にも分かりやすく簡単で、作ったプログラムは電子工作で組んだ回路ですぐ実験できますから手応えもあって大人でも十分楽しめます! 

今回、子供たちに出した課題は先週学んだプログラムの文法を使い「5つのLEDランプを順番に点灯させる」と言うシンプルなものです。
LEDを使って配線を組む前に、Arduinoと電子回路をどうやって配線するのか、CADソフトを使って考えてもらいました 。
ノーヒントで取り組んでもらいましたが、改めて子供たちの感性は様々で、それぞれ個性的豊かな回路が出来上がりました〜(*^_^*)
たかが電球1個つけるのに、プログラムで行うには大変な努力が必要です。
普段、何げなく町のイルミネーションや明かりを見ていますが、街の中すべてがこうしたプログラムによって自動制御され点灯しています。
当たり前に見ている風景もすべて苦労して作ったプログラムの結晶です。改めてエンジニアの皆様に感謝しなければいけませんね〜




中2のT君の考えた回路図と実際の配線です。
抵抗を入れるとLEDの間隔が広がってしまうため中央にブリッジすることでスッキリとまとめました。
T
こちらが回路図を元に組まれた配線です。
よく見ると各LED側のGND(マイナス)につながるジャンパー線がありませんが、LEDを直接ジャンパー線代わりに使うことを急きょ思いついたそうです♪
中2のT君はおっとりしたタイプですが、地道にコツコツと休まず頑張るタイプで、誰も気づかない発見を良くしみんなを驚かせます!
DSC_0101

こちらが中2のT君が考えたプログラムです。
LEDの点灯や消灯時間を1度に設定できるように変数を使っています。
このプログラムには大きな間違いがあるのですが、何が間違っているか実際にLEDを光らせ動作確認することで大きな気づきを得ることができました。
--------------------------------------------------------------------------------------------------------
//引数が空voidの関数で初期設定

int TIME = 1000;
int DELAY = 1000;
void setup(){
//内臓のLEDは出力 用
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(11,OUTPUT);
}
//無限に繰り返す動作設定
void loop(){
  digitalWrite(13,HIGH);//LED点灯

  delay(DELAY);
  
  digitalWrite(12,HIGH);//LED点灯
  delay(TIME);                   //1000m秒待つ
  digitalWrite(13,LOW); //LED消灯
  
  delay(DELAY);                   //1000m秒待つ
  
  digitalWrite(11,HIGH);//LED点灯
 delay(TIME);                  //1000m秒待つ
  digitalWrite(12,LOW);
  delay(TIME); 
  digitalWrite(10,HIGH);//LED点灯
                    //1000m秒待つ
  //LED消灯
  delay(DELAY);                   //1000m秒待つ
  digitalWrite(11,LOW);
  delay(DELAY);
  digitalWrite(9,HIGH);//LED点灯
  delay(DELAY);
  
  digitalWrite(10,LOW); //LED消灯

  digitalWrite(11,LOW);
  delay(DELAY); 
 
  digitalWrite(9,HIGH);//LED点灯
  delay(TIME);                   //1000m秒待つ
  digitalWrite(9,LOW); //LED消灯
  delay(DELAY);
  digitalWrite(13,HIGH);                //1000m秒待つ
 }
--------------------------------------------------------------------------------------------------------



高1のM君の考えた回路図と実際の配線です。
中2のT君同様に抵抗を入れるとLEDの間隔が広がってしまうため中央にブリッジすることでスッキリとまとめましたが、さらにLEDの距離を詰めて配線をしています。

M

こちらが高1のM君の実際の配線です。
高1のM君は誰よりも頭の回転が速くって自分の手足もついていかないほど回路を組むのが早いのですが、配線がグニャグニャにまがって部品もバラバラ・・・
行きつ戻りつ先頭を突っ走るタイプです。
写真を見るだけで誰が組んだのか一発で分かります!
ほんと性格が良く分かって面白いですね〜

DSC_0103

こちらが高1のM君が考えたプログラムです。
5つのLEDの点灯や消灯時間をそれぞれ違う変数を使ってバラバラの間隔で光るように設定しています。
--------------------------------------------------------------------------------------------------------
int a =500;
int b =a/2;
int c =b/2;
int d =c/2;
int e =d/2;

void setup(){ 
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
}

void loop(){
  digitalWrite(9,HIGH);
  delay(a);
  digitalWrite(10,HIGH);
  delay(b);
  digitalWrite(11,HIGH);
  delay(c);
  digitalWrite(9,LOW);
  delay(a);
  digitalWrite(12,HIGH);
  delay(b);
  digitalWrite(10,LOW);
  delay(c);
  digitalWrite(13,HIGH);
  delay(a);
  digitalWrite(11,LOW);
  delay(a);
  digitalWrite(9,HIGH);
  delay(b);
  digitalWrite(12,LOW);
  delay(a);
  digitalWrite(10,HIGH);
  delay(c);
  digitalWrite(13,LOW);
  delay(c);
  digitalWrite(11,HIGH);
  delay(b);
  digitalWrite(9,LOW);
  delay(b);
  digitalWrite(12,HIGH);
  delay(d);
  digitalWrite(10,LOW);
  delay(b);
  digitalWrite(13,HIGH);
  delay(a);
  digitalWrite(11,LOW);
  delay(b);
  digitalWrite(9,HIGH);
  delay(c);
  digitalWrite(12,LOW);
  delay(c);
  digitalWrite(10,HIGH);
  delay(c);
  digitalWrite(13,LOW);
  delay(c);
  digitalWrite(11,HIGH);
  delay(c);
  digitalWrite(9,LOW);
  delay(c);
  digitalWrite(12,HIGH);
  delay(c);
}
--------------------------------------------------------------------------------------------------------




高2のS君の考えた回路図と実際の配線です。
抵抗を入れるとLEDの間隔が広がってしまうため中央にブリッジする点は同じですが、Arduino側にジャンパー線が来るようにブレッドボードの下側に配線が集中されておりスッキリとまとめました。
S

高2のS君は地元の工業高校に通っていますが、努力家で資格保持数も学年1位になるなどコツコツタイプ。
中央の抵抗の足の几帳面な折り方を見ると性格が一目瞭然ですね!
決して妥協せず、最後まで突き詰めていくタイプで将来が楽しみです♪
DSC_0102

こちらが高2のS君が考えたプログラムです。
5つのLEDの点灯や消灯時間をそれぞれ違う計算式を使ってバラバラの間隔で光るように設定しています。
--------------------------------------------------------------------------------------------------------
//変数設定
int a = 250;


void setup(){
  //
  pinMode(13,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(3,OUTPUT);
}

void loop(){
  digitalWrite(13,HIGH); 
  delay(a*1.25);
  
  digitalWrite(9,HIGH);
  delay(a*1.25);
  
  digitalWrite(13,LOW);
  delay(a);
  
  digitalWrite(7,HIGH);
  delay(a*1.25);
  
  digitalWrite(9,LOW);
  delay(a);
  
  digitalWrite(5,HIGH);
  delay(a*1.25); 

  digitalWrite(7,LOW);
  delay(a);
  
  digitalWrite(3,HIGH);
  delay(a*1.25);
  
  digitalWrite(5,LOW); //LED点灯
  delay(a);
  
  digitalWrite(3,LOW); //LED 消灯
  delay(a);
}
 -------------------------------------------------------------------------------------------------------- 


 次回のレッスンは新しい文法For(繰り返し)とIf(条件分岐)を使って、ダラダラと長くなってしまったプログラムを短くまとめ、1つ1つのLEDに違った動きを与えます。
どんな風にできあがるのか楽しみですね〜(*^_^*) 


oneclickpc1 at 19:58コメント(0)トラックバック(0)電子工作Arduino 

2017年03月16日

安楽寺会館吉田さんの依頼で、八事霊園で行われた安楽寺永代供養墓(年3回無料法要)の撮影に行ってきました。
永代供養墓の建立からまるっと6年、毎回お声をかけて頂き、欠かさず撮影を続けてきましたが、回を重ねるごとに訪れる方々が増えていくことを大変嬉しく思います。

0714

ONE_6037

ONE_6039

ONE_6168

ONE_6210

ONE_6212

八事霊園安楽寺永代供養墓のご相談やお申し込みはコチラ


oneclickpc1 at 21:43コメント(2)生徒さんニュース安楽寺永代供養墓 

2017年03月07日

子供のプログラミング授業用に注文していたマイコンボードが届きました!
マイコンボードのArduino Unoはロボットなどを動かす心臓部になります。
 
イタリア生まれで、スイッチサイエンスが販売するArduino unoは永久保証品です♪
DSC_0056

電子工作が初めての子供たちとトランジスタのスイッチングの仕組みと、リレーを使った制御の実習です。
プログラムはパソコンで作成し、USBプリンターケーブルを使ってArduinoに転送します。
レゴロボットみたいな出来合いのキットじゃなくって、1から全部回路を組み上げプログラムを試行錯誤しながら組んで動作させます。
しかし、リレーのコイルはArduinoの微弱な電流では動いてくれません。
子どもたちみんなで話し合いトランジスターを使ってコイルを動かす方法を編み出しました。
エミッタ?コレクタ?ベース?
分からない用語がどんどん出てきますが、知らないことはどんどんググります。
キットが炊飯器で炊いた米から作るおにぎりだとすれば、電子部品を1から組み上げて作る電子工作は稲から米を育ておにぎりにするような遠い道のりです。
しかし、試行錯誤の末、無事に動いた時の喜びは何にも代えがたい達成感があり感動もひとしおです!
この回路で身の回りの様々なものを動かすことができますので夢が広がりますね〜♪
DSC_0057

Arduino Uno本体で誤配線などで壊してしまっても永久に保証されるので初心者にお勧めです。
パソコンとプリンターケーブルがあればすぐに始められます。

上記、Arduino Uno にUSBケーブルとLEDや抵抗など電子工作用パーツがセットになったキットで初めての方にお勧めです。


コチラは教室でも使っている、Arduino Unoと同等機能を有した互換機でUSBケーブル付きで1000円程度で購入できます。永久保証はありませんが2台目、3台目にどうぞ!

 コチラは教室でも使っている、1000円でおつりがくるKumantech製のArduino Unoと同等機能を有した互換機で、2台目3台目にお勧めです。





はんだ付け不要で電子部品を使って回路が組めるブレッドボードです。

ブレッドボード上の電子部品を接続するジャンパーワイヤーです。






以下、実習で使用する電子工作パーツです。
































oneclickpc1 at 00:51コメント(0)Arduino電子工作 
Archives
QRコード
QRコード
  • ライブドアブログ