robotinics
25/05/2019

Temos problemas

Infelizmente a bateria de 4200mah esta ruim, passou o dia inteiro carregando e ainda esta com 4.5Volts.

Novidades

Controle de Bateria

Hoje implementei o controle de carga automática do módulo base.

A bateria é o módulo que inicia, desta forma se o robô estiver desconectado da fonte ele consegue dar partida.

O problema é quando a bateria esta baixa. Mas é assim que irá ficar!

Carga Automática

O Controle de Carga automática testa a tensão da bateria, abaixo de 9Volts, ele desliga automaticamente.

De 10V até 9.0V ele dá avisos sobre a bateria, também inclui um pino 6, que pode ser conectado um led, e irá piscar quando a bateria estiver baixa.

Quando a bateria acima de 10V o led ficará aceso.

Quando a bateria estiver abaixo de 9V, ficará apagado.

Proteção de carregamento

Inclui também um controle, para que toda vez que chavear para bateria, o carregador de bateria irá desligar. Desta forma, evito quebrar o carregador.

Carga automática de Bateria

Implementei, também o controle de carga automática caso a bateria esteja na alimentação externa, e a bateria estiver baixa. Desta forma, dou alguma inteligência ao circuito.


robotinics
23/Maio 2019

Ontem chegou o sensor de tensão e conector da bateria de lipo.

Com estes dois últimos equipamentos, agora eu consigo finalizar a montagem da base.

Devido a pouca memória, estarei retirando o modulo do GPS da Base, e incluindo no módulo do meio.

Infelizmente nem tudo dá para fazer com o arduino nano. Com esta modificação, o espaço do processador esta em 39%, o que garante um funcionamento coerente.

Criei um novo comando VBAT, e mudei o VOLTS para leitura da voltagem do sistema.

Ficando o VBAT, para leitura apenas da bateria. A diferença entre o VBAT e o VOLTS, é que o VBAT esta lendo a tensão antes do relê. Desta forma, quando o relê estiver chaveado para a alimentação externa, ainda sim, o VBAT lerá a bateria.

Estou em um dilema, pois quando a bateria estiver totalmente descarregada, o sistema não conseguirá inicializar. Pois o primeiro start é sempre com a bateria.

Talvez, inverta a entrada, deixando o padrão para Externa.

Agora, comecarei a implementar a verificação da necessidade de recarga.

Desta forma, quando o sistema verificar que a bateria esta descarregada, automáticamente chaveia a recarga da bateria. Deixando para alimentação externa.

A questão da Bateria, ainda tem uma ultima duvida. Preciso incluir um diodo para evitar medir a tensão da externa, quando ambas estiverem ativas no sensor da bateria.

Outra atividade que melhorei foi a impressão do suporte Laser.

Segue as fotos do projeto:

robotinics
MBase

Hoje foi um dia longo, escrevi praticamente do zero, o módulo MBase.

Hardware

Hardwares instalados na Base:

  • Ponte H
  • Sensor de Voltagem
  • Sensor de Corrente
  • Reles para chaveamento
  • Bluetooth
  • GPS
  • Sensor Humidade e Temperatura (DHT11)

Pinout da placa

O pinout é o posicionamento dos pinos, representando as ligações com o processador.

 //Motor 
define PINO_ENA 6
define PINO_IN1 8
define PINO_IN2 9
define PINO_IN3 10
define PINO_IN4 11
define PINO_ENB 7
int pinHumidade = A2; //ok
int pinVoltagem = A5;
int pinAmp = A4;
int pinReleVago= 4;
int pinReleChave = A0;
int pinReleCarregador= 5;
int pinLedGreen = 6; //Aviso de bateria
int pinBTTX = A7;
int pinBTRX = A6;
int pinVoltagemBat = A1;

Comandos

Os comandos disponíveis de ação, permitem realizar as leituras ou ações no dispositivo:

   Serial.println("MAN - Manual de comandos"); 
