1. HOME
  2. ブログ
  3. ホットミルクロボットの紹介

ホットミルクロボットの紹介

ホットミルクロボットは温めたミルクの温度を計測するための温度センサーと、腕の位置を動かすためのモーターで構成されています。

それぞれの電子部品はArduinoでその動きを制御します。

こちらはArduinoに接続された各部品を制御するためのプログラムコードです。

#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
int btn = 8;

void rightHand();
void leftHand();

void setup() {
  myservo1.attach(10); 
  myservo2.attach(11); 
  myservo3.attach(12); 
  myservo4.attach(9); 

  myservo1.write(90);
  myservo2.write(85);
  myservo3.write(135);
  myservo4.write(0);
  delay(1000);

  pinMode(btn, INPUT_PULLUP);
}

void loop() {
  int temp = analogRead(0);
  delay(500);
  if (temp < 220) {
    rightHand();
    leftHand();
    delay(40000);
  }
}

void leftHand() {
  for (int i = 0; i < 3; i++) {
    myservo4.write(120);
    delay(1000);
    myservo4.write(0);
    delay(1000);
  }
}

void rightHand() {
  // 持ち上げる
  myservo2.write(105);
  myservo3.write(125);
  delay(1000);

  // 腕をコップの上に動かす
  for (int i = 90; i < 160; i = i + 4) {
    myservo1.write(i);
    delay(200);
  }
  delay(1000);

  // コップに注ぐ
  for (int i = 0; i < 75; i = i + 3) {
    myservo2.write(105 + i);
    myservo3.write(125 - i * 1.5);
    delay(200);
  }
  delay(25000);

  // 角度を戻す
  for (int i = 0; i < 75; i = i + 3) {
    myservo2.write(177 - i);
    myservo3.write(15 + i * 1.5);
    delay(200);
  }
  delay(1000);

  // IHに戻る
  for (int i = 159; i > 90; i = i - 4) {
    myservo1.write(i);
    delay(200);
  }
  delay(1000);

  // IHに置く
  // 角度を戻す
  for (int i = 0; i < 10; i = i + 4) {
    myservo2.write(105 - i * 1.4); //75 -> 47
    myservo3.write(125 + i); //150 -> 160
    delay(200);
    myservo2.write(85);
    myservo3.write(135);
  }

}

ホットミルクロボットはArduino上に書かれたこのコードで動作しています。

ホットミルクロボットが実際に動く様子や機構の詳しい解説は、2021年3月開催のすぎなみサイエンスフェスタに出展するホットミルクロボットの動画に掲載しています。

ご興味を持たれた方はそちらの動画もぜひご覧ください。

関連記事