ロボット入門その3 LEDを発光させてみる

2019年11月6日

前提

こちらの記事を呼んでいない方は

先にこちらを参照することをお勧めします。

概要

LED発光サンプル

LEDを発光させるだけのサンプルです。

とはいえそれだけでは面白くなかったので

サーボモーターで動きを付けています。

(派手なだけですが)

LEDは思った以上に光が強いので

直視し続けないほうがよいようです。

ロボット作成

サーボモーターの上にステーをつなぎ

ステーの上にLED(赤を)接続します。

そしてLEDの周りに透明ブロックで

囲んで光を綺麗に拡散させています。

プログラム作成

プログラミングツールや

センサー設定、テストモード起動が必要です。

詳細は自動ドアの方にあるので

調べたい方はそちらを参照お願いします。

Scratchプログラム

ちょっと長いですが似たような処理を

複数並べているだけの単純な構造です。

上2つの「もし~なら」はLEDの制御、

下3つの「もし~なら」は、

サーボモーターの制御です。

変数について

ここで出てくる「led_on」と

「servo_motor_position」は

変数と呼ばれるものです。

プログラムでいう変数とは

値を保存しておく入れ物で

計算結果や何らか状態を

記録するために使います。

変数の名前はプログラム言語それぞれの

制約の元、自由につけることが出来るため

日本語のローマ字表記でも可能ですが

実務上は英単語を使用することが

好ましいです。

よって、お子様に教える場合は

将来、プログラミングを

仕事で使う場合において

支障にならない癖付けと

英単語の勉強も兼ねて、

そちらで進めることを推奨します。

LEDの制御

LED制御部分のプログラム
LED制御部分のプログラム

変数:led_onの状態を判定しつつ、

LEDの発光状態と変数:led_onの状態を

切り替ています。

変数:led_onの定義

0LEDが発光していない
1
LEDが発光している

このように有り無しのような、

2つの状態を取る変数は

0を無し(No)、1を有り(Yes)が定石です。

サーボモーターの制御

サーボモーター制御部分のプログラム
サーボモーター制御部分のプログラム

変数:servo_motor_positionを

下記の状態に定義しています。

0サーボモーターが90度の初期状態
1サーボモーターが60度に移動した状態
2サーボモーターが60度から90度に戻った状態
3サーボモーターが120度に移動した状態

0→1→2→3→0→ を繰り返しています。

「サーボモーターを同時に動かす」で

速さを下げておかないと

動きが強すぎて倒れることがあるため

速さの初期状態10から5に下げています。

おわりに

LEDで遊ぼうとして気付いたことですが、

うきうきロボットプログラミングセットには

LEDが赤だけしかないため

本気で遊ぼうとすると

緑青白が必要になります。

それに伴い透明ブロックが足りなくなります。

最も致命的なのがセンサーコードが

1本しかないことです。

センサーコードは基盤に各種センサーや

LED、ブザーを接続するためのコードです。

これが一本ということは

センサーは同時1つだけしか使えませんし、

LEDを使うとセンサーが使えません。

色々、貯めそうと思うと追加購入が必要です。

基盤のA0~4ボタンを使う場合、4本まで、

使わない場合、8本まで接続できます。

フォローする