Microcontrolador: Arduino

Quando se fala em robótica é difícil não pensar em arduino. Mesmo assim, as vezes até para os veteranos, ele ainda  é uma ferramenta de difícil compreensão, fato é, que o arduino é uma ferramenta gigante e é improvável que utilizemos todas as suas funções. Mesmo assim, as vezes precisamos de alguma funcionalidade que nem sabíamos que ele tinha. Assim, segue uma pequena lista de algumas funcionalidades para melhorar sua experiência com o arduino.

Funções nativas da placa e da área de trabalho:

Múltiplas abas

Este é um recurso para organização do código, ele permite que você crie várias abas e as nomeie de acordo com suas necessidades. Para criá-las basta clicar na seta do canto superior direito:

Captura de tela de 2018-09-22 18-33-01

Vale ressaltar que essa funcionalidade apenas junta as abas em um código só na compilação, de acordo com a ordem alfabética das abas. Então eventuais erros de compilação podem acontecer por variáveis ou funções que são criadas em certas abas e são usadas em abas anteriores

Funções de Tempo

Algo costumeiro na robótica são funções que queremos que se repitam por um período de tempo, para isso usamos a função delay(), mas as vezes queremos ler um sensor enquanto o robô gira, por exemplo, só que a função delay prende o robô naquela ação estática impedindo de ler o sensor. Existem muitas maneiras de se solucionar esse problema, mas geralmente envolvem bibliotecas como a de thread, mas vamos solucionar esse problema com uma função nativa do arduino que é a millis(). essa função retorna o tempo de funcionamento do arduino em milisegundos.

Assim, a função delay pode ser substituída por algo como:


int tempo = millis();
int delay = 1000; //Tempo de delay em ms
while(millis()-tempo<delay){
//executar o código
}

view raw

Millis.cpp

hosted with ❤ by GitHub

Arduino Nano

Caso você precise de mais de um microcontrolador ao mesmo tempo, o que algumas vezes é necessário para realizar pequenas ações em paralelo, não se desespere, não vai ser necessário acoplar mais um arduino grande em sua máquina: pode-se usar o arduino nano!

Isso mesmo, além de mais compacto em relação aos da mesma linha, esse é muito versátil e pode desempenhar ações tão complexas quanto os outros, embora seja mais lento e com menor memória, este arduino pode ler sensores, controlar motores e armazenar informação enquanto o principal processa outras informações. Além disso ele pode ser utilizado para controlar pequenos robôs como os que seguem linha em velocidade que precisam de menos peso e espaço.

Bibliotecas externas:

Fora o uso das funções nativas também é possível utilizar-se de outras funções provindas de bibliotecas. O próprio arduino é muito interessado no uso dessas bibliotecas pois entende que elas melhoram e muito a vida dos usuários, inclusive criou tutoriais de como criar sua própria biblioteca e além disso pode-se pesquisar e baixar bibliotecas dentro da própria plataforma do arduino.

Dessa forma, o ideal é pesquisar bem antes de tentar usar a força bruta para resolver problemas pois algumas vezes já existem bibliotecas para isso. Para ajudar, segue a lista de algumas famosas (ou não) que quebram um bom galho:

Ultrasonic >>     Faz leituras de sensores ultrasonicos

Servo >>            Facilita o uso de servo motores

SoftPWM >>     Permite que portas que não são PWM se tornem saídas PWM