No processo de criação de um robô-garçom, um robô de telepresença, um robô de selfie, alguns desenvolvimentos pareceram um pecado não compartilhar com a comunidade, ou seja, criar código aberto. Uma das versões de trabalho era uma placa eletrônica, com o nome de código SB versão 4.0, usando um Arduino barato e com uma funcionalidade relativamente baixa, a saber, o Nano 3.0. A placa SB 4.0 é simples e compreensível para consolidar seu conhecimento de eletrônica e habilidades de solda durante a montagem, é funcional o suficiente para fazer seus próprios projetos práticos (por exemplo, acender uma lâmpada por sinais de um sensor de movimento e um sensor de luz ambiente ou por sua equipe via Bluetooth). e o custo dos componentes com entrega ao fazer o pedido de nossos amigos chineses com taobao foi de cerca de US $ 55 (incluindo os próprios sensores).O principal objetivo da placa SB 4.0 é a interface de hardware. Após a coleta, você pode usá-lo para receber e processar dados de vários sensores pré-instalados, além de tomar decisões e executar algoritmos. Para conveniência da depuração, foi criada uma interface no sistema operacional Windows, que exibe claramente as leituras telemétricas de sensores e uma fonte de energia, o estado dos botões e servos, e você pode enviar comandos para o microcontrolador.Nesta publicação, descreverei as características do quadro e um exemplo de sua aplicação. Novamente, tudo isso é de código aberto, licenciado sob o CC Share Non-Commercial Share Alike.Sim, já existem placas de controle e KITs semelhantes com sensores (placas Arduino com blindagens mais caras, para Raspberry Pi, para ampere de iodo), mas o SB 4.0 difere delas na presença de uma placa de energia e de um programa de controle conveniente escrito usando o ambiente de desenvolvimento LabView. Ou seja, o SB 4.0 consiste em duas placas: controle + potência. Isso será visto em fotos e vídeos.Foto das duas placas, sensor de movimento, bateria:
Programação
Para programar o microcontrolador, como sempre, usamos C / C ++. Estamos desenvolvendo o IDE do Arduino.A captura de tela mostra a interface do programa Selfiebot Control Panel, onde as leituras telemétricas dos sensores e da fonte de energia, o estado dos botões e servos são claramente exibidos, você pode enviar comandos para o microcontrolador.Captura de tela da parte da interface:
Desempenho
O SB 4.0 usa uma das plataformas mais baratas do Arduino Nano 3.0 com um microcontrolador ATmega328 de 8 bits. Isso é suficiente para processar o código e resolver problemas: controlar robôs, sistemas domésticos inteligentes, etc.
Compatibilidade
A tensão lógica é de 5 V, o que garante compatibilidade elétrica com os periféricos do Arduino.Portas de entrada / saída
Pinos de controle do microcontrolador disponíveis. Entre parênteses, ele indicou elementos pré-instalados com os quais a placa já sabe trabalhar.- 2 pinos, que podem ser configurados como entrada / saída digital e saída PWM (para dois servos digitais);
- 1 pino, entrada / saída digital (para sensor de movimento);
- 3 pinos, entrada / saída digital (para LEDs RGB);
- 1 pino, entrada / saída digital (para sensor de limite, botões);
- 1 pino, saída digital + 5V / 0V (para controlar a carga externa).
O barramento I2C e a porta UART são usados respectivamente para a placa de expansão de portas e o módulo Bluetooth.A universalidade da placa SB 4.0 é fornecida. Corresponder níveis de potência, níveis de sinal, tipo de entrada / saída! Substitua os sensores pré-instalados pelos seus:- temperatura
- nível de ruído
- umidade
- pressão, etc.
O pino de entrada opera em uma base fechada / aberta. I.e. no pino indo para o MK ou + 5V, ou 0. Esses valores estão incluídos nos dados de telemetria enviados ao software Selfiebot Control Panel.O pino de saída produz 5V com capacidade de carga de 1A ou está desativado - 0V. Aplicar tensão ou não a este conector é possível apenas por um comando externo ou por um comando do algoritmo de firmware.Não faz sentido conectar sensores analógicos a pinos digitais.Nutrição
A energia é fornecida através da tomada de 2,1 mm ou de baterias de íon de lítio com um controlador de carregamento. A fonte é determinada automaticamente.No caso de fonte de alimentação através de um soquete, a tensão de entrada recomendada é de 12 a 12,6 V. Os conversores de tensão CC-CC fornecem 7 V para servos, 5 V para USB1, USB2 e outras cargas.Um adaptador ou baterias podem ser usados como fonte de energia.Use pinos de 5V para alimentar periféricos. Ao usar uma fonte de energia externa, é possível obter até 1A a partir de um pino de 5V.O kit de fonte de alimentação inclui:- Bateria 3x18650, 1 unidade
- Bateria 18650, 3,7 V, de 2200 mAh, 3 pçs.
- Controlador de carga, 1 pc.
- 1 x conector de alimentação
- Conversores DC-DC, 4 pçs.
- Sensor Hall, 1 pc.
- Transistores, 3 unid.
- Optoacopladores e resistores.

