# ピッコロボについて
# 概要
+ 主に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