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

Смена цвета с управлением движением!

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

Sparkfun APDS-9960
× 1
Перемычки (общие)
× 1
Arduino UNO
× 1
Резистор 4,75 кОм
× 1
Общий катод, рассеянный RGB
× 1

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

IDE Arduino

Об этом проекте

Этот проект позволит вам использовать силу ваших движений для управления светодиодом RGB. Вам понадобится Sparkfun APDS-9960 и обычный CATHODE, а не анод, RGB LED. Обязательно используйте плату Arduino на 5 В с резисторами 4,7 кОм, поскольку этот датчик использует протокол I2C. Затем подключите, как показано на схеме. Оттуда вы можете добавлять в код собственные цвета. Я уже 6 поставил. Элементы управления по умолчанию:проведите пальцем вверх, чтобы включить, проведите пальцем вниз, чтобы выключить, проведите пальцем вправо, чтобы перейти к следующему цвету, и влево, чтобы повернуть назад. Этот код также можно адаптировать для многих других типов проектов! Не стесняйтесь экспериментировать и создавать еще больше крутых проектов. Удачного создания!

Изображение изделия на макете:

Код

  • Код Arduino
Код Arduino C / C ++
Копирование и вставка
 #include  #include  // Выводы # define APDS9960_INT 2 // Должен быть выводом прерывания // Константа red_pin =A0; int green_pin =A1; int blue_pin =A2; int onOff_flag =0; // Заставляем массив проходить цикл int colorNumber =0; // Глобальные переменные SparkFun_APDS9960 apds =SparkFun_APDS9960 (); int isr_flag =0; void setup () {// Устанавливаем вывод прерывания как входной pinMode (APDS9960_INT, ВХОД); // Инициализируем последовательный порт Serial.begin (9600); Serial.println (); Serial.println (F ("--------------------------------")); Serial.println (F («SparkFun APDS-9960 - GestureTest»)); Serial.println (F ("--------------------------------")); // Инициализируем подпрограмму обслуживания прерывания attachInterrupt (0, interruptRoutine, FALLING); // Инициализируем APDS-9960 (настраиваем I2C и начальные значения) if (apds.init ()) {Serial.println (F ("Инициализация APDS-9960 завершена")); } else {Serial.println (F ("Что-то пошло не так во время инициализации APDS-9960!")); } // Запускаем механизм датчика жестов APDS-9960 if (apds.enableGestureSensor (true)) {Serial.println (F («Датчик жестов запущен»)); } else {Serial.println (F ("Что-то пошло не так во время инициализации датчика жестов!")); } pinMode (A0, ВЫХОД); pinMode (A1, ВЫХОД); pinMode (A2, ВЫХОД); analogWrite (A0, 0); analogWrite (A1, 0); analogWrite (A2, 0);} void loop () {если (isr_flag ==1) {detachInterrupt (0); handleGesture (); isr_flag =0; attachInterrupt (0, interruptRoutine, ПАДЕНИЕ); } if (onOff_flag ==1) {переключатель (colorNumber) {case 0:Serial.println ("красный"); analogWrite (красный_контакт, 255); analogWrite (зеленый_контакт, 0); analogWrite (синий_контакт, 0); ломать; случай 1:Serial.println ("голубой"); analogWrite (красный_контакт, 255); analogWrite (зеленый_контакт, 153); analogWrite (blue_pin, 204); ломать; случай 2:Serial.println («синий»); analogWrite (красный_контакт, 100); analogWrite (зеленый_контакт, 0); analogWrite (blue_pin, 170); ломать; случай 3:Serial.println («зеленый»); analogWrite (красный_контакт, 0); analogWrite (зеленый_контакт, 255); analogWrite (синий_контакт, 0); ломать; случай 4:Serial.println («синий»); analogWrite (красный_контакт, 0); analogWrite (зеленый_контакт, 0); analogWrite (синий_контакт, 255); ломать; случай 5:Serial.println («фиолетовый»); analogWrite (красный_контакт, 191); analogWrite (зеленый_контакт, 0); analogWrite (синий_контакт, 255); ломать; }} иначе, если (onOff_flag ==0) {analogWrite (red_pin, 0); analogWrite (зеленый_контакт, 0); analogWrite (blue_pin, 0);} delay (1000);} void interruptRoutine () {isr_flag =1;} void handleGesture () {if (apds.isGestureAvailable ()) {switch (apds.readGesture ()) {case DIR_UP:Serial.println («ВВЕРХ»); onOff_flag =1; ломать; case DIR_DOWN:Serial.println («ВНИЗ»); onOff_flag =0; ломать; case DIR_LEFT:Serial.println ("LEFT"); if (onOff_flag ==1) {if (colorNumber> 0) {colorNumber - =1; Serial.println (colorNumber); } иначе, если (colorNumber <1) {colorNumber =5; Serial.println (colorNumber); } } ломать; case DIR_RIGHT:Serial.println ("ПРАВО"); если (onOff_flag ==1) {если (colorNumber <5) {colorNumber + =1; Serial.println (colorNumber); } иначе, если (colorNumber> 4) {colorNumber =0; Serial.println (colorNumber); } } ломать; case DIR_NEAR:Serial.println ("NEAR"); ломать; case DIR_FAR:Serial.println ("FAR"); ломать; по умолчанию:Serial.println ("НЕТ"); }}} 

Схема

Подключите как есть.

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

  1. Кнопка AWS IoT с управлением движением
  2. Робот Raspberry Pi, управляемый через Bluetooth
  3. Интерактивный настольный светильник, управляемый жестами
  4. Светодиоды, управляемые Alexa через Raspberry Pi
  5. Радиоуправляемая машина с джойстиком
  6. Роботизированная рука, управляемая нунчук (с Arduino)
  7. Робот, управляемый речью
  8. Водяной пистолет с датчиком движения
  9. Робот-пианино, управляемый Arduino:PiBot
  10. Цветовой микшер Arduino RGB