ねこったー用ソフトウエア

ねこったー(猫ツイッター)とは電子工作漫画「ハルロック」11話で描かれた、飼い猫をモニタリングしTwitterに猫の状態を投稿するシステムです。 そのシステムを再現し、Maker Faire Tokyo 2014で展示いたしました。 本スクリプトは展示に使用したものです。

 

本スクリプトは親機としてRaspberry Piを用います。 また、猫が2匹、猫の状態が「走っている」、「寝ている」、「ご飯を食べている」、「水を飲んでいる」、「トイレにいる」ことを想定して作られています。 本スクリプトを用いる場合、開発者登録がされているTwitterアカウントが子機(猫)の数だけ必要です。

※ ここで公開した技術資料についてはシステム中に TWELITE シリーズを用いる限り、特別な利用制約は設けません。改変を行っても構いませんし、改変後の資料を公開または非公開にすることについての制限もありません。

用意するもの

1. TWELITE の準備

設定やアプリを書き換える際は Windows PCを使用してください。

1.1 TWELITE 2525A の設定

  1. 無線タグアプリのダウンロードページより最新版をダウンロードし、展開します。
  2. 念のため、PCからマウスとキーボード以外のUSBデバイスをすべて外してください。
  3. MONOSTICKをパソコンやボードPC等のUSBポートに接続します。
  4. TWELITE プログラマを開き、下図のようにMONSOTICKのポート名やシリアル番号が表示されていることを確認してください。
  5. 展開したファイルの中から MONOSTICK BLUE を使用するのであれば"App_Tag-Parent-BLUE-OTA.bin" を、MONOSTICK RED を使用するのであれば"App_Tag-Parent-RED-OTA.bin" を MONOSTICK のポートに対してに書き込み、MONOSTICK を PC に差し直してください。 アプリの書き込み方法は下記の動画を参考にして下さい。
  6. 説明動画 (再生時間:3分44秒)

  7. Windows PC で TeraTerm を立ち上げ、下図のように MONOSTICK のシリアルポートを開きます。
  8. TeraTerm メニューバーの "設定" → "シリアルポート" を選択し、下図の通り(115200bps/8bit/パリティ無し/ストップビット1/フロー制御なし)に設定します。
  9. "Enterキー"を入力し下記のようなメッセージが出ることを確認します。
    --- CONFIG/App_Tag V2-01-5/SID=0x8100474f/LID=0x00/RC=10000/ST=0 ---
     a: set Application ID (0x67726305)
     i: set Device ID (--)
     c: set Channels (15)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000011)
     d: set Sleep Dur (500)
     w: set Sensor Wait Dur (0)
     m: set Sensor Mode (0x35)
     p: set Sensor Parameter (15)
     P: set Sensor Parameter2 ( )
    ---
     S: save Configuration
     R: reset to Defaults
     *** POWER ON END DEVICE NEAR THIS CONFIGURATOR ***
    ※ 本設定画面は無線タグアプリ Ver.2.1.5 を使用したときのものです。
  10. "o" → "1" → "Enterキー" → "d" → "5000" → "Enterキー" → "p" → "256" → "Enterキー" の順で入力し、下記のように出力されることを確認します。
    --- CONFIG/App_Tag V2-01-5/SID=0x8100474f/LID=0x00/RC=10000/ST=0 ---
     a: set Application ID (0x67726305)
     i: set Device ID (--)
     c: set Channels (15)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)*
     d: set Sleep Dur (5000)*
     w: set Sensor Wait Dur (0)
     m: set Sensor Mode (0x35)
     p: set Sensor Parameter (256)*
     P: set Sensor Parameter2 ( )
    ---
     S: save Configuration
     R: reset to Defaults
     *** POWER ON END DEVICE NEAR THIS CONFIGURATOR ***
    ※ 本設定画面は無線タグアプリ Ver.2.1.5 を使用したときのものです。
  11. MONOSTICK からおおむね 10cm の距離で TWELITE 2525A の電池を投入してください。
  12. TWELITE 2525A の電池を投入時に 下図のように MONOSTICK の LED がすべて点灯するか、 TeraTerm から下記のように出力されていることを確認します。
    --- CONFIG/App_Tag V2-01-5/SID=0x8100474f/LID=0x00/RC=10000/ST=0 ---
     a: set Application ID (0x67726305)
     i: set Device ID (--)
     c: set Channels (15)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)*
     d: set Sleep Dur (5000)*
     w: set Sensor Wait Dur (0)
     m: set Sensor Mode (0x35)
     p: set Sensor Parameter (256)*
     P: set Sensor Parameter2 ( )
    ---
     S: save Configuration
     R: reset to Defaults
     *** POWER ON END DEVICE NEAR THIS CONFIGURATOR ***
    
    
    !INF REQUEST CONF FROM 810F0507 FW_VER:2.1.5
    >>> TxCmp Ok(tick=52244,req=#0) <<<
    !INF ACK CONF FROM 810F0507
    SUCCESS 810F0507
    ※ 本設定画面は無線タグアプリ Ver.2.1.5 を使用したときのものです。

    下記のような出力があった場合は、OTA設定に失敗しているため、TWELITE 2525A の電池を抜き、10. をもう一度やり直してください。
    --- CONFIG/App_Tag V2-01-5/SID=0x8100474f/LID=0x00/RC=10000/ST=0 ---
     a: set Application ID (0x67726305)
     i: set Device ID (--)
     c: set Channels (15)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)*
     d: set Sleep Dur (5000)*
     w: set Sensor Wait Dur (0)
     m: set Sensor Mode (0x35)
     p: set Sensor Parameter (256)*
     P: set Sensor Parameter2 ( )
    ---
     S: save Configuration
     R: reset to Defaults
     *** POWER ON END DEVICE NEAR THIS CONFIGURATOR ***
    
    
    !INF REQUEST CONF FROM 810F0507 FW_VER:2.1.5
    !LQI
    FAILURE 810F0507
    ※ 本設定画面は無線タグアプリ Ver.2.1.5 を使用したときのものです。
  13. TWELITE 2525A の電池を抜き、ターミナルソフトを閉じます。

