ScratchClientの使い方 - Naohiro2g/Raspberry-Pi-Projects GitHub Wiki
ScratchClient
Scratch 1.4 or Scratch 2.0 で、GPIOを使うことができるようにするブリッジシステム。Python 3で書かれている。
http://heppg.de/ikg/wordpress/?page_id=4
設定ファイルと使い方 (例えば、PCA-9685 16-ch PWM controller)
~/scratchClient/config/config_PCA9685.xml に設定が書かれている。 さらに、 ~/scratchClient/src/adapter/i2cAdapter.py にPWM_PCA9685クラスがアダプタとして定義されている。
PCA9685を接続、Scratchを起動しておいて、以下のようにScratchClientをスタートさせる。
python3 src/scratchClient.py -c config/config_PCA9685.xml
note: Scratch変数名channel_0による指定とservo_0による指定ができる。 channel_0の場合は、0-100(小数点以下有り)でPWMのデューティを指定する。 servo_0の場合、最小パルス幅と最大パルス幅が決め打ちになっており、使うサーボによって設定を変えることができなくなっている。また、1-100指定なので角度がわかりにくい。
src/adapter/i2cadapter.pyを改造、最小パルス幅と最大パルス幅をmSec単位、スケールを100%の数値として、Scratch変数で指定する方式に変更する。0.650mS-2.7mSで180、などにすると、角度指定で動かせる。サーボの種類が変わってパルス幅の範囲が変わった時や、180°でなく270°のサーボにも対処できる。サーボのロット違いなどのバラツキもあるが、これは、サーボごとになんとかする。
独自のconfig
使いたいデバイスを集めてconfigファイルを作ると良い。 こんな感じ。
python3 src/scratchClient.py -c userconfig/config_project.xml
省略してこのように書ける。
python3 src/scratchClient.py -c project
httpサーバーが立ち上がっており、現在のアダプタの状況を確認できる。 http://localhost:8080/adapters
Installation
http://heppg.de/ikg/wordpress/?page_id=6
cd ~
wget -O scratchClient.tar.gz http://heppg.de/download/scratchClient/scratchClient.tar.gz
tar xzf scratchClient.tar.gz
chmod +r -R scratchClient/
sudo apt-get update
sudo apt-get install python3-pip python3-dev python3-smbus
sudo pip3 install tornado mako==1.0.6 spidev pyserial intelhex
cd scratchClient
python3 src/scratchClient.py -version
pip3 freeze | grep tornado
sudo pip3 uninstall tornado
sudo pip3 install tornado==4.5.3
desktopファイルを作って、Scratch起動、ScratchClient起動を自動でできるようにする
Scratch2MCPIと同じ要領。Scratchを起動、Remote Sensors Protocolをonにしたテンプレートを開いてから、ScratchClientを起動する。使うconfigファイルごとにdesktopファイルを作ると便利。
オリジナルアダプタ
- 音声合成は文字列を投げるだけで良いので簡単。Juliusでの発音など。
- 音声認識はどうかな。連続的に認識させておいて、変数を書き換える?