# ピッコロボについて # 概要 + 主にFreaduino UNOと標準サーボモータ Type2*4で動いている + ソースコードの拡張子は.ino + wi-fiつき # 権利関係 # プログラムの書き込み関係 + プログラムの書き込みにはArduino IDEを使用する - シリアル接続・コーディング・コンパイルなどを行える - VS codeの拡張機能でもできる + シリアル通信は以下の流れで行う 1. Serial.begin(ボーレート); + 通信スピード(ボーレート)を決めて通信を開始する 3. Serial.available(); + シリアルポートに何バイトのデータが到着しているか確認する(Serial.read()と組み合わせて使う) 5. Serial.read(); + 受信したデータを読み出す 7. Serial.println("送りたい文字列"); + データ+改行を送信する。類似関数にSerial.write(),Serial.print()がある # 動作関係 + サーボモータの設定は以下のように行う 1. #include<Servo.h> + Servoライブラリを読み込む 2. Servo s; + Servoオブジェクトを作成する(この場合オブジェクト名はs) 3. s.attach(ピン番号); + Servoオブジェクトに割り当てるピンを設定する 4. s.write(角度); + Servoオブジェクトに角度を設定する。角度は0~180°の範囲で設定可能 + サーボモータの制御は基本的にServoライブラリを使用する - そこでできるのは主に角度調整 + モーションは短い時間内の角度調整を複数回行うことで実装する # サンプルコード + モーション作成の例 ``` //{腰サーボの角度、右足サーボの角度、左足サーボの角度、首サーボの角度、遷移時間(ミリ秒)} int look_around[5][SERV_NUM+1] ={ {0,0,0,0,200}, //200ミリ秒で、全てのサーボの角度を0°(直立姿勢) {0,0,0,60,300}, //200ミリ秒で、首サーボの角度を60°(右を向く) {0,0,0,0,300}, //200ミリ秒で、首サーボの角度を0°(直立姿勢に戻る) {0,0,0,-60,300}, //200ミリ秒で、首サーボの角度を‐60°(左を向く) {0,0,0,0,300} //200ミリ秒で、首サーボの角度を0°(直立姿勢に戻る) }; void loop(){ if(Serial.available()){ char cmd = Serial.read(); switch (cmd){ case 'j': playMotion(look_around, 5); break; } } delay(100); } ``` # 参考資料 + http://www.vstone.co.jp/vs_wiki/main/wiki.cgi?page=%A5%D4%A5%C3%A5%B3%A5%ED%A5%DC%BC%E8%B0%B7%C0%E2%CC%C0%BD%F1 + https://qiita.com/narikei/items/847613a8f01a9e1527d7 + https://qiita.com/filunK/items/49d92b04fca78e4ed5b0 + https://www.vstone.co.jp/programland/piccoroboIoT/download/piccoroboIoT_programland_manual.pdf