1.2 親機の設定

  1. 展開したファイルの中から MONOSTICK BLUE を使用しているのであれば "App_Tag-Parent-BLUE-MONOSTICK.bin" を、 MONOSTICK RED を使用しているのであれば "App_Tag-Parent-RED-MONOSTICK.bin" を MONOSTICK に対してに書き込み、MONOSTICK を PC に差し直してください。
  2. Windows PC で TeraTerm を起動し、MONOSTICK を開きます。その際、通信設定は「115200bps/8bit/パリティ無し/ストップビット1/フロー制御なし」に設定します。
  3. 1秒間隔で下記のようなメッセージがターミナルソフトから出力されることを確認してください。
  4. ::ts=1
    ::ts=2
    ::ts=3
    ・・・
  5. インタラクティブモードに移行し、下記のような画面が出力されることを確認してください。
    --- CONFIG/App_Tag V2-01-5/SID=0x81010c2d/LID=0x00 ---
     a: set Application ID (0x67726305)
     c: set Channels (15)
     x: set Tx Power (3)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)
    ---
     S: save Configuration
     R: reset to Defaults
    ※ 本設定画面は無線タグアプリ Ver.2.1.5 を使用したときのものです。
  6. "o" → "20021" → "Enterキー" → "S"の順で入力し、下記のように出力されることを確認します。
    --- CONFIG/App_Tag V2-01-5/SID=0x81010c2d/LID=0x00 ---
     a: set Application ID (0x67726305)
     c: set Channels (15)
     x: set Tx Power (3)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00020021)*
    ---
     S: save Configuration
     R: reset to Defaults
    
    !INF FlashWrite Success
    !INF RESET SYSTEM...
    *** App_Tag (Parent) 2.01-5 ***
    * App ID:67726305 Long Addr:81010c2d Short Addr 074f LID 00
    ※ 本設定画面は無線タグアプリ Ver.2.1.5 を使用したときのものです。
  7. Windows PC から MONOSTICK を抜き、RasperryPiに接続し直してください。

1.3 中継機の設定

  1. 展開したファイルの中から MONOSTICK BLUE を使用しているのであれば "App_Tag-Router-BLUE.bin" を、 MONOSTICK RED を使用しているのであれば "App_Tag-Router-RED.bin" を MONOSTICK に対してに書き込み、MONOSTICK を PC に差し直してください。
  2. MONOSTICK を好きな場所に設置し、電源を投入してください。

2. スクリプトのダウンロード

※ TWELITE 2525Aには使用できません。 TWELITE 2525Aをご使用の場合はインタラクティブ モードでねこったーモードを選択してください。

本スクリプトのファイル構成

本スクリプトは以下のファイルで構成されています。

3. 使用するための準備

本スクリプトを使用する下記の順番で設定を行ってください。

3.1 ダウンロードしたアーカイブの展開

下記のコマンドでダウンロードしたアーカイブの展開し、ディレクトリを移動します。

	$ tar xzvf nekotter.tar.gz
	$ cd nekotter
	

3.2 Pythonスクリプトで使用するライブラリのインストール

下記のコマンドを入力し、ライブラリをインストールします。

	$ sudo apt-get install python-oauth2
	$ sudo apt-get install pip
	$ sudo pip install pyserial
	

3.3 親機のファームウェアを書き込む

親機はRaspberry Piと接続するのでMONOSTICKを用いるのが便利です。

$ cd jenprog
$ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Parent.bin
$ sudo ./jenprog -r /dev/ttyUSB0

※ 本作業は不要なので飛ばしてください。

3.4 子機のファームウェアを書き込む

子機は猫に持たせるので、SMDタイプのものが便利です。

$ cd jenprog
$ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Child.bin
$ sudo ./jenprog -r /dev/ttyUSB0

※ 本作業は不要なので飛ばしてください。

3.5 中継機のファームウェアを書き込む

$ cd jenprog
$ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Router.bin
$ sudo ./jenprog -r /dev/ttyUSB0

※ 本作業は不要なので飛ばしてください。

3.6 設定ファイルの編集

script/Content.py中の設定を編集してください。 詳細はscript/Content.py中のコメントを参考にしてください。

※ 子機や中継器のシリアル番号を事前登録する必要があります。

3.7 接続方法

Raspberry Piに接続するTWELITEを親機としたとき、下の図のように配線します。

4. スクリプトの実行

ねこったー(猫ツイッター)を実行するには以下のコマンドを実行します。

sudo python neko.py

注意

TWELITEの電源は "親機 → 中継器" の順番で入れてください(子機はいつでも構いません)。 この順番で電源を投入しない場合、正常に動作しない可能性があります。