【Arduino】スクラッチ(Scrattino3)専用ブロックの使い方と種類
スクラッチーノ3を使ってプログラミングしたいのですが、Arduino専用ブロックの使い方がわかりません
Arduinoをプログラミングする方法として、スクラッチによるブロックプログラミングがあります。
今回はスクラッチプログラミングするための専用ソフトウェアであるScrattino3(スクラッチーノ3)で使用可能なArduino専用ブロックの機能と使い方について説明します。
スクラッチは小学生におすすめのプログラミング方法だよ
せでぃあはこんな人物です
✅プライム企業に勤める電気・機械設計エンジニア
✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作
✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞
✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中
✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中
- Arduino専用ブロックの種類
- Arduino専用ブロックの使い方
スクラッチプログラミングの始め方は、こちの記事にて詳しく説明しています。
専用ブロックは全部で6種類
scrattino3(スクラッチーノ3)における、Arduino専用ブロックは全部で6種類あります。
- アナログ入力ブロック
- デジタル入力状態ブロック
- デジタル入力モードブロック
- デジタル出力指令ブロック
- PWM出力指令ブロック
- サーボ出力指令ブロック
Arduino専用ブロックを使ったプログラミング例
Arduino専用ブロックを説明するために、少し強引ではありますがプログラム例を作りました。
各専用ブロックの機能と使い方は、このあと詳しく説明していきますがイメージだけでもつかんでいただけたらと思います。
Arduino専用ブロックの機能と使い方
ここからは全6種類のArduino専用ブロックの機能と使い方を説明していきます。
アナログ入力ブロック
アナログ入力ブロックの機能
アナログ入力ブロックは、Arduino本体のアナログ入力ソケットへのアナログ入力信号を選択できるブロックです。
アナログ入力ソケット「A0~A5」に対応したブロックがそれぞれ存在しています。
アナログ入力ソケットに入力される電圧値「0~5V」をアナログ値「0~1023」に変換して、Arduino内部で数値化されます。
アナログ入力ブロックの使い方
このブロックは主にもしアナログ入力値が○○以上だったら~というような比較演算を用いた条件設定で使われます。
明るさセンサーのアナログ入力値を使って、部屋が暗くなったら照明を点灯させる等の使い方ができます。
デジタル入力状態ブロック
デジタル入力状態ブロックの機能
このブロックは、対象となるソケット番号の入力状態を取得するためのブロックになります。
このブロックを選択すると「入力信号なし=0」「入力信号あり=1」のどちらかの値が返ってきます。
デジタル入力状態ブロックの使い方
このブロックは、主にもし〇番ソケット入力信号がONだったら~といような条件設定で使われます。
ソケットへの入力信号状態を条件とすることで、もし押しボタンスイッチが押されたら~という条件を作ることができます。
デジタル入力モードブロック
デジタル入力モードブロックの機能
このブロックは入出力ソケットをプルアップ・プルダウンどちらの使い方で使用するのかを宣言するブロックです。
- プルアップ:入力条件がOFFのとき、入力信号がON=1となる回路
- プルダウン:入力条件がOFFのとき、入力信号がOFF=0となる回路
プルアップを指定することで、Arduino本体に内蔵されたプルアップ抵抗を有効にすることができます。
プルアップかプルダウン回路で配線が異なるので注意してね
プルアップとプルダウン回路の違いについては、こちらの記事にて詳しく説明しています。
デジタル入力モードブロックの使い方
このブロックは、指定したソケットの入力回路の使い方を指定するものです。
プログラム上で一度だけ宣言すればよいので、繰り返し制御ブロック「ずっとブロック」の上側に配置します。
デジタル出力指令ブロック
デジタル出力指令ブロックの機能
このブロックは、指定したソケットに対して出力信号「OFF=0、ON=1」を指定するものです。
Arduinoプログラミングでは「出力信号OFF=LOW」、「出力信号ON=HIGH」として指定します。
デジタル出力指令ブロックの使い方
このブロックは主に、もし○○が△△だったら、□番ソケットの出力信号をHIGHにするといった使われ方をします。
例えば、「押しボタンスイッチが押されたときに、LEDを点灯させる」といった使われ方になります。
PWM出力指令ブロック
PWM出力指令ブロックの機能
このブロックは、指定したソケットを指定した値でPWM出力させるブロックです。
PWM出力値はアナログ値「0~255」を電圧値「0~5V」に変換して出力されます。
アナログ入力で扱う範囲「0~1023」と扱う範囲が異なることに注意しよう
PWM出力指令ブロックの使い方
このブロックは主に、あらかじめ準備した変数に値(0~255の範囲)を代入しておいて、その値を出力されるという使い方が多くなると考えています。
変数を使わずに直接0~255の数値を指定しても問題ありません。
サーボ出力指令ブロック
サーボ出力指令ブロックの機能
このブロックは、指定した角度にモーターの回転角度を制御することが可能な「サーボモーター制御用ブロック」です。
モーターに接続した出力ソケット番号と、回転させたい角度を指定することで狙った角度(0~180°)まで回転させることができます。
サーボモーターの角度は、PWM信号でHIGH=5Vとなっている時間(パルス幅といいます)により制御します
サーボ出力指令ブロックの使い方
条件に応じてモーターの角度を制御するため、もし○○だったら~といった条件式の中で使用されることが多くなります。
まとめ
Arduino専用ブロックは全部で6種類。
ブロックの組み合わせだけで、押しボタンスイッチ入力やLEDの点灯、モーター回転まで制御が可能です。
ぜひArduinoスクラッチプログラミングにチャレンジしてみてくださいね!
- アナログ入力ブロック
- デジタル入力状態ブロック
- デジタル入力モードブロック
- デジタル出力指令ブロック
- PWM出力指令ブロック
- サーボ出力指令ブロック
小学生のお子様には、プログラミング教室での基礎学習をおすすめしています!
Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。
Arduinoプログラミング(スクラッチも)を使った電子工作を紹介しています。
コメント
コメント一覧 (2件)
Arduino UnoでScrattino3を使用中です。しかし、LEDのON/OFFはおおむねうまく行きますが、If文が入ったプログラムになると途端に画面がfreezします。パソコンを変えても同じです。今のところ偶然上手くいったsensorとIF文を含むプログラムを保存、これを呼び出して、加工するとうまくいく場合が多くこれで対処しています。scrattino3は使い方にコツがあるのでしょうか?
加藤様、コメントありがとうございます✨
私もScrattino3を使用していて、フリーズすることがよくありました。
フリーズの対策方法として有効的だと考えているのが「〇〇秒待つ」ブロックを先に配置しておくことです。
私の場合は、ブロックを組み合わせている途中でなぜかプログラムが実行状態(縁取りが黄色く光る)となることがありました。
その結果waitタイマーブロックなしでの演算状態となり、フリーズ状態に陥っていた可能性がありました。
ずっとブロックを配置したらすぐにwaitタイマーブロック(0.1秒など)を配置してみてください。
それからIF文ブロックを配置してみて改善できるかご確認いただけますと幸いです。
加藤様のお悩みが解決できますように!