scratch で arduino を制御する 覚え書き

最終更新  2024.04.01


◆◆ 方法 ◆◆


2 つの方法があるようだ。

・Scrattino を使う
http://nomolk.hatenablog.com/entry/2018/06/17/223000

・Scratch for arduino
http://raspi009.seesaa.net/article/449145834.html


Scratch for arduino の方が簡単である。
ただし、各ポートの役割は固定されているようだ。

各ポートの in/out の設定を細かくするには
Scrattino を使う。

どちらもスクラッチの機能(スプライトを動かしてゲームを行う)
に Arduino の入出力機能が追加される。

だから、ゲームのコントローラ(ジョイスティック)を
追加したり、ゲームの結果によって、モーターを動かしたり
できる。

Scratch の可能性が大きく広がる。

◆◆ Scrattino のインストール ◆◆


<参考サイト>
https://soramoyou04.wpblog.jp/2017/11/25/scrattino2%E3%81%A7arduino%E3%81%A8scratch%E3%82%92%E7%B9%8B%E3%81%92%E3%81%A6%E9%81%8A%E3%81%BC%E3%81%86%EF%BC%81%E3%80%90winmac%E3%80%91/

以下の 3 つの要素で構成される。

(1) Scratch 2 Offline Editor (ローカルで動作する scratch)
(2) Scrattino2 (Scratch と Arduino の間のインターフェース)
(3) StandardFirmata というスケッチを動作させた Arduino

1. StandardFirmata の書き込み

Arduino に StandardFirmata というスケッチを書き込む。
Arduino IDE の

ファイル --- スケッチ例 --- Firmata --- StandardFirmata

を書き込む。
実体は libraries/Firmata/examples 以下にある。

2. Adobe AIR のインストール

Scratch Offline Editor 2.0 の動作には
Adobe AIR の最新版が必要である。

Adobe AIR とは異なる OS 上で共通に動作するランタイム環境である。
Flash Player のベースとなったテクノロジーが Adobe AIR には
組み込まれている。

AdobeAirInstaller.exe をダウンロードしてダブルクリックする。

3. Scratch 2 Offline Editor のインストール

Scratch-461.exe をダウンロードして、ダブルクリックする。

インストール時にネットワークに接続しようとする。
拒否すると、Scrattino2 と接続できなくなるので、
「許可」する。

地球マークのアイコンをクリックして「日本語」を選択すると、
メニューが日本語になる。

4. Github から以下のファイルをダウンロードする

https://github.com/yokobond/Scrattino2/releases

Scrattino2.Setup.0.3.0.exe
scrattino2_resources.zip

zip ファイルは展開しておく。

5. Scrattino2 のインストール

exe ファイルを起動する。
Scrattino2 という名前のアプリがインストールされる。

インストール中にネットワークに接続しに行く。
拒否すると起動時にエラーが出て、Scratch 2 から接続できない。
ネットワーク接続は許可する。

初回は自動的に起動する。

起動時に JavaScript のエラーが出た場合は、
ネットワーク接続に失敗している。この状態では、
Arduino との通信には成功するが、Scratch 2 との
通信に失敗する。JavaScript のエラーが出ないように、
ファイアウォールの設定を変更する。

Scan Port を実行する。
Arduino が接続されている COM? の行が N/A となっていても、
ダブルクリックするとスイッチアイコンが出現するので、on にする。

アナログ入力端子の値が正しい値(何も接続していないときは
値が激しく変化する)であれば、接続成功である。

6. Scratch から Arduino を使えるようにする

Scratch 2 Offline Editor を起動し、Shift を押しながら
「ファイル」を選択し、「実験的な HTTP 拡張を読み込む」を
選択する。

   scrattino2_resources\scrattino2_resources\extension\scrattino2.s2e

を選択する。

ブロックグループ「その他」を押したとき、

   Scrattino ▼ --------------○

の ○ の色が

 緑 接続成功
 黄 Arduino が接続されてない
 赤 Scrattinoが起動されてない

◆◆ 使い方 ◆◆






◆◆ Scratch for arduino のインストール ◆◆


<参考サイト>

http://raspi009.seesaa.net/article/449145834.html

以下の 2 つの要素で構成される

(1) Scratch for Arduino というアプリ
(2) S4AFirmware16.ino というスケッチを動作させた Arduino

1. ファイルのダウンロード

s4a.cat から S4A16.zip をダウンロードする。
解凍すると S4A16.exe が出現する。
実行すると Scratch for Arduino がインストールされる。

2. Arduino にファームウェア s4afirmware16.ino をインストールする

http://aularagon.catedu.es/materialesaularagon2013/ProgramacionCODE-Scratch-Arduino/html/s4afirmware16ino.html

にある。s4afirmware16 というフォルダを作り、
その中に s4afirmware16.ino という作る。
そのファイルにコピペする。

◆◆ 使い方 ◆◆


S4A を実行する。
Arduino の COM ポートは自動認識するようだ。

<ポートの割り当て>

Arduino 関係のブロックは「動き」にある。

各ポートの役割は固定されているようだ。

  A0〜A5      入力用
  D2, D3      入力用
  D10〜D13    出力用
  D4, D7, D8  サーボモーター用?

緑旗をクリックすると、実行開始
赤丸をクリックすると、中断

<Arduino との通信>

Arduino のスプライトが 1 個ある。
このスプライトのみ Arduino と通信するブロックを
使うことができる。

このブロックを削除すると Arduino と通信できない。

> 出力

digital ○ on
digital ○ off
analog ○ value △

motor ○ off
motor ○ angle △

> 入力

value of sensor analog○   0-1023 (0V-5V)
sensor digital○ pressed   はい(5V)  いいえ(0V)

デジタル入力は if で判定するとき「はい」か「いいえ」
0 と 1 ではない!!!

<?>

「制御」のカテゴリーに、ゲームの必須機能である
「クローンを作る」がない。なぜ?