Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Arduino Sunflower: электронный подсолнух, следящий за солнцем

Компоненты и материалы

Arduino UNO 1
Датчик света RobotGeek (или 4 фоторезистора) 4
Потенциометр (линейный) 2
Base Shield V2 (Seeed / Grove-совместимый) 1
Pan-Tilt платформа с 2 сервоприводами 9G (180°) 1
Картон (2 листа), пенопласт (1 лист), палочка (стержень) —
Провода Grove (3-pin) ×6 —

Программное обеспечение

О проекте

Мейкер всегда замечает интересные вещи. Видео с подсолнухом, поворачивающимся за солнцем, вдохновило: почему бы не повторить этот биомеханизм на электронике?

Собрал прототип на Crowtail (аналог Grove), протестировал от фонарика телефона — заработало идеально. Видео в соцсетях набрало много лайков и просьб сделать туториал. Переделал проект чисто, вот подробная инструкция.

Шаг 1: Подготовка материалов

Картон ×2, пенопласт ×1, палка, 6 Grove-кабелей, 4 датчика света, 2 потенциометра, Pan-Tilt, Arduino (Crowduino), Base Shield.

Шаг 2: Голова устройства

Вырежьте 2 одинаковых куска картона, соберите в крест. Приклейте палку к центру креста — это «голова», которая будет смотреть на солнце. Дает жесткость и эстетику.

Шаг 3: Установка 4 датчиков света

В пенопласте сделайте 4 отверстия под датчики и центральное — под палку. Пронумеруйте датчики (1–4) для ориентации в коде.

Шаг 4: Подключение датчиков

Клеевым пистолетом зафиксируйте палку в пенопласте. Вставьте Grove-кабели в датчики.

Шаг 5: Крепление палки к Pan-Tilt

Закрепите палку на Pan-Tilt. Важно: датчики 1 и 2 — внизу, 3 и 4 — сверху (как на фото). Pan-Tilt — готовый узел с двумя 9G сервами (горизонт + вертикал, по 180°). Солнечные панели на фото — декор, питания не дают.

Шаг 6: Загрузка кода

Стейкните Crowduino + Base Shield. Подключите USB, откройте Arduino IDE, загрузите скетч.

Шаг 7: Подключение 4 датчиков к Shield

По схеме (1-к-1):

Шаг 8: Подключение потенциометров

Два потенциометра → A4 и A5. Они идентичны, но: A4 — задержка реакции (dtime), A5 — скорость серв (tol).

Шаг 9: Подключение Pan-Tilt

Нижний серво (горизонт) → D9, верхний (вертикал) → D10.

Шаг 10: Питание

Arduino (Crowduino) питается от пауэрбанка (мобильный) или БП (стационарный).

Шаг 11: Тест!

Закройте корпус. В темной комнате включите фонарик телефона — подсолнух плавно поворачивает голову за лучом. Выглядит мило!

Проект проще, чем кажется. Собирайте, улучшайте дизайн, делайте круче!

Код (Arduino)

#include <Servo.h>
Servo horizontal; int servoh = 90;
Servo vertical;   int servov = 90;

// LDR пины (аналоговые)
int ldrrd = 0; // right down
int ldrld = 1; // left down
int ldrlt = 2; // left top
int ldrrt = 3; // right top

void setup() {
  Serial.begin(9600);
  horizontal.attach(9);
  vertical.attach(10);
}

void loop() {
  int lt = analogRead(ldrlt);
  int rt = analogRead(ldrrt);
  int ld = analogRead(ldrld);
  int rd = analogRead(ldrrd);

  int dtime = analogRead(4) / 20;       // задержка (пот A4)
  int tol   = analogRead(5) / 4;        // порог чувствительности (пот A5)

  int avt = (lt + rt) / 2; // среднее сверху
  int avd = (ld + rd) / 2; // среднее снизу
  int avl = (lt + ld) / 2; // среднее слева
  int avr = (rt + rd) / 2; // среднее справа

  int dvert = avt - avd; // разница верх/низ
  int dhoriz = avl - avr; // разница лево/право

  // Вертикаль
  if (-tol > dvert || dvert > tol) {
    if (avt > avd) { servov++; if (servov > 180) servov = 180; }
    else if (avt < avd) { servov--; if (servov < 0) servov = 0; }
    vertical.write(servov);
  }

  // Горизонталь
  if (-tol > dhoriz || dhoriz > tol) {
    if (avl > avr) { servoh--; if (servoh < 0) servoh = 0; }
    else if (avl < avr) { servoh++; if (servoh > 180) servoh = 180; }
    horizontal.write(servoh);
  }

  delay(dtime);
}

3D-модель и схема

Фото собранного устройства и схема подключения в разделах CAD и Schematics.

Производственный процесс

  1. Создание потрясающей системы Ambilight для монитора на Arduino
  2. Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
  3. Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
  4. Собираем свой Tamagotchi на Arduino: цифровой питомец своими руками
  5. Электронный хамелеон: проект Arduino Nano с RGB-светодиодами и датчиком цвета
  6. Умный беспроводной выключатель света: Arduino-контроллер для удаленного управления
  7. Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом
  8. Умный водяной пистолет с датчиком движения на Arduino Nano
  9. Сборка надежного таймера обратного отсчета на Arduino с 7-сегментным дисплеем SparkFun
  10. Умная электронная система регистрации посещений для хакерспейсов