RCB-4とRaspberryPiの接続方法

Posted on 2019.02.21 in

 

はじめに

RCB-4とRaspberryPi 3 Model Bを接続する方法について説明します。

 

紹介時の環境

Raspberry Pi 3 Model B
 Distributor ID: Raspbian
 Description: Raspbian GNU/Linux 9.4 (stretch)
 Release: 9.4
 Codename: stretch

 

対応機種

RCB-4HV

RCB-4mini

以下の解説は、両ボードとも共通に対応する内容ですが、基板上のコネクタが異なる場合がありますのでご注意ください。

 

電源について

RaspberryPi 3Bは最大で2.5A消費するといわれています。特に、サーボモータで瞬間的に電流が必要になった場合、電圧降下でRaspberryPi本体がリセットがかかってしまう可能性があります。そのため、RCB-4とRaspberryPiの電源は、別系統にすることを推奨します。

RCB-4では、ロボットに搭載しているサーボに適した動力用のバッテリー、RaspberryPiでは別系統でACアダプタやモバイルバッテリーをご利用ください。

ただし、通信を行うため、GNDは共通にしてください。

 

RaspberryPi3とRCB-4の接続方法

RaspberryPiとRCB-4を接続する方法は2種類あります。

ラズパイ接続図

1.USB経由で接続する

従来は、モーションの作成や登録をする際にWindows PCとRCB-4をDaul USBアダプターHS(シリアルモード)で接続していましたが、RaspberryPiも同じようにUSB経由で接続することができます。

USBを使用して接続する場合、ドライバ(カーネル)のインストールが必要です。「弊社USBアダプタをLinuxで使うには(2019版)」を参考にインストールしてください。

 

2.UARTで接続する

弊社では、RCB-4の信号をUARTに変換するための「RCB-4変換基板」を販売しています。

この基板はArduino等のマイコンボードだけでなく、RaspberryPiでも使用できます。

RaspberryPiの信号が3.3Vに対してRCB-4は5Vですが、変換基板内で電圧の変換をしていますので、各端子に接続すれば簡単に通信することが可能になります。

 

UARTを使用する方法について

RaspberryPi3からは、BluetoothのUARTをttyAMA0で使われてしまいました。

その代わりにRaspberryPiのUARTにソフトウェア上で制御を行う簡易シリアル(ttyS0)に割り当てられました。

RaspberryPiで使用しているttyS*は、CPUのコアクロックに依存していたり、パリティの設定ができないため使用できません。

通信する方法としては、下記の候補があります。

・UARTを諦めてDual USBアダプターHS(シリアルモード)を使用する

・Bluetoothの設定を外してしまう

UARTで使用するためにはBluetoothを諦めるしかありませんので、Bluetoothの設定を外してUARTにttyAMA0を使用する方法を紹介します。

ただし、UARTのコンソール経由でログインができなくなりますので、予めご注意ください。

 

  • 初期設定でUARTが使えるようにしておく

5 Interfacting Option ->  P6 Serial

"Would you like a login shell to be accessible over serial?"

(シリアルでシェルにログインしますか?) ->No (いいえ)

"Would you like the serial port hardware to be enabled?"

(シリアルを有効にしますか?) -> Yes (はい)

を行って再起動をかける。

 

  • 起動時の設定を変更する

/boot/config.txtを編集することで起動時の設定を追加、変更ができます。

root権限でしかアクセスできませんので注意が必要です。

テキストエディアはnanoを使用しましたが、ほかのエディタでもかまいません。

一番最後に下記を記述します。

UARTを有効にし、BluetoothのUARTを無効にします。

 

次に、コンソールでログインできないようにするため、/boot/cmdline.txtを編集します。

その中に、

があるのですが、その中に

がありますので、その部分だけ消してください。

場合によっては「serial0」ではなく「ttyAMA0」の時がありますが同様に消してください。

 

編集が終わりましたら再起動をします。

 

動作確認

動作を確認するため、RCB-4の緑色のLEDを点滅させます。

Dual USBアダプターHS(Serialモード)の場合も同じように確認ができますが、/dev//ttyAMA0の代わりにUSBに割り当てられたポート(/dev/ttyUSB*)をお使いください。

/dev//ttyAMA0に直接コマンドを送りますので、/dev//ttyAMA0の設定をRCB-4に合わせます。

通信速度 115200bps
パリティ 偶数(even)
スタート 1bit
ストップ 1bit

※通信速度はデフォルトで115200bpsですが、RaspberryPiが対応できていれば設定次第で1.25Mbpsに変更も可能です。

 

コマンドで行う場合、

/dev/ttyAMA0を115200bpsに設定(出力のみ)

/dev/ttyAMA0を偶数パリティに設定

コマンドの詳細は省略しますが、configのレジスタの15bit目を1にすると点灯、0にすると消灯をします。

 

 

コマンド(16進数 バイナリデータ)

点灯

09 00 02 00 00 00 11 82 9E
消灯 09 00 02 00 00 00 11 02 1E

※1.25Mbps通信を行う場合はconfigレジスタに通信速度を変える部分がありますのでコマンドが変わります。

 

このコマンドを/dev/ttyAMA0に送る場合は、

点灯

消灯

 

コマンドを送って点灯、消灯が確認できると成功です。

失敗時の確認事項

失敗をしている場合は下記の原因が考えられます。

・RCB-4とRaspberryPiが接続されていない、もしくは接続方法が間違っている

・RCB-4自体の電源が入っていない

・設定の漏れでBluetoothの設定がONになっていたりUARTが有効になっていない

・設定を行ったが再起動を行っていない

・コマンドを送るときに/dev/ttyAMA0の設定をしていない

 

以上の手順で接続ができるようになりました。ほかの記事でも、RaspberryPiに関連する内容をご紹介していますので、ぜひご参照ください。

 

関連記事

 RCB-4 Library for Python ver.1.0.0B

 弊社USBアダプタをLinuxで使うには(2019版)

 RaspberryPiとRCB-4との連携について

 RCB-4 Library Arduino版(V1.1)とPython版(V1.0.0B)の違いについて

 RCB-4の外部からモーションを再生させる方法について

 RCB-4でモーションとは別に個別にサーボを動かす方法

 RaspberryPi搭載用パーツ 3Dデータ(KXR用)

 

RCB-4HVボードのみの詳細をみる RCB-4miniの詳細をみる