Двуногое робота Baby Dino на Arduino: пошаговое руководство
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino Mega 2560 (или Uno / Nano) | 1 |
| Крона 9 В | 1 |
| Ультразвуковой датчик HC-SR04 | 1 |
| Микросервоприводы SG90 (9 г) | 5 |
О проекте
Baby Dino — двуногое робота на базе Arduino. Использует пять сервоприводов: по два на каждую ногу и один на голову. Ультразвуковой датчик обнаруживает препятствия и обходит их. Корпус из картона. Посмотрим, как собрать!
Шаг 1: Введение
- Baby Dino — DIY-робот на Arduino.
- Корпус из картона.
- Находит препятствия, поворачивает влево или вправо.
Шаг 2: Необходимые компоненты
- 1 × Arduino Uno, Nano или Mega
- 5 × сервопривод 9 г (SG90)
- 1 × ультразвуковой датчик HC-SR04
- 1 × LiPo 2S или крона 9 В
Шаг 3: Настройка сервоприводов (центрирование)
- Скачайте скетч
fix.ino. - Загрузите в Arduino.
- Подключите сервоприводы по схеме ниже.
- Установите рычажки (rogue horns) так, чтобы все валы были в положении 90°.
Файл: fix.ino
Шаг 4: Корпус из картона
- Скачайте чертеж (раздел Custom Parts).
- Распечатайте на А4, наклейте на картон, вырежьте.
Шаг 5: Финальная сборка
- Закрепите сервоприводы на картонной конструкции.
- Загрузите основной скетч
uBipedino.ino(илиbiped). - Подключите сервоприводы и ультразвуковой датчик.
- Уложите провода (хвостом).
- Подключите батарею.
Готово!
Программный код
fix.ino — центрирование сервоприводов
#include <Servo.h>
Servo s1; Servo s2; Servo s3; Servo s4; Servo s5;
void setup() {
s1.attach(8); s2.attach(9); s3.attach(10); s4.attach(11); s5.attach(12);
}
void loop() {
s1.write(90); s2.write(90); s3.write(90); s4.write(90); s5.write(90);
}
biped.ino — основная логика
#include <Servo.h>
#include <NewPing.h>
// Настройте пины под свою схему
#define IRsensorPin 13 // если используете ИК вместо ультразвука
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define LEFTLEG 7
#define RIGHTLEG 10
#define LEFTFOOT 8
#define RIGHTFOOT 9
#define HEAD 6
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
Servo Lleg, Rleg, Lfoot, Rfoot, Head;
int Hcenter = 70;
int RLcenter = 100; int RFcenter = 65;
int LLcenter = 90; int LFcenter = 75;
int tAngle = 30; // угол наклона
int uAngle = 35; // угол поворота
int sAngle = 35; // угол рачка
int hAngle = Hcenter;
// --- Функции движений ---
void Forward(byte Steps, byte Speed) { ... }
void TurnLeft(byte Steps, byte Speed) { ... }
void TurnRight(byte Steps, byte Speed) { ... }
void HeadRight() { ... }
void HeadLeft() { ... }
void HeadCenter() { ... }
void TiltRightUp(byte ang, byte sp) { ... }
void TiltRightDown(byte ang, byte sp) { ... }
void TiltLeftUp(byte ang, byte sp) { ... }
void TiltLeftDown(byte ang, byte sp) { ... }
void SwingRight(byte ang, byte sp) { ... }
void SwingRcenter(byte ang, byte sp) { ... }
void SwingLeft(byte ang, byte sp) { ... }
void SwingLcenter(byte ang, byte sp) { ... }
void RightLegIn(byte ang, byte sp) { ... }
void RightLegIcenter(byte ang, byte sp) { ... }
void RightLegOut(byte ang, byte sp) { ... }
void RightLegOcenter(byte ang, byte sp) { ... }
void LeftLegIn(byte ang, byte sp) { ... }
void LeftLegIcenter(byte ang, byte sp) { ... }
void LeftLegOut(byte ang, byte sp) { ... }
void LeftLegOcenter(byte ang, byte sp) { ... }
void setup() {
Serial.begin(19200);
Lleg.attach(LEFTLEG); Rleg.attach(RIGHTLEG);
Lfoot.attach(LEFTFOOT); Rfoot.attach(RIGHTFOOT);
Head.attach(HEAD);
CenterServos(); delay(500);
for(int i=0;i<5;i++) { GetSonar(); delay(1000); }
Serial.println("Bipedino is ready.");
}
void loop() {
unsigned int cmCenter = MAX_DISTANCE, cmLeft = MAX_DISTANCE, cmRight = MAX_DISTANCE;
HeadCenter(); cmCenter = GetSonar();
if(cmCenter < 20) {
HeadRight(); cmRight = GetSonar(); HeadCenter();
if(cmRight > 20) { TurnRight(1, 30); }
else {
HeadLeft(); cmLeft = GetSonar(); HeadCenter();
if(cmLeft > 20) { TurnLeft(1, 30); }
}
} else {
int nSteps = cmCenter / 5; if(nSteps > 5) nSteps = 5; else nSteps = 1;
for(int n=0; n
Примечание: полный код функций движений опущен для краткости — доступен в исходном файле проекта.
Схемы подключения
Принципиальная схема подключения сервоприводов и HC-SR04 к Arduino Mega доступна в разделе Schematics.
Производственный процесс
- Соска: дизайн, стандарты безопасности и производственные аспекты
- Детские переноски-карманы (baby carriers): история, дизайн и безопасность
- Научная база и рынок влажных салфеток для детей: материалы, производство и тренды
- Детское питание: наука, производство и перспективы
- Эволюция и производство детских колясок: от колыбельных досов к современным прогам
- Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
- FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
- DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
- Создание пользовательских LED-часов с будильником — видно с 12 метров
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04