目的が違う基盤なのだが、たまたまピッチがあったので代用させてもらった。このUSB-シリアル変換は5Vの出力があるので、GPSモジュールはこの5V,GNDを赤黒で接続。(ここは、大体想像がつくのだが、ケーブル配線については、自己責任で行ってください。)そのあと、TXDとRXD、RXDとTXDを接続する。PCは端末側であり、GPSモジュールはセンサー側であるが、これも一つの端末として考えるケースが多い。その場合、端末と端末を接続するために、TXDとRXDを接続。RXDとTXDを接続する。一般にクロスといわれる接続方法である。参考までに、端末とモデムなどの延長機器を接続する場合は、TXDとTXD。ストレートといわれる接続方法である。この延長機器には、ネットワークに接続する機器であったり、長距離の延長ケーブルを用いるための信号変換だったりする。世の中にはDTE機器、DCE機器があやふやなものも多く、筆者はあまり厳密に考えないで試行錯誤を繰り返して決めている。今回は入手してから一度も設定変更をしていないGPSモジュールを用いた。Termもインストールしなおしてそのままの設定。配線も終わり、USB-Serialコンバータを接続。動作を示す電源のLEDが付けば、USB-Serial側は大丈夫。GPSもモジュールを見てみて、どこかにLEDなどが点灯していれば大丈夫。GPSモジュールの種類に左右されるのは言うまでもない。ダメなときは、まず電源を確認をすることとなる。このGPSモジュールは毎秒データを送信してくれるので、USB-シリアル変換も毎秒通信を示すLEDが点滅していれば大丈夫。LEDが点滅していなければ、TXD/RXDの配線を入れ替えてみることとなる。Termで想像できることが多い。起動画面でTCP/IPとシリアルの選択ができるのだが、USB-シリアル変換が正しく認識できていないとこのシリアルの選択ができない。認識されている場合、下図のようになるので、シリアルを選択する。その段階でデータが表示し始めた。Termの通信設定が一致していたためにすぐに通信が開始した。通信速度:9600bpsデータ長:8bitパリティ検査:なしストップビット:1bitフロー制御:なしである。設定画面の後ろに$GN....と表示されているのがひっさいにGPSモジュールからきた信号である。“,”が多いのは、GPSモジュールは生きているが、GPS信号は受信できていないことを示す。この状態が確認できたら、GPSモジュールを空が見えるところに持っていってほしい。場合によっては数分程度待つと数字がたくさん表示されてくる。Moduleについて記載する。GPSモジュールはたくさんのベンダーから出されているので、各製品にあった使い方が必要である。GPSモジュールをArduinoに接続して使うのではなく、まずGPSモジュールとPCをつなげて動作確認や各種の設定を行うことを強く推奨する。PCで使うためには、いくつかの環境が必要である。300-400円程度で仕入れたもの)である。接続のイメージは以下である。4本配線があるコネクタは各々が、+5V,GND,TXD,RXDとなっていた。これを接続すればGPSが動作する。2本配線があるコネクタはGPSモジュールに内蔵されているI2Cの地磁気コンパスであり、ここからのは、SDA,SCLである。2017年7月1日ステアリングサーボを動かすステアリングサーボはスピードコントローラと同じなのでプログラムの変更はほとんどないので、細かい説明は省略する。サーボを動作させるためのSteering_Valの値は、以下のとおりである。50:ステアリングを左に切った状態90:中立130:ステアリングを右に切った状態また、シリアルモニタからの入力で3,4を入力することにより、Steering_Valの値が上下するようになっている。Serial.println(Motor_Val);}下記は実験しているときの写真である。ArduinoからはGNDと9Pin,10Pinの3本だけが出ている。それらがスピードコントローラやステアリングサーボと接続されている。配線図としては以下となる。2017年7月1日スピードコントローラに与える値スピードコントローラに与える値はどうすればよいか?具体的には、servo[1].write(Motor_Val);のMotor_Valの値である。各々実験してもらうことを前提に、このモータとスピードコントローラのケースを記載しておく。2017年7月1日Arduinoでスピードコントローラ経由のモータを動かすスピードコントローラやステアリングサーボはON/OFFの信号の比率で制御できる。Modulation:パルス幅変調)方式である。IDEにはサーボ制御用のライブラリ(Servo)が用意されているので、これを用いるのが簡単である。Arduinoのスケッチを抜き出してみると、準備として以下の定義が必要である。servoその後Setup()内でピンの指定を行う。UNOではPWMで使用できるピンが決まっているので、そのピンの番号を記載する必要がある。この例ではスピードコントローラには10ピン、ステアリングサーボには9ピンを割り付けた。ピンに出力を出すのはservo[1].write(Motor_Val)という記載を行う。ここではMotor_Valという変数にスピードに相当する値を入れる。実際に入れる数値は、スピードコントローラによって微妙に差があるので実機に合わせてテストするとよい。ここで全く違う話になってしまうのだが、実験する過程では、シリアルモニタで数値を上下しながらテストできるようにする必要がある。そこで、前出のデバック手法を用いる。開発環境のIDE上で違うタブに分けた例とした。input}IDEの表示は以下のようになっている。本サイトについて本サイトはGPS・QZSSロボットカーコンテストに出場した時の技術情報をメモしたものです。ついて、一切責任を負いませんので注意してください。連絡先について意見、コメントなどがあれば以下のアドレスにお願いします。(スパム防止のため画像にしていますので手打ちしてください。本業が多忙なので、返事が遅れることもあります。内容によって返信しないこともあります。