4 ⌨️ ボード設定
"Who loves fried chips?" 🍟
4.1. NyBoard
4.1. NyBoard
4.1.1. 取扱説明書を読んでください
説明書の「NyBoard」について内容を見つけて、NyBoard V1_0の説明を読んでください。
注意!誤操作によるNyBoardに損害を与える可能性があります!
4.1.2. Dial the slide switch to Arduino.スライドスイッチからArduinoをダイヤルしてください
I2C装置(ジャイロ/加速度計,サーボドライバ, 外部暗号化EEPROM)のマスターをスライドスイッチで変更します。
デフォルトの "Arduino "では、NyBoardはオンボードのATmega328Pをマスターチップとして使用し、"Pi "では、I2Cポート(SDA、SCL)で接続された外部チップをマスターチップとして使用します。
どうしても起動できない場合は、もしかしたらスイッチを誤って「Pi」にしてしまったのかもしれません。
NyBoardは7.2Vのバッテリーでメタルギアサーボを直接駆動します。満充電時には8.4Vになります。NyBoardで自作のプラスチックギア付きサーボを直接駆動することはできません。
4.2. ダウンロードとインストール
下記のサイトよりお使いのコンピューターのOSに対応するArduino IDEをダウンロードしてください。
Arduino IDEのダウンロードサイトはこちら
最新バージョンのArduino IDEをダウンロードしてください。
4.2.1. ライブラリーマネージャーからインストール
Arduino IDEを起動したら、"Tools"タブの"Manage Libraries"をクリックしライブラリーマネージャーを開いてください。下記のライブラリーをインストールしてください。
Adafruit PWM Servo Driver (最新バージョン)
IRremote (バージョン2.6.1)
QList (任意)
IRremc
ファインダーからDocuments/Arduino/libraries/IRremote/src/IRremote.hのファイルをテキストエディタなどで開き、#define DECODENECと#define DECODE_HASHだけを1と入力し、それ以外は0と入力してください。
プログラミングスペースを確保するため、上記の操作を必ず行ってください。
4.2.2. .ZIP libraryのインストール
下記のリンクからGitHub上のZipファイルをダウンロードしてください。ダウンロードしたらZipファイルを展開してください。
Zipファイルのリンクはこちら
次にArduino IDEの”スケッチ”のタブから”ライブラリーをインクルード”内の”Zip形式のライブラリーをインストール”をクリックしてください。
フォルダ名”Arduino"内の"MPU6050"と12Cdev"のフォルダを追加してください。
4.2.3. NyBoardサポートをArduino IDEに追加
次に"ツール”タブから使用するボード”(ボード:Arduino Uno)”を選択してください。予め選択されている場合もあります。
4.2.4. ブートローダーを焼く(通常の使用では必要ありません)
NyBoardのブートローダが崩壊した場合のみ
● What is a bootloader? ブートローダとは何ですか?
すべてのNyBoardは出荷前に機能チェックを行っているため、互換性のあるブートローダがインストールされているはずです。しかし、まれにブートローダが壊れてしまい、Arduino IDEからスケッチをアップロードできなくなることがあります。
スケッチのアップロードができないのは、必ずしもブートローダのせいではありません:
USBボードがデバイスからの大きな電流を検知して、USBサービス全体を停止させることがあります。この場合、USBサービスを再起動するか、コンピュータを再起動する必要があります。
UARTアップローダにFTDI USB 2.0のドライバをインストールする必要があります。
正しいポートを選択していない。
接触不良です。
運が悪かった。明日改めて試してください。
どうしてもブートローダを焼き直したいと思う場合は:
NyBoard V1_*の場合は、Arduino IDEのツールメニューでArduino Unoを選択するだけです。
ISP(In-System Programmer)を選択します。上のスクリーンショットでは、2つのポピュラーなプログラマーが表示されています。ハイライトされている USBtinyISP は安価なブートローダーで、チェックされている Arduino as ISP は通常の Arduino を ISP として使用できます。
プログラマーをNyBoardのSPIポートに接続します。接続するときは方向に注意してください。しっかり接触しているか確認してください。
ブートローダを書き込みます。初めての場合は、数本のパーセントバーが100%になり、メッセージが出なくなるまで1分ほど待ちます。
4.2.5. USBドングルを接続
USBドングルを付属のケーブルでコンピューターに接続してください。USBドングルを差し込む向きに注意してください。DTRと記載されているピンがボードのDTRに挿入されるように差し込んでください。バッテリーはあらかじめ電源がオンになった状態で本体に接続しといてください。
バッテリーが未装着または電源が入っていない場合「ピー」と音が鳴ります。
Linuxの場合、アップローダがコンピュータに接続されると、シリアルポートリストに「ttyUSB#」が表示されます。しかし、アップロード時にシリアルポートエラーが発生することがあります。その場合は、シリアルポートに許可を与える必要があります。このリンクにアクセスして、指示に従ってください: https://playground.arduino.cc/Linux/All/#Permission
USBドングルとコンピューターが正常に接続されたらツール>シリアルポート>/dev/cu.usbserial-xxxx(Macの場合)またはCOM#(Windowsの場合)をクリックしてください
接続してもポートが表示されない場合、CH340チップ用のドライバーをインストールする必要がある場合があります。
4.2.6
4.2.7. OpenCatパッケージをダウンロードする。
We keep updating the codes as an open-source project. You can star and follow our GitHub repository to get the newest features and bug fixes. You can also share your codes with worldwide OpenCat users.
下記のリンクからライブラリーのインストールと同様にZipファイルをダウンロードをしてください。ダウンロードする際はすべてのファイルを一括でダウンロードしてください。コードのバージョンが異なると正常に動作しない場合があります。
Zipファイルのリンクはこちら
ダウンロードしたZipファイルを展開してください。展開したファイルはOpenCat-mainというフォルダが表示されます。ファイル名をOpenCatに変更してください。
ファイル構造は以下のようになるようにしてください。
・ModuleTests フォルダには、いくつかの testX.ino コードがあります。これらをアップロードして、特定のモジュールを個別にテストすることができます。test "という接頭辞のついた testX.ino スケッチを開いてください。(最初のテストスケッチとして testBuzzer.ino を使うことをお勧めします。) ・シリアルモニターを開き、ボーレートを設定します。NyBoard V1_*の場合、ボードはArduino Unoを選択し、コードとシリアルモニターの両方でボーレートを115200に設定してください。 ・コードをコンパイルしてください。エラーメッセージは出ないはずです。スケッチをボードにアップロードすると、TxとRxのLEDが急速に点滅するのが見えるはずです。点滅が終わると、シリアルモニタにメッセージが表示されます。 ・コマンドを入力する前に、"No line ending "が設定されていることを確認してください。そうしないと、目に見えない '\n' や '\r'の文字が解析機能を混乱させてしまいます。
Linuxマシンでは、「permission denied」のようなエラーメッセージが表示されることがあります。Arduinoスケッチをコンパイルするためには、avr-gccに実行権限を付与する必要があります。
sudo chmod +x filePathToTheBinFolder/bin/avr-gcc
さらに、/bin内のすべてのファイルに実行権限を追加する必要があるので、次のようにコマンドを実行します
sudo chmod -R +x /filePathToTheBinFolder/bin
4.3. Arduino IDE as an interfaceインターフェイスとしての Arduino IDE
NyBoard と Arduino IDE を接続する USB/Bluetooth アップローダがあれば、NyBoard と通信してバイト単位で変更できる究極のインターフェイスになります。
NyBoard と Arduino IDE を接続する USB/Bluetooth アップローダがあれば、NyBoard と通信してバイト単位で変更できる究極のインターフェイスになります。
NyBoard のシリアル通信プロトコルを定義しました:
すべてのトークンは、その解析形式を指定するために、1つのAsciiエンコードされた文字で始まります。これらの文字は、大文字と小文字を区別し、通常は小文字である。
cコマンドやmコマンドのように、いくつかのコマンドは組み合わせることができます。 例えば 連続した「m8 40」、「m8 -35」、「m 0 50」は、「m8 40 8 -35 0 50」のように表記できます。同じ種類のコマンドは4つまで組み合わせることができます。正確には、文字列の長さは30文字以下でなければなりません。コード内で制限を変更することもできますが、シリアルバッファのシステム的な制約があるかもしれません。
hのように実装されていないトークンもあります。
4.4. ラズパイをマスターコントローラーとして使う場合
Piをマスターコントローラーとして使用する場合のみ。バイトルはPiがなくても動きます。
NyBoardにラズペリーパイを適用する場合は2x5(10ピン)を利用してください。ペトイビトルでの推奨モデルはPi 3A+です
NyBoardにラズペリーパイを適用する場合は2x5(10ピン)を利用してください。ペトイビトルでの推奨モデルはPi 3A+です
ソケットに半田付けするとペトイビトルのカバーをつけれなくなるのでご注意ください。ソケットに半田付けするとペトイビトルのカバーをつけれなくなるのでご注意ください。
通信プロトコルにあるようにArduino IDEのシリアルモニターは全てアスキー文字列でエンコードされています。一方でラズパイなどのマスターコンピューターは追加のコマンドがあります。その大部分はエンコードを効率化するためバイナリ文字列で組まれています。Nybbleとラズパイのシリアル通信についてはパイソンスクリプトardSerial.pyに簡易的に示してあります。
Ascii: takes 2 bytes to store Ascii characters '6' and '5'
Binary: takes 1 byte to store value 65, corresponding to Ascii character 'A'
Ascii: 2バイトでAscii文字の'6'と'5'を格納します。
Binary: 1バイトでAscii文字の'A'に相当する値65を格納します。
What about value -113? It takes four bytes as an Ascii string but still takes only one byte in binary encoding, though the content will no longer be printable as a character.
値-113はどうでしょうか?Ascii文字列では4バイト必要ですが、バイナリエンコーディングでは1バイトしか必要ありません。 明らかに、バイナリエンコーディングの方がAscii文字列よりもはるかに効率的です。
Obviously, binary encoding is much more efficient than the Ascii string. However, the message transferred will not be directly human-readable. In the OpenCat repository, I have put a simple Python script ardSerial.py that can handle the serial communication between NyBoard and Pi.
しかし、転送されるメッセージは、直接人間が読めるものではない。OpenCatのリポジトリには、NyBoardとPiの間のシリアル通信を処理できる簡単なPythonスクリプトardSerial.pyを置いています。
4.4.1. ラズパイシリアルポートの設定
ラズパイのターミナルに”sudo raspi-config”を打ち込みます。
インターフェースオプションのもと、シリアルを選択しシリアルログインシェルを無効にしてシリアルインターフェースを有効にしてください。
Run raspi-config with sudo privilege:
sudo raspi-config
.Find Interface Options -> Serial Port.
At the option
Would you like a login shell to be accessible over serial?
select 'No'.At the option
Would you like the serial port hardware to be enabled?
select 'Yes'.Exit raspi-config and reboot for changes to take effect.
Sudo raspi-config を sudo 権限で実行します。
インターフェースオプション」→「シリアルポート」を探します。
Would you like a login shell to be accessible over serial?で「No」を選択します。
シリアルポートのハードウェアを有効にしますか」というオプションで「Yes」を選択します。
raspi-configを終了して再起動すると、変更が反映されます。
If you plug Pi into NyBoard's 2x5 socket, their serial ports should be automatically connected at 3.3V. Otherwise, pay attention to the Rx and Tx pins on your own AI chip and its voltage rating. The Rx on your chip should connect to the Tx of NyBoard, and Tx should connect to Rx.
PiをNyBoardの2x5ソケットに接続した場合、シリアルポートは自動的に3.3Vで接続されるはずです。そうでない場合は、自分のAIチップのRxとTxピンとその電圧定格に注意してください。チップの Rx は NyBoard の Tx に、Tx は Rx に接続する必要があります。
4.4.2. ardSerial.pyの許可を変更する
If you want to run it as a bash command, you need to make it executable:
bashコマンドとして実行したい場合は、実行可能な状態にしてください。
chmod +x ardSerial.py
You may need to change the proper path of your Python binary on the first line:
chmod +x ardSerial.py 1行目でPythonバイナリの適切なパスを変更する必要があるかもしれません。
#!/user/bin/python
4.4.3. Use ardSerial.py as the commander of Bittle バイトルのコマンダーとしてardSerial.pyを使用する
NyBoard has only one serial port. You need to UNPLUG the FTDI converter if you want to control Bittle with Pi's serial port. NyBoard にはシリアルポートが 1 つしかありません。PiのシリアルポートでBittleを制御するには、FTDIコンバーターを外す必要があります。
Typing ./ardSerial.py <args>
is almost equivalent to typing <args> in Arduino's serial monitor. For example, ./ardSerial.py kcrF
means "perform skill crawl Forward".
./ardSerial.py を入力することは、Arduinoのシリアルモニタでを入力することとほぼ同じです。例えば、./ardSerial.py kcrFは「perform skill crawl Forward」という意味です。
Both ardSerial.py and the parsing section in OpenCat.ino need more implementations to support all the serial commands in the protocol.
ardSerial.pyとOpenCat.inoの解析セクションの両方とも、プロトコルのすべてのシリアルコマンドをサポートするために、さらに多くの実装が必要です。
4.5. バッテリー
Though you can program NyBoard directly with the USB uploader, external power is required to drive the servos. NyBoard は USB アップローダで直接プログラミングできますが、サーボの駆動には外部電源が必要です。
4.5.1. 電圧
NyBoard requires 7.4~8.4V external power to drive the servos. We include our customized Li-ion battery with built-in charging and protection circuit in the Bittle kit. Short press the battery's button will show its status. Blue light indicates it has power, and red means the power is low. Long press the button for 2.5 seconds to turn on/off the battery.
NyBoard はサーボを駆動するために 7.4~8.4V の外部電源が必要です。バイトルのキットには、充電回路と保護回路を内蔵した当社オリジナルのリチウムイオン電池が付属しています。電池のボタンを短く押すと、電池の状態が表示されます。青色は電源が入っていることを示し、赤色は電源が低下していることを示します。ボタンを2.5秒長押しすると、バッテリーのオン/オフができます。
4.5.3. 接続方法
Be careful with the polarity when connecting the power supply. The terminal on NyBoard has an anti-reverse socket, so you won't be able to plug in the wrong direction. 電源を接続する際は、極性に注意してください。NyBoard の端子には逆転防止用のソケットが付いていますので、間違った方向に接続することはありません。
逆に接続すると、NyBoard が破損する恐れがあります!
4.5.4. バッテリーの寿命は使用状況によって変わります
It can last hours if you're mainly coding and testing postures, or less than 30 mins if you keep Bittle running.
The battery light will turn red when the power is low. The power will be cut off automatically.
主にコーディングや姿勢のテストをしている場合は何時間も持ちますし、Bittleを動かし続けている場合は30分以下になります。 電池残量が少なくなると、バッテリーランプが赤くなります。自動的に電源が切れるようになっています。
4.5.5. 充電について
Use a 5V-1A USB charger to charge the battery. We don't recommend using fast chargers. The battery will NOT supply power during charging. Keep the battery in your sight when charging.
バッテリーの充電には、5V-1AのUSB充電器を使用してください。急速充電器の使用はお勧めできません。充電中は、バッテリーから電源が供給されません。充電中は、バッテリーを目の届くところに置いてください。
4.5.6. 使用後
After playing, remember to turn off the battery. It's recommended to unplug the battery from the NyBoard's terminal. プレイ後は、忘れずにバッテリーをオフにしてください。NyBoard の端子からバッテリーを抜くことをお勧めします。
Last updated