基本的な注意

このページにあるプログラム類を使用するには以下が必要です
・Arduino UNO + Arduino IDE (ファームウエアの書き込み)
 使用するセンサ等、Arduinoに接続するデバイスのライブラリも必要です
・Nodejs + express + serialport (ヘルパーアプリ)
・Scratch 2.0 オフラインエディター(デスクトップ)
 Scratch 3 デスクトップは『実験的拡張』がまだ使えないので対応できません。

このページの情報へのお問合せは tsq 'at' gapj.net まで。

基本機能のみ

Arduinoの基本機能が使用できます
・デジタルピンの設定と入出力
・アナログピンの読み取り

Arduino用のファームウェア(.ino)、ヘルパーアプリ(app.js)、Scratch拡張機能(.s2e) AScratchB.zip

拡張機能付き

Arduinoの基本機能に加えて以下が使用できます。
・ピン番号の変数での指定
・サーボモーター(2個まで)の使用
・気温・気圧センサー(I2C: Adafruit MPL3115A2)
・液晶表示器(Adafruit I2C LCD シールド)
 ファームウェアはモノクロバックライト用ですがRGBでも動きます
・気温・気圧、液晶を使用するために Adafruit のライブラリが必要です。Arduino IDEに以下をインストールしてください。
 https://github.com/adafruit/Adafruit_MPL3115A2_Library
 https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library

 Arduino用のファームウェア(.ino)、ヘルパーアプリ(app.js)、Scratch拡張機能(.s2e) AscratchE.zip

サンハヤトAS-E406対応

Arduinoの基本機能に加えてサンハヤトAS-E406の以下の機能が使用できます
・LED1,LED2の制御
・SW1,SW2の読み取り
・明るさセンサー
・気温センサー
※7Seg LEDはD0,D1に接続されている箇所(a,b)使用できませんが、それ以外の個所は制御できます。
 D0,D1が使用できないのでちゃんとした数字は出せません。

 Arduino用のファームウェア(.ino)、ヘルパーアプリ(app.js)、Scratch拡張機能(.s2e) AS-E406.zip

サンハヤトAS-E406対応:サーボ、液晶付き

AS-E406の機能に以下の機能を追加してあります
・サーボモーター(2個まで)の使用
・液晶表示器(Adafruit I2C LCDシールド)
 注:液晶はサンハヤトのものではなくAdafruitのものに対応です
   ライブラリが必要ですのでArduino IDEにインストールしてください
 https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library

Arduino用のファームウェア(.ino)、ヘルパーアプリ(app.js)、Scratch拡張機能(.s2e) AS-E406E.zip

ESPr Developer(ESP-WROOM-02):サーボ付き

スイッチサイエンスのESPr DeveloperをWiFi経由でScratchから使用できます。他のESP8266(ESP-WROOM-02)搭載ボードでも動作すると思いますがピンの用途は実装に依存します。
基本の機能に加えて以下が使用可能です。
・サーボモーター(5個まで)の使用
・気温・気圧センサー(I2C: Adafruit MPL3115A2)
・気温・気圧センサーを使用するために Adafruit のライブラリが必要です。Arduino IDEに以下をインストールしてください。
 https://github.com/adafruit/Adafruit_MPL3115A2_Library

Arduino用のファームウェア(.ino)、ヘルパーアプリ(app.js)、Scratch拡張機能(.s2e) ESPrScratch.zip

注意事項:リクエストが連続するとESP-WROOM-02のファームウェアが落ちる(ESPのWebサーバが過負荷になる)ため、連続した処理を行う場合には必ずディレイを入れてください。

 EsprSample.png

※ESP8266ファームウェアに関しての注意

2種類のファイル(.ino)が入っています。'Book'が付いているものは書籍掲載版です。付かない方の.inoは機能拡張版で書籍版に加えて以下の機能が追加されています。

1. 動作モード切替機能とAPIによるSSID設定機能の追加
 ファームウェア書き込み直後はAPモードで起動し、SSIDに『名前-aabbcc』(aabbccはMAC下3バイト)がデフォルトになります。パスワードはスケッチを見てください。
 APモードで接続後にAPIでSSIDとパスワードを設定し、再起動するとSTAモードで起動します。詳細は添付のAPI.TXTを参照してください。
2. mDNS対応機能
 Windows以外の環境での使用向けにmDNS対応機能を入れました。
3. 『名前』にMACを付与
 複数のESP8266を同時使用する場合のことを勘案して名前に' -MAC下3バイト' を付与するようにしました(MYESPR-aabbcc)。現在使用中の名前はシリアルモニタで確認することができます。一度調べてテプラとかで貼っておくと便利です。これによりWiFi STAモードで使用する際にSSIDとパスワードだけ設定すれば複数のESPのファームウェアを個体毎に書き換える必要がなくなります。なお、現在のファームはNetBIOSとmDNSに対応しており、同じ名前を使用します。この変更によりヘルパーアプリで自分のESPrの名前を指定する箇所で、MACを付与した名前を指定する必要がありますので注意してください(const MYNODENAME = 'MYESPR-aabbcc';のように変更する)。

Raspberry Pi版Scratchでの使用(Arduino UNO)

Raspberry Pi版のScratch(Scratch 2)では拡張機能がJSのため、Windows版の拡張機能は使えません。下のファイルをダウンロードしてお使いください。Arduino UNO用の拡張機能で、高機能タイプのものです。

RPiArduinoE.zip

JSで記述した拡張機能ですが、ヘルパーアプリを必要とします。ヘルパーアプリ等は上の方にあるものを使用してください。ヘルパーはnodejs+expressで動作するためnodejsとexpress,serialportの最新版をインストールして使用してください(単純なaptでのインストールでは古いものが入るのでダメ)。
Raspberry Piに接続したArduino UNOは/dev/ttyACM0となるので、ヘルパー(app.js)の先頭付近にあるvar arduino_portをvar arduino_port = '/dev/ttyACM0';と書き換えてください。

拡張機能自体がJSなので全部JSで書き直せばヘルパーは要らなくなるのですが、とりあえずはこれで使ってください。

Raspberry Pi版Scratchでの使用(ESP8266, ESPr Developer)

ESPr側のファームウェアは上にあるものを使用してください。ファームウェアのAPIがHTTPのため、JSから直接、ファームウェアを叩くようにしました。このためヘルパーアプリは不要になります。ファームウェアを書き込んだESPr DeveloperとRaspberry Pi版Scratchだけで動きます。
自分のScratchが接続する先のESPrはブロックで明示指定してください。ブロック '[自分のESPrを __にする]' でIPアドレスまたはmDNS名(myespr-aabbcc.localのような)を指定します。このブロックは処理毎に実行する必要はなく、Scratchを起動し拡張機能を読み込んだ後の1回だけ実行する必要があります。

RPiESPr.zip

Raspberry Pi の環境設定

ヘルパーアプリを使用する場合最新のNodejsを入れてください。ESPr版はヘルパーを使用しないのでNodejsは不要です。

sudo apt-get install scratch2

wget https://deb.nodesource.com/setup_10.x
sudo sh -x ./setup_10.x
sudo apt-get install nodejs

$ nodejs --version
v10.15.0
$ npm --version
6.4.1

sudo npm install express -g
sudo npm install express-generator -g

express myapp
cd myapp
npm install
npm install serialport