しゅうのマイクロマウス研修 キット製作研修

番外編 Part3 UART対応 – しゅうのマイクロマウス研修

番外編 Part3 UART対応 - しゅうのマイクロマウス研修 しゅうのマイクロマウス研修

こんにちは、しゅうです。
前回は結構頑張ってビルドをやっていきました。今回は久々にPi:Coを触っていきます。
今まではプログラムの書き込み時にUSBを接続していたのですが、今回構築している環境的にはそれができません。その代わりにUARTというものを扱います。

UARTって?

UARTってそもそも何の略でしょう?Universal Asynchronous Receiver-Transmitterらしいです。調歩同期式(非同期式ともいう)による信号データの送受信、ということです。データ通信の一種ですが、具体的にはどういった仕組みなのでしょうか?
そもそもデータ通信は、0と1だけで成り立つbit世界で行われています。ただしデータの送受信をする際、どこからがデータの始まりでどこが終わりかを示す必要があります。そうしないと、bitがずれて全く違うデータになってしまいます。
そこでこのUART通信においては、元のデータとは別にスタートbitとストップbitを用いて、送信側と受信側の同期を取ります。

UARTを用いる際に使う信号線は1,2本です。次の図の左側のように1本の場合、自動で送信か受信かを切り替える半二重通信、という方式になります。右側は送信と受信を同時に行うことが可能な全二重通信と呼ばれる方式になります。ほとんどのUART通信がこの全二重通信を採用しています。一般的には送信するピンをTX、受信するピンをRXとよび、デバイスをつなげる際にはTX-RX, RX-TXと交互に接続する必要があります。
半二重通信全二重通信

Pi:CoをUARTに対応させる

Pi:CoのCPUボードはデフォルトでUSB通信に対応しています。そこで、UARTに対応させるためにはマイコンボードのJ4の19番と20番ピンをショートさせる必要があります。詳しくは、このCPUボードのマニュアルに書かれています。CPUボードを外して作業を行うとやりやすいですが、外す際にピンなどが折れ曲がらないように注意しましょう。画像のようにこの2つのピンが接続するようにもりもり半田を流し込みましょう(他のピントはショートさせないように!)
マイコンボードのJ4の19番と20番ピン

あとは、メインボードを一旦外して、CPUボードを載せていた横にピンヘッダーを指します。3.3V, RXD1, TXD1, GNDと書かれているところで、シルクではP1と書かれていますね。今回は3.3Vは繋げませんが、念のため使えるように4-pin指しています。(走行中はショートする可能性があるので、絶縁しておくか剥き出しのピンではなくソケットを使うといいらしいです…)
3.3V, RXD1, TXD1, GND

このままだとPCと繋げられないので、USBシリアル変換モジュールというものを使ってPCのUSBポートからPi:CoのTX, RXピンが通信できるようにします。今回は、FTDI社製のチップを使っている超小型USBシリアル変換モジュールを使います。まずはこのモジュールとPi:Coがつながるように信号線を用意します。
上記のリンクは秋月電子の商品ページに飛びます

TXとRX、RXとTX、GNDとGNDがつながるようにして、モジュール側の5VやPi:Co側の3.3Vは繋げないようにしましょう。次の画像のようになれば問題ないです。
TXとRX、RXとTX、GNDとGNDがつながるようにして、モジュール側の5VやPi:Co側の3.3Vは繋げないようにする
画像内では電源用の線をモジュール側に繋げちゃっていますが、使う予定がなければ外しておくか、先端を絶縁しておいたほうが良いです。

これであとはモジュールをPCに繋げて、デバイス名が出てくれば次に進めます!

PCと接続!

プログラムの書き込みはまだしませんが、とりあえずPCがこのモジュールを認識できるか試します。ls /dev/を実行して、表示されたデバイスのうちtty.usbserial-XXXXXXXXまたはcu.usbserial-XXXXXXXXが出てきます。XXXXXXXXは各モジュールに割り振られているシリアルナンバーになります。
僕が実際にパソコンに繋げて表示させたところ...
PCと接続
あれ?出てこない?FTDIが提供しているドライバーが必要なのかな?と思いインストールしてみても出てこなかった...何故だろうと先輩に質問してみたら、使用しているケーブルが充電専用なのでは?というご指摘をいただきました。USBケーブルって案外充電のみ!というものもあるんでしたね。
別のケーブル(今までPi:Coにプログラムを書き込むときに使っていたもの)を使って接続してみたら無事出てきました!
PCと接続

補足:ドライバインストール

通信を行うためにドライバが必要はないらしい?(先輩の環境ではドライバなしでも見れたそうです)でも、念のためこちらからダウンロードしてインストールすることができます。インストール手順マニュアルもFTDI社により用意されています。

まとめ

これでPi:CoをUARTに対応させました。書き込みなどは次回以降行います。
今までのサンプルプログラムをそのまま用いることはできないので、新たに必要なツールとプログラムの解説を少しずつ行っていきます!

タイトルとURLをコピーしました