First Project, control an RGB Bulb using an Arduino and Webcam

Hiya,

First time poster and Arduino user;

I'm looking to build a project which allows me to control an RGB Bulb using different facial expressions. I've seen that Wekinator has a pre-built facial expression input (Example code | Wekinator) and would like to use that if it's possible.

Only issue is that I'm not too sure on how to create this. I've been using a different tutorial for voice control (https://maker.pro/arduino/projects/machine-learning-for-makers-how-to-voice-control-an-rgb-led) and was hoping I can just change the input, however it will not work.

Any help regarding steps I must take or how I'm approaching this wrong would be much appreciated!

See the links in that site for the required hardware for your project. Come back only if you have found an Arduino as powerful as a PC or RasPi, WRT video recording and analysis.

I have an Arduino UNO R3; and a detailed facial feature tracking software, which comes as a wekinator bundle, which is under this: Example code | Wekinator

I have all the necessary components for the arduino, such as a breadboard, resistors and the RGB bulb itself.

You mentioned a powerful Arduino, is the UNO R3 acceptable?

You can use the Uno to control the bulb, and a PC for the tracking software.

I have all the necessary components for the arduino, such as a breadboard, resistors and the RGB bulb itself.

Seems "all you have to do" is have the computer send the uno the desired RGB bulb commands.

As it's my first time using any form of arduino, I'm a bit puzzled on how I make my arduino connect to Wekinator - as the output

The facial tracking automatically connects to the Wekinators port (which i think use OSC), how would I be able to connect the arduino to the same port for it to be used as the direct output, thus allowing me to control the LED bulb using the tracking?

"As it's my first time using any form of arduino, I'm a bit puzzled on how I make my arduino connect to Wekinator - as the output"

The computers normally communicate with the arduinos thru a computer serial port (probably the simplest way). I don't know what an "OSC" is. so you will need to sort that part out in your project.

Do you mean some Wekinator module in hardware? If so, please provide a link to its data sheet.

If not, connect the webcam to your PC and download and install the software on both your PC and Arduino.

Wekinator uses OpenSoundControl (OSC) to communicate. Each OSC message has:
A destination, which includes:
- a hostname (i.e., a computer name; use localhost if you’re just running on your own computer)
- a port number (e.g., 6448)
- A message name, which is a text string identifying the message (e.g., /wek/inputs)
- Message data; For Wekinator, this is typically a set of numbers, sent as floats.

As my face tracker uses OSC, I need to somehow convert Arduino's Serials to OSC (I think??) for the two to communicate

Is there a standard procedure to get my face tracker and arduino to communicate information as an input and output?

DrDiettrich:
If not, connect the webcam to your PC and download and install the software on both your PC and Arduino.

I don’t know if/how Wekinator can be installed onto my Arduino; it’s my first time using Arduino & IDE

"Wekinator uses OpenSoundControl (OSC) to communicate. Each OSC message has:

A destination, which includes:

  • a hostname (i.e., a computer name; use localhost if you're just running on your own computer)
  • a port number (e.g., 6448)
  • A message name, which is a text string identifying the message (e.g., /wek/inputs)
  • Message data; For Wekinator, this is typically a set of numbers, sent as floats."

That sounds like typical network communication protocol. Probably the easiest thing to do is get a wifi enabled board and set it up to communicate with the computer as an access point or a server.

Butrinto:
I don't know if/how Wekinator can be installed onto my Arduino; it's my first time using Arduino & IDE

You have been told multiple times already: you cannot do that! Wekinator requires a PC.