Neste post veremos como construir um ring light controlado por celular. Esse tipo de luz é extremamente popular para iluminação de objetos próximos à câmera e apresenta resultados muito melhores do que o flash integrado do celular.
Material necessário
Para confecção desse projeto serão necessários os seguintes materiais:
É importante verificar se seu dispositivo utiliza um conector Micro USB ou USB Tipo C e comprar o adaptador OTG adequado.
Montagem do circuito
Para montagem desse circuito, podemos utilizar uma mini protoboard e jumpers ou realizar as conexões com fios e solda para montar em uma capinha de celular. O pino VCC, GND e TX do módulo Bluetooth devem ser conectados, respectivamente, ao 5V, GND e D10 do Arduino. Os pinos VCC, GND e IN do anel de LED devem ser conectados aos pinos VIN, GND e D13 do Arduino. Você pode utilizar fita dupla face para anexar o LED ao redor da câmera do celular.
Para fornecer energia para o nosso projeto, podemos conectar o Arduino via USB a um carregador de celular ou utilizar um adaptador OTG para alimentar nossa luz através do próprio smartphone e garantir maior mobilidade ao projeto.
Código
Utilizaremos a biblioteca FastLED para controlar os LEDs endereçáveis, ela pode ser instalada através do gerenciador de bibliotecas da IDE do Arduino ou através do link.
Antes de carregar o código no Arduino é necessário apenas verificar se o número de LEDs está correto em Parâmetros de Configuração. Defina NUM_LEDS para o número de LED no sua ring light.
/* #------------------------# | Ring Light | | | | Ítalo Coelho | #------------------------# */ #include <FastLED.h> #include <SoftwareSerial.h> //Parâmetros de Configuração--------------------- #define DATA_PIN 13 //Pino de controle dos LEDs #define NUM_LEDS 16 //Quantidade de LEDs //----------------------------------------------- //Variáveis de Controle bool State = true; int Brightness = 25; byte r = 255; byte g = 255; byte b = 255; //--------------------- CRGB leds[NUM_LEDS]; SoftwareSerial bluetooth( 10, 12); // RX, TX void BluetoothControl( ); void setup() { FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); //Inicializa a comunicação com o módulo HC-05 bluetooth.begin(9600); Serial.begin(9600); //Inicia todos os LEDs Brancos e 25% de Intensidade for(int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB(64,64,64); FastLED.show(); delay(250); } } void loop() { BluetoothControl(); //Recebe as configurações do Usuário feitas pelo App //Define as configurações dos LEDs for(int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(g*(Brightness/100.0)*State,r*(Brightness/100.0)*State,b*(Brightness/100.0)*State); FastLED.show(); } void BluetoothControl( ) { static String command = ""; if ( bluetooth.available()) { command += char(bluetooth.read()); delay(50); } if(command.length() == 12) { Serial.println(command); if ( command == "111111111111") // Comando para ligar a luz State = true; else if ( command == "000000000000") // Comando para desligar a luz State = false; else if ( command.indexOf("RGB") != -1) //Comando para alterar a cor da luz { String r_str = String(command[3]) + String(command[4]) + String(command[5]); String g_str = String(command[6]) + String(command[7]) + String(command[8]); String b_str = String(command[9]) + String(command[10]) + String(command[11]); r = r_str.toInt(); g = g_str.toInt(); b = b_str.toInt(); } else if ( command.indexOf("INT") != -1) //Comando para alterar a intesidade da luz { String brightness_str = String(command[9]) + String(command[10]) + String(command[11]); Brightness = brightness_str.toInt(); } command = ""; } }
Aplicativo
O aplicativo para controle da ring light está disponível neste link.
Para a utilização do aplicativo é necessário que o Bluetooth do seu celular esteja ativado e o módulo Bluetooth esteja pareado – o nome é HC-05 e a senha de pareamento 1234. Para começar a controlar a luz é só clicar em “Selecione a Ring Light” no topo da tela e escolher o módulo Bluetooth corresponde a ring light que deseja controlar.
Gostou de aprender a fazer um ring light controlado pelo celular? Não se esqueça de deixar um comentário aqui embaixo nos contando o que achou.