Comunicação
O microcontrolador Arduino Nano é programado via USB com software livre padrão no site do fabricante MK. Para transferir dados entre o SB 4.0 e um computador, como sempre, escolhi o módulo Bluetooth HC-06 comum barato, a taxa de transferência de dados de 9600 Kb / s. Dados de telemetria e comandos de controle passam por esse canal sem fio.Dimensões
Consegui as dimensões da placa de potência eletrônica - 100 × 70 × 40 mm. As dimensões do painel de controle eletrônico são 90 × 70 × 45 mm. Mas tenho certeza que você ainda pode xamanizar e reduzir o tamanho.O espaçamento do contato é de 0,1 ″ (2,54 mm).Especificações do microcontrolador
- Microcontrolador: ATmega328 de 8 bits.
- Frequência do relógio: 16 MHz.
- Memória Flash: 32 KB (2 KB são usados para o carregador de inicialização, 30 KB - para armazenar o código do seu programa).
- RAM 2KB.
- EEPROM 1 Kb.
- Tensão nominal de trabalho: 5 V
Recursos da placa eletrônica SB 4.0
- Tensão operacional nominal: 12,6 V
- Tensão de entrada recomendada: 12–12,6 V.
- Corrente máxima do barramento 5 V: 1000 mA
- Portas de E / S de uso geral: 2
- Portas com suporte PWM: 2
O painel de controle inclui os seguintes elementos:- Módulo Bluetooth HC-06, 1 pc.
- Placa eletrônica do expansor de porta do microcontrolador, 1 pc.
- Microcontrolador Arduino Nano 3.0, 1 pc.
- 1 pç. Placa eletrônica de nível de iluminação
- Servos TowerPro MG966R, 2 unid.
- Fotoresistor, 1 pc.
- Sensor de movimento, 1 pc.
- 1 x LED RGB
- Botão, 1 pc.
- Fusível, 1 pc.
- Jumper, 1 unid.
- Transistor, 1 pc.
- Capacitor, 1 pc.

Uso prático
Opções para uso prático:1. Abrir / fechar janelas quando a temperatura mudar.2. Ligue / desligue o ventilador quando a umidade da sala mudar.3. Ligue / desligue a luz na presença de movimento no escuro.4. Ligue / desligue o fornecimento de água ao alterar a umidade do solo.5. Ligue a iluminação infravermelha no escuro.6. Transfira todos os dados de telemetria para o servidor via conexão com a Internet.Exemplo de aplicação da placa SB 4.0
Objetivo: desde que o botão seja pressionado, acenda a luz quando for detectado movimento.Para fazer isso, precisamos adicionalmente de um módulo de relé, uma lâmpada (220 ADC ou até 12 VCC).1. Na maioria das vezes encontramos relés 12VDC e 05VDC. O número significa que valor de tensão direta deve ser fornecido à entrada do relé.2. Considere a operação do relé SRD-05VDC da Songle, que é comum no Arduino.3. Quando a energia é aplicada ao pino Vcc e em curto ao pino “GND”, o LED verde acende.4. Desde como temos um módulo de canal único, na placa você verá apenas um pino de sinal In1. Se você definir o nível de tensão LOW como In1, o LED vermelho no módulo de relé acenderá e o relé funcionará com um clique característico. No Arduino, o comando digitalWrite (pin, LOW) é responsável por definir o nível de tensão no pino; Para retornar o relé ao seu estado anterior, use o comando digitalWrite (pin, HIGH);5. Conecte o módulo de relé à placa SB 4.0, que possui um sensor de movimento pré-instalado e um botão de usuário.5.1 O pino de sinal In1 do módulo de relé está conectado ao pino 13.5.2. No código do programa Arduino Nano, encontramos:***********************************
if (var_Tlm_SnSM == 1) { time_Move_detect = millis(); }
if (millis() - time_Move_detect < timeout_Move_detect) { Move_detect = 1; } else { Move_detect = 0; }
***********************************
Adicione estas linhas abaixo:***********************************
if (var_Tlm_BUT == 0) {
if (Move_detect == 1) { digitalWrite(PIN_D13, LOW); } else { digitalWrite(PIN_D13, HIGH); }
} else {
digitalWrite(PIN_D13, HIGH);
}
***********************************
5.3 Faça o download do novo firmware e ligue a alimentação da placa.Se o sensor de movimento detectou movimento, graças ao nosso algoritmo, o nível LOW aparece no pino da fonte de alimentação da carga externa, o relé opera, fecha o circuito e a lâmpada acende.Assim, se uma pessoa passa por um sensor de movimento, a luz acende.