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

Giftduino: идеальный набор Arduino для подарков — проект для хоббистов и педагогов

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

Приложения и сервисы

О проекте

Giftduino — это «волшебная» коробка-подарок, которая оживает при открывании. Секрет кроется в датчике Холла, реагирующем на изменение магнитного поля. Магнит крепится на крышку коробка: когда крышка открывается, датчик срабатывает, запуская анимацию на дисплее Nokia 5110 и мелодию на пьезо-динамике.

Электроника: новые компоненты на circuito.io

Проект использует два относительно новых компонента в библиотеке circuito.io: датчик Холла и графический LCD Nokia 5110. Датчик Холла выдает сигнал при изменении магнитного поля — именно это происходит, когда магнит на крышке удаляется от датчика в корпусе.

Шаг 1: Сборка компонентов

Перейдите по «магической ссылке» circuito.io (указана в проекте), компоненты уже предварительно выбраны. Нажмите Generate — вы получите полный список деталей (включая резисторы, конденсаторы) и пошаговую инструкцию по сборке.

С circuito.io можно легко заменить компоненты:

Шаг 2: Проведение проводов

После генерации на circuito.io прокрутите вниз до раздела «Wiring». Пошаговый гид показывает, как соединить всё на макетной плате. Выглядит сложно, но если следовать инструкции по шагам — всё просто.

Шаг 3: Программный код

  1. Скачайте код с circuito.io (раздел Code) и распакуйте.
  2. Откройте в Arduino IDE и загрузите в Arduino — это тестовый скетч для проверки проводки.
  3. Затем замените содержимое вкладки firmware.ino на финальный код из этого руководства (см. ниже).
  4. В коде есть комментарии: можно изменить мелодию, пиксельную анимацию, порог срабатывания.
  5. Загрузите обновленный скетч.

Шаг 4: Изготовление коробка

Корпус в оригинале — комбинация 3D-печатных деталей и ПВХ-картона. Но вы можете использовать любые материалы: дерево, стекло, акрил, сделать любую форму и размер. STL-файлы для 3D-печати есть в разделе «Custom parts».

Шаг 5: Финальная сборка

  1. Установите Arduino с шилдом внутрь коробка.
  2. Приклейте магнит на внутреннюю сторону крышки напротив датчика Холла.
  3. Прокладьте гибкую стальную нить между крышкой и корпусом (чтобы крышка не отваливалась).

Результат

Получается уникальный интерактивный подарок. Поделитесь фото/видео на странице проекта или в Facebook!

Финальный скетч (вставляется в firmware.ino):

#include "Arduino.h"
#include "HallA1302.h"
#include "AnalogReader.h"
#include "Adafruit_GFX.h"
#include "Adafruit_PCD8544.h"
#include "TimerFreeTone.h"
#include "Speaker.h"

#define HALLA_PIN_VOUT A3
#define NOKIALCD_PIN_DC 4
#define NOKIALCD_PIN_CS 2
#define NOKIALCD_PIN_RST 3
#define PIEZOSPEAKER_PIN_SIG 5

#define LCD_CONTRAST 70
#define LCD_SIZE_COL 84
#define LCD_SIZE_ROW 48

unsigned int piezoSpeakerHoorayLength = 6;
unsigned int piezoSpeakerHoorayMelody[] = {NOTE_C4, NOTE_E4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5};
unsigned int piezoSpeakerHoorayNoteDurations[] = {8, 8, 8, 4, 8, 4};

HallA1302 hallA(HALLA_PIN_VOUT);
Adafruit_PCD8544 nokiaLcd(NOKIALCD_PIN_DC, NOKIALCD_PIN_CS, NOKIALCD_PIN_RST);
Speaker piezoSpeaker(PIEZOSPEAKER_PIN_SIG);

void setup() {
  Serial.begin(9600);
  Serial.println("start");
  nokiaLcd.begin(LCD_SIZE_COL, LCD_SIZE_ROW);
  nokiaLcd.setContrast(LCD_CONTRAST);
}

void loop() {
  int hallAVal = hallA.read();
  Serial.println(hallAVal);

  // Коробка открыта, если магнит убран (значение отклонилось от 512)
  if (abs(hallAVal - 512) < 50) {
    delay(500);
    nokiaLcd.clearDisplay();
    nokiaLcd.setRotation(2);
    nokiaLcd.setTextColor(BLACK);
    nokiaLcd.setTextSize(1);
    nokiaLcd.print(" Surprise !");
    nokiaLcd.setTextSize(2);
    // Рисуем смайлик примитивами
    nokiaLcd.drawCircle(37, 15, 3, BLACK); // левый глаз
    nokiaLcd.drawCircle(41, 15, 3, BLACK); // правый глаз
    nokiaLcd.drawRect(25, 22, 30, 20, BLACK); // рот
    nokiaLcd.drawRect(22, 18, 36, 5, BLACK); // волосы/брови
    nokiaLcd.drawRect(37, 22, 5, 20, BLACK); // нос
    nokiaLcd.display();

    piezoSpeaker.playMelody(piezoSpeakerHoorayLength, piezoSpeakerHoorayMelody, piezoSpeakerHoorayNoteDurations);
    delay(10000); // 10 секунд шоу
  }
}

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

  1. Понимание кожного эффекта: влияние на проводники переменного тока и применение в РЧ
  2. Создание аудио-эффектов, управляемых датчиками, с набором Satellite CCRMA
  3. Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки
  4. Компактная метеостанция: Arduino Nano + ESP8266, BMP280, OLED / Nokia 5110 LCD
  5. Измерение массы Земли с Arduino: пошаговое руководство по DIY
  6. Подключение датчика пульса MAX30100 к Arduino: Пошаговое руководство
  7. Создание приложения Fridgeye с дисплеем Nextion: пошаговое руководство
  8. Оптимальный тепловой насос для водонагревателя: энергоэффективные решения горячей воды
  9. Почему токарный станок с коробчатыми направляющими — оптимальный выбор для точности и производительности
  10. Датчики Холла: принцип работы, применение и конструкция