Serial.println("VOLTS - Leitura de voltagem do sistema");
Serial.println("VBATT - Leitura de voltagem da bateria");
Serial.println("AMPS - Leitura de corrente da bateria");
Serial.println("FRENTE - Avança o robô");
Serial.println("PARAR - Para o robo");
Serial.println("GIRADIR - Gira a direita");
Serial.println("BATERIA - Chaveia P Bateria");
Serial.println("EXTERNA - Chaveia P alim. externa");
Serial.println("LE_ALIMENTACAO - Verifica alimentacao ");
Serial.println("GIRAESQ - Gira a esquerda");
Serial.println("CARR_ON - Ativa o carregador");
Serial.println("CARR_OFF - Desativa o carregador");
Serial.println("VAGOON - Ativa o Rele Vago");
Serial.println("VAGOOFF - Desativa o Rele Vago");
Serial.println("DHT11 - HUMIDADE/TEMPERATURA");

Leituras continuas

O Arduino, permite um ciclo constante de Leituras para os devices. Algumas são constantes, outras sazonais.

//Realiza Leituras de dispositivos
void Leituras()
{
Serial_Read();
Bluetooth_Read();
Le_Volts();
Le_Amp();
Le_DHT11();
Le_GPS();
}


Pendências

Falta implementar os controles e monitoramento da bateria.

Seguindo a regra a seguir:

  1. Ao ligar o device, deve sempre indicar o padrão de bateria.
  2. Ao verificar que a alimentação externa esta ativa, deve chavear para alimentação externa
  3. Quando em alimentação externa, e com a bateria em nível inferior de 90% de carga, deve iniciar a recarga.
  4. Quando o robô estiver com carga inferior a 70% deve notificar através de mensagem na serial.
  5. Quando o robô estiver com carga inferior a 60% e estiver com alimentação externa, deve automaticamente chavear para este.

Download

Vídeos

Apresentação do módulo

Alimentação Externa

SSC
Correção no firmware no FelineSrv.ino

Corrigi a versão do firmware do FelineSrv.ino, com esta correção garanto que o envio e recebimento de dados do TCP <-> Serial, foi corretamente estabelecidos.

Utilizei o nc (netcat) do linux para testar.

Ainda resta alguns bugs no ssc.

Vamos ao trabalho!

robotinics
Funcionalidades de Controle de Servo

Foi implementado os comandos SERVOX e SERVOY, para posicionamento dos servo motores da cabeça.

Comandos como varre servo e outras funcionalidades não serão desenvolvidas nessa versão, ficando para a próxima.

A versão 2.0 do módulo MCabeca2 esta encerrada.

Agora, estarei iniciando o módulo MBase, que será responsável pelo controle dos devices da base de rodas.

Como sersor de alimentação, corrente, reles liga desliga, sersor de voltagem, entre outros módulos.

Estarei também corrigindo o livro, para incluir estes novos módulos.

Lista final dos comandos do módulo MCabeca2

  • MAN – Manual de comandos
  • ACENDEOLHOS – Acende a luz dos olhos
  • APAGAOLHOS – Apaga a luz dos olhos
  • OLHODIREITO – Acende a luz dos olho direito
  • OLHOESQUERDO – Acende a luz dos olho esquerdo
  • ACEL – Acelerometro
  • ULTRA – Ultrasom
  • GAS – Sensor Gas
  • VERSAO – Versao do Firmware
  • TESTE – Teste de Movimento
  • LASERON – Acende o Laser
  • LASEROFF – Apaga o Laser
  • LUZAZULON – Acende luz azul da cabeça
  • LUZAZULOFF – Apaga luz azul da cabeça
  • LUZVERDEON – Acende luz verde da cabeça
  • LUZVERDEOFF – Apaga luz verde da cabeça
  • LUZVERMELHAON – Acende luz vermelha da cabeça
  • LUZVERMELHAOFF – Apaga luz vermelha da cabeça
  • SERVOX:posicao; – Posiciona no angulo o servo X
  • SERVOY:posicao; – Posiciona no angulo o servo Y
  • DHT22 – SENSOR HUMIDADE E TEMPERATURA
robotinics
Melhoria no MCabeca2

Foi implementado em 8/4/2019, nova versão do MCabeca2, onde inclui as seguintes facilidades:

  • DHT22 – Sensor de Humidade e Temperatura
  • Correção do Sensor de proximidade
  • Implementação das funcionalidades do Led
  • Correção da leitura serial de comandos
  • Modificações do código
  • Comando de ação do Laser

Pendências

Inclusão de comando de posicionamento do servo-motor X e Y

Sem categoria SSC
Versão 1.1 Beta

Versão realizada em 21/04/2019.

Mudança de layout na tela de configuração

Inclusão do meu site
Alinhamento e modificações nas configurações

