Wio-NodeをArduinoとしてプログラミングする
Owner & Collaborators
License
Wio-NodeをArduinoとしてプログラミングする by asanoqm is licensed under the Creative Commons - Attribution license.
Summary
Wio-NodeをArduino IDEからプログラミングします。
Materials
Tools
Blueprints
Making
- 事前の準備はこちらを参照してください。・USBシリアル変換モジュールを経由して、・FUNCボタン長押し+RSTボタンちょい押しで書き込みモードにすることを毎回忘れずに!
- Wio-Nodeの上にある青いLEDを点滅させてみましょう。こちらのコードを見ながら進めます。
- const uint8_t BLUE_LED = 2;BLUE_LED という変数に2番ポートを割り当てます。※コーディングの可読性を上げるための作業なので、必須ではありません。
- void setup(){pinMode(BLUE_LED, OUTPUT);}void setupはプログラム起動時に1度だけ実行されます。・pinModeは各ポートを入力/出力に割り当てるための関数です。BLUE_LEDは出力に用いるので、上のようなコードで出力用の設定をします。
- void loop() {digitalWrite(BLUE_LED, HIGH);delay(1000);digitalWrite(BLUE_LED, LOW);delay(1000);}void loop の中に書かれた命令が繰り返し実行されます。・digitalWriteは指定のポートにHIGHかLOWの信号を送ります。BLUE_LEDはLOWが送られたときに点灯する模様。・delayは数字×ミリ秒待機します。
- これまでのプログラムを書き込むと、青色のLEDが一秒おきに点滅するはずです。成功したらdelayの中の数値を変えて、点滅のパターンを変えてみましょう。
- LEDへの出力ができたので、次は入力にトライします。Wio-NodeのFUNCボタンの押下を読み取ってみましょう。コードはこちら
- const uint8_t FUNC_BTN = 0;int val = 0;FUNCTIONキーをFUNC_BTNという変数名にしてポート0番を割り当てます。あとで使うために valという整数変数を用意し、ひとまず0を入れておきます。
- void setup() {pinMode(FUNC_BTN, INPUT);Serial.begin(115200);}・LEDと同様、pinMODEでFUNC_BTN,をINPUT(入力)に設定します。・Serial.begin でシリアルポートを開き、通信速度を規定します。
- void loop() {val = digitalRead(FUNC_BTN);Serial.println(val);delay(1000);}・digitalReadで入力ピンの状態(HIGH, LOW)を取得しval に代入します。valの値はHIGHなら1、LOWなら0となります。・Serial.println はシリアル通信で受け取った値をシリアルモニタに表示します。
- プログラムをWio-Nodeに書き込み、シリアルモニタを開いてください。・FUNCボタンを押していないと1・FUNCボタンを押していると0の数字が表示されていれば成功です。※ 右下の通信速度の設定は115200bpsにしてください。
- LEDへの出力とFUNCボタンからの入力を学びました。この2つを組み合わせて、FUNCボタンを押している間だけLEDが光るようなプログラムを作ってみましょう!コードはこちら
- const uint8_t BLUE_LED = 2;const uint8_t FUNC_BTN = 0;int val = 0;
- void setup() {// Serial.begin(115200);pinMode(BLUE_LED, OUTPUT);pinMode(FUNC_BTN, INPUT);}※FUNC_BTNの状態をシリアルモニタで確認したい場合は、Serial.begin の前の//(コメントアウト)を削除してください。
- void loop() {val = digitalRead(FUNC_BTN);// Serial.println(val);if(val == 0){digitalWrite(BLUE_LED,LOW);}else{digitalWrite(BLUE_LED,HIGH);}}・if else 構文を使ってLEDの点滅を制御します。条件:スイッチを押したとき = valが0のとき命令:LEDを転倒させる = BLUE_LEDをLOWにする
- SHT-31から温度を取得して、ある温度を越えたらWio-Nodeの青いLEDが点灯するようにしてみます。コードはこちら
- ADXL345から加速度を取得して、ある値を越えたらWio-Nodeの青いLEDが点灯するようにしてみます。※ ADXL345ライブラリを追加する必要アリ
Comments