「スクラッチーノ」でロボットもどきを動かす
Scrattino:An extension to use Arduino from a Scratch at will 2020.10.10 新海
1.「スクラッチーノ」について 「スクラッチーノ」は、スクラッチからアルディーノを使えるようにする拡張機能。たまたまネットで見つけたもので、 同様な拡張機能は他にもいろいろ出ているようです。 アルディーノに接続した機器をスクラッチから動かせるようになります。アルディーノ側のプログラミングは不要。 これを使って、Lチカや 2016 年 8 月に説明し、2016 年の文化祭で展示した「ロボットもどき」を動かしてみます。 2.「スクラッチーノ」の準備 (1) arduino IDE がインストールされている事 (インストールされていない場合は、ネットで「arduino IDE インストール」 などをググってください たとえば
https://poche.xsrv.jp/iot-gym/2019/03/01/001/
など)
(2) スクラッチーノをインストールするhttps://github.com/yokobond/scrattino3-desktop/releases
から、V0.2.0 の scrattino_desktop-0_2_0-win.zip https://github.com/yokobond/scrattino3-desktop/releases/download/v0.2.0/scrattino_desktop-0_2_0-win.zip をダウンロードして解凍する。フォルダーごとデスクトップに置いておくのがいいと思います。 (3) アルディーノに「StandardFirmata」を書き込むArduino IDE を起動して、メニューバーから[ファイル : スケッチ例 : Firmata : StandardFirmata]を開いて Arduino へ書き込む。これで Arduino 側の準備は終わりです。 (4) スクラッチーノを立ち上げる (2)で作ったスクラッチーノのフォルダーの中の「Scrattino Desktop」をダブルクリックすると スクラッチが起動します。スクラッチの「拡張機能」から「scrattino」を選ぶと、スクラッチーノのブロックが 追加されます。
スクラッチ
(Scratch)
Ar d ui n o アルディーノ LED (ex..Lチカ) センサー (ex.。温度 センサー) ロ ボッ トも ど きスクラッチーノ
(Scra
ttino)
2.LED を光らせてみよう。(Lチカ) アルディーノを使った工作や IoT の最初の例題として、「LED を光らせる」というのがあります。 スクラッチーノを使うと、プログラムがスクラッチでできるので、とても簡単です。 (1)回路 回路はアルディーノの4番ピンに LED と抵抗をつないであるだけの 簡単なものです。 (2) スクラッチーノのブロック LED を光らすためのスクラッチーノのブロックはこれです。 最初の は arduino のデジタルのピン番号、
次の は、LED を消すのが Low、 光らすのが High
回路では、4番ピンに LED をつないでいますので、 ↑これをクリックすると LED が光ります ↑これをクリックすると LED が消えます (3) 「ブロック定義」を使えばもっと簡単に スクラッチの「ブロック定義」機能を使えば、もっと簡単になります。 文字通りの、下記のブロックをそれぞれクリックするだけです。 ブロックの定義はそれぞれ次のようになります。
100Ω 抵抗
LEDArduino
UNO
2▽ Low(4)プログラムでも使えます。 これらは、スクラッチのブロックですので、普通にスクラッチのプログラミングで使うことができます。 たとえば、青い旗がクリックされてから、ずっと、0.5 秒ごとに LED の点滅を繰り返すプログラムは左のようになります。 もちろん、ブロック定義ではなく、スクラッチーノのブロックをそのまま使っても構いません。 上と同じ動作をするプログラムです。 「LEDを光らせる」については、 放送大学兵庫同窓会HP、サークル活動、C言語研究会 2016 年 4 月 9 日 資料「LED を光らせてみよう」 http://www.openu-hyogodousoukai.com/club/c-lang/r201604.pdf もご参照ください。
3.ロボットもどきを動かそう。 「ロボットもどき」は、2016 年 8 月のC言語研究会例会で、RaspberryPi で動かした もの(右の写真)ですが、これをスクラッチーノで動かしてみます。 (1) 旗を揚げる 「ロボットもどき」の前に、サーボモーターの練習として、「旗を揚げる」簡単な仕組みでやってみます。 サーボモータの腕の先に旗が付いています。 a. 回路 7番に旗付きのサーボモーターをつなぎます。 b.スクラッチーノのブロック サーボモータを動かすブロックはこれです。 最初の は arduino のデジタルのピン番号、 次の は、サーボモーターの角度です。 回路では7番ピンにサーボモーターをつないでいますので、 ↑これをクリックするとサーボが 0 度になります。 ↑これをクリックするとサーボが90 度になります。 サーボモーター SG90 2▽ 0 0 度 90 度
c.「ブロック定義」を使えばもっと簡単に もちろん、2.(4)と同様、「ブロック定義」機能を使えば、もっと簡単になります。 文字通りの、下記のブロックをそれぞれクリックするだけです。 ブロックの定義はそれぞれ次のようになります。 d.プログラムでも使えます。 これも、2.(5)同様、普通にスクラッチのプログラミングで使うことができます。 たとえば、青い旗がクリックされてから、ずっと、1秒ごとに 旗の上げ下げを繰り返すプログラムは左のようになります。 もちろん、ブロック定義ではなく、スクラッチーノのブロックをそのまま使っても構いません。 上と同じ動作をするプログラムです。
Arduio
UNO
(2)ロボットもどきを動かす a. 回路 b.スクラッチーノのブロック サーボモータを動かすブロックは今までに何度も述べた、これです。 最初の は arduino のデジタルのピン番号、 次の は、サーボモーターの角度です。 ①腕を回す 腕を回すサーボモータは回路の5番についていますので、 ↑これをクリックするとサーボが 180 度になります。 つまり、腕が上がる。 ↑これをクリックするとサーボが 85 度になります。 (実際は腕は 90 度になりますが、機械的な誤差があるので、 設定は 85 度とします。)つまり、腕はまんなかに来ます。 ↑これをクリックするとサーボが 5 度になります。 (実際は腕は 0 度になりますが、機械的な誤差があるので、 設定は 5 度とします。)つまり、腕は下にさがります。 180 度 0 度 90 度 横から見た図 90 度 0 度 腕を開く サーボモータ 上から見た図 腕を回すサーボモータを5番に、 腕を開くサーボモータを6番に接続 腕を回す サーボモータ 2▽ 0 180 度 90 度 0 度 (横から見た図)②腕を開く 腕を開くサーボモータは回路の6番についていますので、 ↑これをクリックするとサーボが 0 度になります。 サーボの 0 度は真横の位置なので、腕は横に開きます。 ↑これをクリックするとサーボが 90 度になります。 サーボの 90 度が腕の最初の位置なので、腕はもとにもどります。 (上から見た図)
c「ブロック定義」を使えばもっと簡単に 2.(4)や、3.(1)cと同様、「ブロック定義」機能を使えば、もっと簡単になります。 文字通りの、下記のブロックをそれぞれクリックするだけです。 ↓ ↓ ブロックの定義はそれぞれ次のようになります。 180 度 (ロボットもどきを 横から見た図) 90 度 0 度 ブロック (ロボットもどきを 上から見た図) ブロック
d.プログラムでも使えます。 これも、2.(5)や3.(1)d.3同様、普通にスクラッチのプログラミングで使うことができます。 もちろん、ブロック定義ではなく、スクラッチーノのブロックをそのまま使っても構いません。 以上 180 度 (ロボットもどきを 横から見た図) 90 度 0 度 (ロボットもどきを 上から見た図)