luzAI — это проект роботизированной лампы, которая отслеживает положение руки, чтобы на ней всегда было освещение.
Для изготовления робо-лампы использовался контроллер Arduino Nano и пара небольших шаговых двигателей.
Захват видео с USB-камеры осуществляется скриптом на питоне (интерфейс на tkinter) с помощью OpenCV.
Для распознавания руки используется библиотека ImageAI.
При детекции объекта, отправляются команды для Arduino через последовательный порт (serial), которые приводят в движение шаговые двигатели, выдвигающие и вращающие штанги лампы.
Скетч для Arduino — arduinoCode.ino
#include <Stepper.h>
int numSteps = 2038;
Stepper stepperX(numSteps, 8, 10, 9, 11);
Stepper stepperZ(numSteps, 2, 4, 3, 5);
int incoming[3];
void setup()
{
pinMode(7, OUTPUT);
Serial.begin(9600);
stepperX.setSpeed(15);
stepperZ.setSpeed(15);
}
void loop()
{
while(Serial.available() >= 3)
{
//incoming data
for (int i = 0; i < 3; i++)
{
incoming[i] = Serial.read();
}
//light toggle
if (incoming[2]==1)
{
digitalWrite(7,HIGH);
}
else
{
digitalWrite(7, LOW);
}
//motor control
if (incoming[0]==0)
{
if (incoming[1]==0)
{
for(int i=0; i<150; i++)
{
stepperX.step(-1);
stepperZ.step(1);
}
}
else if (incoming[1]==1)
{
for(int i=0; i<150; i++)
{
stepperZ.step(1);
}
}
else if (incoming[1]==2)
{
for(int i=0; i<150; i++)
{
stepperX.step(1);
stepperZ.step(1);
}
}
}
else if (incoming[0]==1)
{
if (incoming[1]==0)
{
for(int i=0; i<150; i++)
{
stepperX.step(-1);
}
}
else if (incoming[1]==2)
{
for(int i=0; i<150; i++)
{
stepperX.step(1);
}
}
}
else if (incoming[0]==2)
{
if (incoming[1]==0)
{
for(int i=0; i<150; i++)
{
stepperX.step(-1);
stepperZ.step(-1);
}
}
else if (incoming[1]==1)
{
for(int i=0; i<150; i++)
{
stepperZ.step(-1);
}
}
else if (incoming[1]==2)
{
for(int i=0; i<150; i++)
{
stepperX.step(1);
stepperZ.step(-1);
}
}
}
}
}
Ссылки
3D Printed Hand-Following AI Task Light
luzAI GitHub
ImageAI GitHub
По теме
Luci - робо-лампа с функцией распознавания лиц
Очень милая роболампа
Lili - забавная робот-лампа на Arduino
Pinokio - робо-лампа в стиле Pixar
Роболампа на Arduino
Роботизированная лампа
Лампа настроения из Arduino
Автоматизация стола IKEA SKARSTA при помощи Arduino
