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での発音など。
  • 音声認識はどうかな。連続的に認識させておいて、変数を書き換える?