Arduino IDEの使い方を覚えよう
ここでは、ロボットを動かすために最低限知っておく必要のあるシリアル通信とサーボモータの制御について説明します。Arduinoを使用したことがあり、使用方法をに関してご存知な方は本項を飛ばし、組立に進んでください。
Arduino IDEのダウンロードとインストール
最初に、Arduino公式のダウンロードページからArduino IDEをダウンロードしてください。
インストールするとデスクトップに以下のようなアイコンができるのでダブルクリックして起動してください。見つからない場合はスタートメニューからArduino IDEを起動してください。
正常にインストールされていれば、以下のようなウィンドウが開きます。
Arduino IDEの基本的な使い方は以下の通りです。
(1)Arduino(今回の例ではFreaduino UNO)をUSBケーブルでPCに接続します。
(2)Arduino IDEのメニューからArduinoの種類を選択します
メニューのツール>マイコンボードからArduino UNOを選択します。
メニューのツール>シリアルポートからFreaduino UNOを接続しているポートを選択します。
お使いのPCの環境によってはFTDIドライバというソフトをインストールする必要があります。ArduinoをPCとUSBケーブルで接続した場合にPCがポートを認識できない場合はFTDI社ウェブサイトからドライバを入手してインストールしてください。
(3)ソースコード(スケッチ)を書きます
Arduinoに実行させたいプログラムのソースコード(Arduino IDEではスケッチと呼びます)を書きます。
Arduinoのプログラミングについてより詳しく知りたい場合はArduino公式ページのサンプルをご参照ください。
(4)コンパイルと書き込みをします
まず、コンパイルしてプログラムにエラーがないかチェックします。
エラーがなければArduinoボードに書き込みをします。書き込みされたプログラムはArduinoボードによって自動的に実行されます。
PCとのシリアル通信
Arduinoでのシリアル通信は基本的に以下の流れで行います。
- Serial.begin(ボーレート); //通信スピード(ボーレート)を決めて通信を開始します
- Serial.available(); //シリアルポートに何バイトのデータが到着しているか確認します(Serial.read()と組み合わせて使います)
- Serial.read(); //受信したデータを読み出します
- Serial.println("送りたい文字列");//データ+改行を送信します。類似関数にSerial.write(),Serial.print()があります
シリアル通信プログラムについて詳しく知りたい場合はArduino公式ページのSerialの解説をご参照ください。
以下は、PCからシリアル通信で送信されてきた文字をエコーバックするプログラムのサンプルです。Arduino IDEを開いて下記のソースコードを書いて、手元のFreaduino UNOに書き込んでください。
シリアル通信のプログラムを書き込んだら、メニュー>シリアルモニタを選択してください。もしくは、右上の虫眼鏡のアイコンをクリックしてください。
下記のようなウィンドウが開きます。これはシリアル通信するためのソフトでシリアルモニタといいます。ウィンドウ上部のテキストボックスに文字を入力して、送信ボタンを押してください。
Freaduino UNOに正しくシリアル通信プログラムが書き込まれて、かつ、USBケーブルでPCと正常につながっていれば、以下のように文字をエコーバックしてきます。
サーボモータを制御する
Arduinoでサーボモータを制御する場合は専用のServoライブラリを使います。
基本的な流れは以下の通りです。
- #include<Servo.h> //Servoライブラリを読み込みます
- Servo s; //Servoオブジェクトを作成します(この場合オブジェクト名はs)
- s.attach(ピン番号);//Servoオブジェクトに割り当てるピンを設定します
- s.write(角度);//Servoオブジェクトに角度を設定します。角度は0〜180°の範囲で設定可能です
(注)サーボモータの中には無限回転(連続回転)サーボモータと呼ばれるものがあります。これらは、上記のように角度を設定してもその角度で停止せず、回転し続けます。
これ以降、サーボモータ制御用のプログラムを書き込みますが、その際は常に、USBケーブル以外何も繋げない状態でスケッチを書き込んでください。
以下のサンプルプログラムでは9番ピンに挿したサーボモータを0°,90°,180°の順に回転させています。Arduino IDEに同じコードを書いて、USBケーブル以外何も繋げない状態で手元のFreaduino UNOに書き込んでください。以降、本取扱説明書ではサーボモータの可動範囲の中心90°のことを原点と呼びます。
USBケーブルを抜いて、Freaduino UNOに電源が入っていない状態であることを確認してから、9番のピンヘッダにサーボモータを、信号線(白いケーブル)が内側(黄色いピンヘッダ側)に、GND(黒いケーブル)を外側(黒いピンヘッダ側)となるように接続します。電源が入っている状態でケーブルの抜き差しをすると故障の原因になりますので、Freaduino UNOにサーボモータやセンサーを抜き差しする場合は必ず電源が入っていないことを確認してください。
サーボモータをFreaduino UNOに挿したら、USBケーブルでPCと接続してください。プログラムが正しく書き込まれていれば、90°ずつサーボホーンが動き出します。
この例ではサーボモータ1台の例ですが、複数のサーボモータを動かすことも可能です。詳しくはArduinoで始めるロボット制御のページをご参照ください。