Entre as modificações realizadas:

  • Alinhamento dos botões e componentes
  • Criação de agrupamento de componentes TCP, Serial Parâmetros.
  • Ajuste das abas
  • Implementação do String de Inicialização, para permitir inclusão de parâmetro para reconhecer que a conexão Serial esta pronta para ser usada, desta forma permitir subir o Socket de forma automática.
  • Bloco Hexa String, permite incluir um string de fim de bloco, permitindo o controle do bloco. Tambem utilizado para marcar fim de linha.
Paginação de controle e visualização de dados trafegados na TCP

Tem as mesmas funcionalidades da aba Serial, porem permite visualizar os dados do Socket.

Isolamento entre informações de conexão Serial e TCP.

Browser melhorado

Aparência do browser melhorada, com opção de coloração para indicação de status de conexão.

Inclusão de negrito nos blocos de status.

Dicas Projetos Sem categoria Shell Script
Motion AVI 2 MP4

Português:

O objetivo destes scripts são de permitir interagir de forma facil e prática a partir do reconhecimento de movimento do programa do linux motion.

Os scripts são dois:

analisa_img.sh

Executa um script, permitindo a programação de outros comandos associados ao reconhecimento de imagem e/ou analise e filtragem da imagem capturada.

analisa_avi.sh

Executa um script, permitindo a progração de outros comandos associados a conversão para formato MP4, permitindo assim a visualização através do browser.

😉

Este script pode ser modificado a medida de sua necessidade, peço apenas que no uso, envie um email para marcelomaurinmartins@gmail.com, informando a finalidade. Justamente para que eu veja os frutos de 3 dias de trabalho, realmente auxiliaram alguem em algum lugar do mundo 

Complemento: 

Para o perfeito funcionamento deste script é necessário instalar préviamente os seguintes pacotes:

ffmpeg – realiza a conversão do arquivo avi para mp4

sudo apt-get install ffmpeg

Instalação

  1. Deve-se criar as pastas /projetos/sosconsulta/linux/ eu recomendo mudar o caminho da pasta, porem será necessário mudar toda a referencia nos scripts. :-0

2. Copie a pasta analisa_img para o caminho indicado no passo 1

Entre na pasta; cd /projetos/sosconsulta/linux/analisa_img/

3. Rode o Makefile; make all

Este procedimento, irá instalar os scripts na pasta /usr/local/bin

4. Configure o arquivo motion.conf, editando em /etc/motion, vim motion.conf

Altere o arquivo, incluindo:

on_movie_end /usr/local/bin/analisa_avi.sh %f

caso tenha threads.conf, faça nas mesmas, se houver necessidade.

Git:

https://github.com/MarceloMaurin/motion_avi_mp4/blob/master/analisa_img/analisa_avi.sh

English

The purpose of these scripts is to allow easy and practical interaction from the motion recognition of the linux motion program.

The scripts are two:

analisa_img.sh

Performs a script, allowing programming of other commands associated with image recognition and / or analysis and filtering of the captured image.

analisa_avi.sh

It executes a script, allowing the programming of other commands associated with the conversion to MP4 format, thus allowing the visualization through the browser.

😉

This script can be modified to suit your needs, just ask that in use, send an email to marcelomaurinmartins@gmail.com, stating the purpose. Just so I can see the fruits of 3 days of work, really helped someone somewhere in the world 

Complement:

For the perfect operation of this script it is necessary to install the following packages:

ffmpeg – performs conversion from avi file to mp4

sudo apt-get install ffmpeg

Installation

😮

1. You should create the folders / projects / sosconsulta / linux / I recommend changing the folder path, however it will be necessary to change the entire reference in the scripts.  

2. Copy the analisa_img folder to the path indicated in step 1

Enter the folder; cd / projects / sosconsulta / linux / analisa_img /

3. Run the Makefile; make all

This will install the scripts in the / usr / local / bin folder

4. Configure the motion.conf file by editing in / etc / motion, vim motion.conf

Change the file, including:

on_movie_end /usr/local/bin/analisa_avi.sh% f

if it has threads.conf, do it on them, if need be.

Git:

https://github.com/MarceloMaurin/motion_avi_mp4/blob/master/analisa_img/analisa_avi.shThis entry was posted in Sem categoria. Bookmark the permalink.

maurinsoft.com.br