2017年08月26日

夏休みの自由研究でガラクタからロボット製作♪

キッズクラスではこの夏休みを利用してセンサーやプログラミングを駆使して電子部品のガラクタを手の平マイコン(Arduino Uno)と接続しオリジナルロボットを製作しました。
自由研究を始めるにあたり、子供たちと「世の中の社会問題をロボットの力で改善できないか?」をテーマーに何を作るかを話し合いました。
まずは身近なところで困ったことはないかと話していたら、自転車に乗っていて車にひかれそうになったとの話が・・・
北朝鮮のミサイルや原発も問題かもしれませんが、毎年20万件以上の負傷者を出している交通事故は今日にも襲い掛かる怖い問題です。
日常生活で日々接する自動車や自転車は、ミサイルよりも怖い脅威と言えるでしょう。

●センサーを使ってコンピューター制御で衝突を回避することで交通事故を減らせないか
〜平成27年中の交通事故死者数の特徴〜
全国で毎年4千名以上の命が奪われ、1日平均の死者数は11.3人で、2時間8分に1人が交通事故で死亡しています。
死者数の多い都道府県は、愛知県の213人、大阪府の196人、千葉県の180人と愛知県が歴代トップを維持し続けて恥ずかしい結果となっています。

sisyasuu



中学3年の緑区T君の作品です。
超音波で障害物を自動で感知しバックするロボットです。
自由研究ですから、教材はありません。
中国から取り寄せたセンサーの数々ですが商品説明書はなくネットで調べても情報がありません。
唯一の手がかりの中国語サイトを翻訳しながらじっくり研究しましたが悪戦苦闘・・・
苦労した分、配線図もプログラムコードもすべてT君の頭にあります。
ONE_8932

T君が選んだのは超音波を発射するセンサーです。
まずは音速からネットで調べてみます。
音は1秒間に約340m進むそうです。
雷がピカッと光ってから3秒後にゴロゴロ!っと聞こえたら約1km先に落ちたという計算になります。
この原理を使って左のスピーカーから短い音波を発射し、物体に当たって跳ね返ってきた音波を右のマイクで拾って時間を計測します。
当然ですが当たって跳ね返ってきますから時間は往復の時間になりますので、プログラミング上で片道の時間に計算しなおします。
片道の時間と音速をかければ障害物までの距離が求められます。
今回は3cm〜30cmまで近づくと自動的に止まったりバックしたりとイロイロ実験してみました。
ONE_8299

こちらが動作させるプログラムです。
Arduino言語と呼ばれ、C言語をベースに電子部品を制御できるように改良されたもので、ネットにも情報が多く、作ったプログラムで電子工作で動かしてすぐ試せるので子供たちの学習に最適です。
プログラムを組むにはスクラッチなどのブロックを組み合わせるだけでプログラミングが出来上がる簡単なものもありますが、当校ではすべてアルファベットを手入力しソースコードと呼ばれるプログラミング言語による入力をさせています。
ソースコードによるプログラミングは仕様がコロコロ変わり早い段階で覚えても無駄になるとの理由から小学校教育でプログラミングの概念のみでプログラム言語の打ち込みは行わないそうですが、現実は教えられる先生がいないのが実情ではないでしょうか。
プログラミング言語は楽器と同じで習得には長い年月が必要で、一朝一夕には身につくようなものではありませんから、子供の時からソースコードを使った言語に触れておかなければ将来苦しむことになるでしょう。
自動演奏ボタンをポチポチ押しているだけのインスタントプログラムでは何年やっても楽器は弾けるようになりませんし、楽譜も読めない訳ですからビジネスとしての作曲もできるようになりません。
例え意味が分からなくても、ひたすらプログラムのソースコードを打ち込んでいるうちに、文法の違う他の言語も理解できるようになっていきます。
T君は独学でJAVA言語の本を買ってきて勉強したそうですが何が何だか分からないうちに挫折したと落ち込んでいましたが、Arduino言語をやってみて断片的な記憶が次々によみがえり、何も教えていないのにロボット制御のプログラムを一人で完成させています。


HCSR04





コチラは小学6年のK君の研究です。
明るさによって障害物を検知しモーターの回転を制御します。
ONE_8310

使用するのは明るさで性質が変化するCDSセル。
実際に電流を流してみて明るさにより抵抗値がどれぐらい変化するのか計測してみます。
実験結果では明るい時と暗い時では電流の流れが100倍以上変わることがわかりました。
この性質を利用して障害物が前に居ないか検出してみます。
CDSセル自体はアナログで明るさを検知しますが、デジタルのプログラムで制御できるよう明るさを1024段階で読取ります。
これをモーターに接続し、明るい時は高速回転、暗くなるにしたがって回転速度を下げ、一定値を下回ると停止するプログラムを組んでみました。
どの時点で停止させるかは可変抵抗で物理的に制御できますが、今回は他のセンサーからの値で制御できるようにプログラミング上で調整できるようにしました。
ONE_8316

先日、キリンビールや味の素が食品生産に熟練の職人さんではなく人工知能(AI)を導入すると発表がありました。
繊細な香りや微生物の育成をセンサー技術を駆使して若手でも短期間で開発ができるのが狙いですが、毎度変わらぬ味は消費者としてちょっぴり寂しい気もします。
今回はセンサー技術を駆使して少しでも安全な車を作ろうと奮闘しましたが、いくらセンサー技術が進歩し制御の性能が向上しても、それに依存するドライバーの注意力は緩む一方で交通事故は減らせません。
制御すべきは衝突安全防止装置が付いた車の方ではなく、ハンドルを握る運転者の方です。
イライラと自制心を失ったドライバー、スマホやテレビに気を取られ注意力散漫になっているドライバー、酒に酔ったり眠気に襲われ真っ直ぐ走ることのできないドライバーの心拍数や血圧をセンサーやプログラミングを駆使して把握し自動車をコントロールできないかが今後の研究テーマとなりました。




oneclickpc1 at 10:31コメント(0)Arduino | 電子工作 

コメントする

名前
 
  絵文字
 
 
Archives
QRコード
QRコード
  • ライブドアブログ