Забавного Голодного Робота, поедающего монетки, можно сделать из цилиндрической банки от чипсов Pringles, контроллера Arduino, сервомашинки и ИК-датчика.
Код для Arduino
// https://youtu.be/KfP_LfUiwdc
// Select Arduino nano / ATmega328P (Old Bootloader)
#include <Servo.h>
Servo armServo;
void setup() {
armServo.attach(12);
armServo.write(90);
pinMode(A7, INPUT) ;
pinMode(13, OUTPUT);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
}
int sensorValue = 0;
int prevSensorValue = 0;
const int THRESHOLD = 360;
void loop() {
sensorValue = analogRead(A7);
if (prevSensorValue <= THRESHOLD) {
if (sensorValue > THRESHOLD) {
action();
}
}
prevSensorValue = sensorValue;
delay(10);
}
void action() {
led(true);
//eating
delay(1000);
armServo.attach(12);
armServo.write(10);
delay(300);
armServo.write(70);
delay(500);
//after ate
delay(100);
armServo.write(50);
delay(250);
armServo.write(70);
delay(250);
armServo.write(50);
delay(250);
armServo.write(70);
delay(250);
armServo.write(50);
delay(250);
armServo.write(70);
delay(250);
armServo.write(50);
delay(250);
armServo.write(90);
delay(250);
//release arm's torque
armServo.detach();
led(false);
}
void led(bool onOff) {
if (onOff) {
digitalWrite(13, HIGH);
digitalWrite(0, LOW);
digitalWrite(1, LOW);
} else {
digitalWrite(13, LOW);
digitalWrite(0, HIGH);
digitalWrite(1, HIGH);
}
}
Ссылки
PAPER HUNGRY ROBOT — Pringles Recycle Arduino Robot
https://github.com/happythingsmaker/TrashEatingRobot
По теме
Забавный робот-попрошайка в стиле стимпанк
Робот для сбора пожертвований
Робот из бумаги на базе Arduino
Датчик измерения расстояния SHARP-GP2Y0A02YK0F
Arduino
Ардуино что это и зачем?
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)
