Робот-«едобот» на Arduino Nano: открывает рот при подаче еды (HC-SR04 + сервопривод)
Компоненты и материалы
| Название | Количество |
|---|---|
| Arduino Nano R3 | 1 |
| Ультразвуковой датчик HC-SR04 | 1 |
| Микросервопривод SG90 | 1 |
| Половинчатая макетная плата | 1 |
| Провода-перемычки | 1 набор |
Инструменты
- Клеевой пистолет (горячий клей)
Среда разработки
- Arduino IDE / Arduino Web Editor
О проекте
Идея пришла от дочери: робот, который открывает рот, когда к нему подносят еду. Корпус из картона, минимальные затраты, сборка за вечер. Ультразвуковой датчик обнаруживает предмет (еду) на расстоянии ≤ 5 см — сервопривод открывает «рот» на 1.2 сек, затем закрывает.
Сборка корпуса
- Вырежьте детали из картона (корпус, челюсти, глаза).
- Склейте горячим клеем.
- Сделайте отверстия для глаз и рта.
- Установите HC-SR04 в «нос», сервопривод — за челюстью.
Схема подключения
- HC-SR04: VCC → 5V, GND → GND, Trig → D3, Echo → D2
- SG90: Signal → D9, VCC → 5V, GND → GND
- Питание: USB → Arduino Nano
Код (Arduino)
/* Cardboard Eating Robot
* Author: GoldScrew
* Email: goldscrewdiy@gmail.com
* HC-SR04 detects food at distance <= 5 cm, Servo opens/closes mouth
*/
#include <Servo.h>
#define SERVO_PIN 9
const int trig = 3;
const int echo = 2;
Servo mouthServo;
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
mouthServo.attach(SERVO_PIN);
mouthServo.write(90); // закрыт
}
void loop() {
unsigned long duration;
int distance;
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = int(duration / 2 / 29.412); // см
if (distance <= 5) {
Serial.println("Distance <= 5 cm");
mouthServo.write(0); // открыть рот
delay(1200);
} else {
Serial.println("Distance > 5 cm");
mouthServo.write(90); // закрыть рот
}
delay(200);
}
Тестирование и результат
Проект отлично подходит для детей и начинающих: дешево, весело, наглядно демонстрирует работу ультразвукового датчика и сервопривода.
Производственный процесс
- Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
- Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
- PiBot: Робот-пианист на Arduino для точного исполнения музыки
- Ручной дозиметр (Гейгер-счетчик) на Arduino Nano: сборка в 3D-корпусе
- Генерация музыкальных тонов на Arduino: полный спектр 88 клавиш пианино
- Автоматическая дверь на Arduino с ультразвуковым датчиком HC-SR04
- Управление манипулятором LittleArm через Android-приложение по Bluetooth