ソース部分作成1 (1-7.ソース:定義とsetup関数) [ロボット制作(tankun-mk1)]
おはようございます
今日からロボット作成のソース部分を紹介していきます。
まずは、定義部分とsetup関数から
最初に定義部分
[define部分]
PIN_XX:Arduinoデジタルピン接続番号の定義です。
MTR_XX:モータの進む、止まる、旋回の定義です。
ここの使い方は追々、説明します。
SERVO_XX:サーボモータの回転角度と回転待ち時間です。
SENSOR_XX:進行方向に障害物があるかのチェック距離(cm)です。
[グローバル変数]
seup関数,loop関数など複数の関数で使用する定義を
ここに書くことで全関数で使用可能になります。
servo_front:サーボモータの定義です。setup関数で初期化を行い、
loop関数で横に向けたりと回転させます。
sw_start,stop:スタート、ストップボタンの定義です。
setup関数はこんな感じです。
[シリアル定義]
いつものシリアル設定です。
[ピン設定]
pinMode関数はArduinoに接続するピンの初期化です。
defineで定義した各変数を使用して初期化します。
[前方のサーボセンサー]
attachで使用するピンを定義し、
exec_sensor_servo_ungle関数は自前定義で、
この関数でサーボを回転させます。
今回は正面の90℃に設定します。
[exec_sensor_servo_ungle関数]
引数で受けた角度でサーボモータを回転させる関数です。
servo_front.writeが回転で、引数で受けた角度を設定します。
回転中に次の処理を行うと動作が不安定になる可能性があるので
delay関数で少し時間待ちを与えて回転が終わるまで待ちます。
今回はこんな感じです。
次回は本処理のloop関数を解説していきまーす。
今日からロボット作成のソース部分を紹介していきます。
まずは、定義部分とsetup関数から
最初に定義部分
// サーボのインクルード #include// 前方の超音波センサー #define PIN_SENSOR_FRONT_ECHO 2 #define PIN_SENSOR_FRONT_TRIG 3 // スタート・ストップスイッチ #define PIN_SW_START 4 #define PIN_SW_STOP 5 // モータ #define PIN_MTR_LEFT_GO 7 #define PIN_MTR_LEFT_BACK 6 #define PIN_MTR_RIGHT_GO 9 #define PIN_MTR_RIGHT_BACK 8 // 前方のサーボ #define PIN_SERVO_FRONT 10 // ---------------------------------------- // 制御コード // ---------------------------------------- #define MTR_SET_MODE_GO 0 #define MTR_SET_MODE_STOP 1 #define MTR_SET_MODE_LEFT 2 #define MTR_SET_MODE_RIGHT 3 #define MTR_SET_MODE_BACK 4 // ---------------------------------------- // サーボ制御 // ---------------------------------------- #define SERVO_UNGLE_FRONT 90 #define SERVO_UNGLE_RIGHT 25 #define SERVO_UNGLE_LEFT 155 #define SERVO_UNGLE_DELAY_TIME 1500 // センサー #define SENSOR_FRONT_ERROR_DST 14 #define SENSOR_SIDE_ERROR_DST 20 // ======================================= // グローバル変数定義 // ======================================= // ---------------------------------------------- // サーボ // ---------------------------------------------- Servo servo_front; // ---------------------------------------------- // スイッチ // ---------------------------------------------- int sw_start,sw_stop;
[define部分]
PIN_XX:Arduinoデジタルピン接続番号の定義です。
MTR_XX:モータの進む、止まる、旋回の定義です。
ここの使い方は追々、説明します。
SERVO_XX:サーボモータの回転角度と回転待ち時間です。
SENSOR_XX:進行方向に障害物があるかのチェック距離(cm)です。
[グローバル変数]
seup関数,loop関数など複数の関数で使用する定義を
ここに書くことで全関数で使用可能になります。
servo_front:サーボモータの定義です。setup関数で初期化を行い、
loop関数で横に向けたりと回転させます。
sw_start,stop:スタート、ストップボタンの定義です。
setup関数はこんな感じです。
void setup() { // ---------------------------------------------- // シリアル設定 // ---------------------------------------------- Serial.begin(9600); Serial.println("Hello!"); // ---------------------------------------------- // ピン設定 // ---------------------------------------------- // スイッチ pinMode( PIN_SW_START, INPUT ); pinMode( PIN_SW_STOP, INPUT ); // モーター pinMode( PIN_MTR_RIGHT_GO, OUTPUT ); pinMode( PIN_MTR_RIGHT_BACK, OUTPUT ); pinMode( PIN_MTR_LEFT_GO, OUTPUT ); pinMode( PIN_MTR_LEFT_BACK, OUTPUT ); // 前方の超音波センサー pinMode( PIN_SENSOR_FRONT_TRIG, OUTPUT); pinMode( PIN_SENSOR_FRONT_ECHO, INPUT); // 前方のサーボセンサー servo_front.attach(PIN_SERVO_FRONT); exec_sensor_servo_ungle(SERVO_UNGLE_FRONT); // スイッチをOFF(LOW)に初期化 sw_start=LOW; sw_stop=LOW; } void exec_sensor_servo_ungle(int ungle) { servo_front.write(ungle); delay(SERVO_UNGLE_DELAY_TIME); return; }
[シリアル定義]
いつものシリアル設定です。
[ピン設定]
pinMode関数はArduinoに接続するピンの初期化です。
defineで定義した各変数を使用して初期化します。
[前方のサーボセンサー]
attachで使用するピンを定義し、
exec_sensor_servo_ungle関数は自前定義で、
この関数でサーボを回転させます。
今回は正面の90℃に設定します。
[exec_sensor_servo_ungle関数]
引数で受けた角度でサーボモータを回転させる関数です。
servo_front.writeが回転で、引数で受けた角度を設定します。
回転中に次の処理を行うと動作が不安定になる可能性があるので
delay関数で少し時間待ちを与えて回転が終わるまで待ちます。
今回はこんな感じです。
次回は本処理のloop関数を解説していきまーす。
コメント 0