---
# System prepended metadata

title: ピッコロボについて

---

# ピッコロボについて

# 概要

+ 主に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