Olá, como estão? A princípio iremos falar sobre alguns sites que podemos utilizar para programar por blocos e para demonstrar o iremos desenvolver um projeto simples com LED e botões. Entretanto para esse projeto iremos usar o KIT básico com Arduíno UNO da WJ Componentes.
Componentes Utilizados
OU
Funcionamento do Projeto Programar por Blocos
Como foi comentado anteriormente, hoje iremos demonstrar como programar o Arduíno UNO por blocos e para demonstrar realizamos um projeto simples utilizando botão, LED e Serial. Então quando o usuário apertar o botão, iremos fazer um fade ligando o LED e estaremos escrevendo uma mensagem na Serial. Em seguida quando soltarmos o botão realizaremos o fade com o LED desligando e enviando uma mensagem para a Serial.
Onde Programar por Blocos?
Existem vários sites e aplicativos que nos permite programar por blocos, contudo entre eles estão Tinkercad, Block.ino, mBlock e MAKER. Ainda assim cada um deles possui vantagens e desvantagens. Dessa forma segue abaixo uma breve explicação de cada um e suas vantagens e desvantagens.
Tinkercad
Contudo Tinkercad é o mais famoso entre os demais. Pois ele é uma website gratuito que permite a realização de protótipos, montagem de projetos eletrônicos, simulações, codificação de objetos 3D e visualização em realidade aumentada. Além disso ele faz parte do grupo de softwares da empresa Autodesk.
Vantagens
- Gratuito e Online.
- Permite Modelagem 3D.
- Possui função de exportar projeto 3D, para corte a laser e impressão 3D.
- Permite a visualização do projeto em realidade aumentada.
- Possui função de montagem do circuito eletrônico.
- Permite programar por blocos e obter o código-fonte para realizar o carregamento Arduíno UNO.
- Visualização de esquemático.
- Permite Realizar a montagem e programação em tempo real com outras pessoas.
- Permite Realizar simulações.
- Possibilita integração com Autodesk Fusion 360 e a exportação em .brd.
- Permite que professores criarem salas de aulas e atividades para seus alunos.
Desvantagens
- Possui poucos microcontroladores.
- A programação por blocos é muito limitada.
- Não realiza o carregamento direto no Arduíno UNO.
Block.ino
Em seguida temos o Block.ino, desenvolvido pela universidade de Santa Catarina, que permite programar um Arduíno Real mesmo sem ter um.
Vantagens
- Aplicação Online e Gratuita.
- Programe em blocos e obter o código-fonte para realizar o carregamento do Arduíno UNO.
- Programar um Arduíno Real.
- Realizar Simulações em tempo real.
Desvantagens
- Somente possui o Arduíno para programação.
- Não permite modificação no diagrama do circuito.
- Não realiza carregamento direto no Arduíno UNO.
mBlock
Logo depois temos o mBlock é a plataforma de codificação online e off-line totalmente gratuita, desenvolvida para te auxiliar com a programação.
Vantagens
- Aplicação Online e Gratuita.
- Programação em Blocos.
- Carregar diretamente no seu microcontrolador.
- Programar para vários microcontroladores.
- Programar juntamente um jogo ou software.
- Possui algumas extensões.
Desvantagens
- Não permite modificação no diagrama do circuito.
MAKER: Maker Coding Simulator
Contudo agora temos o MAKER é uma plataforma web e aplicativo mobile visando ensinar crianças a programar por jogos e programação por bloco.
Obs.: Por enquanto a plataforma online só permite a programação por bloco, pois, está em beta.
Vantagens
- Site Online, aplicativo mobile e parcialmente Gratuito.
- Programar em blocos e obter o código-fonte para realizar o carregamento do microcontrolador.
- Programar com editor de texto.
- Carregar diretamente no seu microcontrolador.
- Montagem do circuito eletrônico básico.
- Visualização do projeto em realidade aumentada.
- Controle via bluetooth.
- Alguns maker pack, aonde já vem como montar, programar o projeto.
- Jogos educativos de programação.
Desvantagens
- Alguns recursos são pagos.
- Permite a programação somente para Arduíno.
- Não possui tradução para o português, a linguagem padrão dele é coreano, porém, tem como trocar para inglês.
- Algumas coisas não estão traduzidas para o inglês.
Montagem do Projeto Programar por Bloco
Logo após compra dos componentes na WJ Componentes, vamos à montagem! Então conectamos o LED na protoboard com o resistor que ligamos no catodo do LED, e para finalizar o LED ligamos o anodo ao pino 3 do Arduíno UNO. Em seguida conectamos um botão na protoboard e conectamos ao pino 4 do Arduíno UNO, a seguir conectamos GND do Arduíno na protoboard.
Contudo segue abaixo uma imagem que demonstra a montagem do circuito.
Diagrama Esquemático do Projeto Programar por Bloco
Código-fonte do Projeto Programar por Bloco
Em seguida terá o código completo do projeto.
//Variáveis Globais ----------------------------------------------------------------------------------
byte cont = 0; // Variável de Controle PWM
//Setup ----------------------------------------------------------------------------------------------
void setup(){
Serial.begin(9600); // Inicializa Serial
pinMode(3, OUTPUT); // Configura LED como OUTPUT
pinMode(4, INPUT); // Configura botão como INPUT
}
//Void -----------------------------------------------------------------------------------------------
void loop(){
if (digitalRead(4) == 1) { // Verifica se o Botão foi apertado
Serial.println("Ligando"); // Imprime na Serial
analogWrite(3, cont); // Gera PWM para o pino 3
if (cont < 255) { // Verifica se i é maior que 255
cont += 1; // Incrementa +1 a i
}
} else {
Serial.println("Desligando"); // Imprime na Serial
analogWrite(3, cont); // Gera PWM para o pino 3
if (cont > 0) { // Verifica se i é menor que 0
cont -= 1; // Decrementa -1 de i
}
delay(50); // Espera 50 milissegundos
}
}
Vamos dar uma olhada mais de perto no código:
Variáveis Globais
Primeiramente declararemos uma variável do tipo byte para armazenar o PWM.
//Variáveis Globais ----------------------------------------------------------------------------------
byte cont = 0; // Variável de Controle PWM
Função Setup
Agora na função setup, inicializamos a serial com a velocidade de 9600, em seguida configuramos os pinos 3 e 4 como INPUT e OUTPUT.
//Setup ----------------------------------------------------------------------------------------------
void setup(){
Serial.begin(9600); // Inicializa Serial
pinMode(3, OUTPUT); // Configura LED como OUTPUT
pinMode(4, INPUT); // Configura botão como INPUT
}
Função Loop
Então agora na função loop, será onde será feita a realização do fade. Contudo para isso iremos verificar se o botão foi apertado, caso tenha imprimiremos uma mensagem na Serial. Em seguida geramos uma onda PWM para o pino 3 e verificamos se cont é menor que 255, se for incrementamos +1 na variável cont. Entretanto caso o botão não tenha sido apertado, imprimimos uma mensagem na Serial. Então geramos uma onda PWM para o pino 3 e verificamos se cont é maior que 0, caso seja decrementamos -1 da variável cont.
//Void -----------------------------------------------------------------------------------------------
void loop(){
if (digitalRead(4) == 1) { // Verifica se o Botão foi apertado
Serial.println("Ligando"); // Imprime na Serial
analogWrite(3, cont); // Gera PWM para o pino 3
if (cont < 255) { // Verifica se i é maior que 255
cont += 1; // Incrementa +1 a i
}
} else {
Serial.println("Desligando"); // Imprime na Serial
analogWrite(3, cont); // Gera PWM para o pino 3
if (cont > 0) { // Verifica se i é menor que 0
cont -= 1; // Decrementa -1 de i
}
delay(50); // Espera 50 milissegundos
}
}
Assim finalizamos o código do Arduíno UNO. Entretanto agora iremos verificando como este mesmo código ficará em cada um dos sites ou aplicativos.
Programar por Blocos no Tinkercad
Contudo o resultado obtido com o Tinkercad foi o mais parecido com o que nós desenvolvemos.
Código desenvolvido em Blocos:
Código-fonte Gerado:
int cont = 0;
void setup()
{
pinMode(4, INPUT);
Serial.begin(9600);
pinMode(3, OUTPUT);
}
void loop()
{
if (digitalRead(4) == 1) {
Serial.println("Ligando");
analogWrite(3, cont);
if (cont < 255) {
cont += 1;
}
} else {
Serial.println("Desligando");
analogWrite(3, cont);
if (cont > 0) {
cont += -1;
}
delay(50);
}
}
Programar por Blocos no Block.ino
Com o Block.ino tivemos apenas um problema, pois ele não permite utilizar a função analogWrite com pinos digitais. Então colocamos o pino A0 no lugar.
Código desenvolvido em Blocos:
Código-fonte Gerado:
int cont;
void setup() {
Serial.begin(9600);
pinMode(4, INPUT);
pinMode(A0, OUTPUT);
cont = 0;
}
void loop() {
if (digitalRead(4) == true) {
Serial.println("Ligado");
analogWrite(A0,i);
if (cont < 255) {
cont = cont + 1;
}
} else {
Serial.println("Desligado");
analogWrite(A0,cont);
if (cont > 0) {
cont= cont - 1; }
}
delay(50);
}
Programar por Blocos no mBlock
Entretanto no mBlock, não conseguimos acessar a função loop e tivemos que programar tudo na função setup.
Código desenvolvido em Blocos:
Código-fonte Gerado:
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
float cont = 0;
void _delay(float seconds) {
long endTime = millis() + seconds * 1000;
while(millis() < endTime) _loop();
}
void setup() {
pinMode(4,INPUT);
Serial.begin(115200);
pinMode(3,OUTPUT);
while(1) {
if(digitalRead(4) == 1.000000){
Serial.println("Ligando");
analogWrite(3,cont);
if(cont < 255){
cont += 1;
}
}else{
Serial.println("Desligando");
analogWrite(3,cont);
if(cont > 0){
cont += -1;
}
}
}
_delay(0.05);
_loop();
}
void _loop() {
}
void loop() {
_loop();
}
Programar por Blocos no MAKER
Por fim no MAKER, não conseguimos estar utilizando a Serial.
Código desenvolvido em Blocos:
Código-fonte Gerado:
float cont;
#include <Arduino.h>
void setup() {
pinMode(4, INPUT);
pinMode(3, OUTPUT);
cont = 0;
}
void loop() {
if (digitalRead(4) == true) {
analogWrite(3, i);
if (cont < 255) {
cont += 1;
}
}
else{
analogWrite(3, cont);
if (cont > 0) {
cont -= 1;
}
}
delay(0.05*1000);
}
Agradecemos sua Presença
Por fim, espero que tenham gostado e aprendido. Então compartilhe com seus colegas e deixe um comentário de qual projeto deveria ser o próximo aqui no Blog da WJ Componentes!!
Enfim estarei deixando o arquivo do Arduíno, link dos posts anteriores referentes ao projeto e software e sites utilizados.
Fique à vontade para tirar suas dúvidas nos comentários.
Software e Sites Utilizados
Post Relacionados
- Código Morse com Arduíno UNOOlá, como estão? Hoje iremos desenvolver um decodificador de código… Leia mais: Código Morse com Arduíno UNO
- Como Programar pelo Celular o Arduíno!Olá, como estão? A princípio iremos explicar como programar pelo… Leia mais: Como Programar pelo Celular o Arduíno!
- Como Programar por BlocosOlá, como estão? A princípio iremos falar sobre alguns sites… Leia mais: Como Programar por Blocos
- Contador com Botões no Arduíno UNOOlá, como estão? A princípio iremos realizar um contador. Entretanto… Leia mais: Contador com Botões no Arduíno UNO
- Jogo da Forca com Arduíno UNOOlá, como estão? A princípio iremos falar sobre a Serial… Leia mais: Jogo da Forca com Arduíno UNO
Posts mais Recentes
- Programando Relé RF 4331 -Instruções de emparelhamento do modo de alternância Modo de… Leia mais: Programando Relé RF 433
- Acionando motor DC por meio do pino “Touch” do ESP-32Neste projeto, vamos explorar uma aplicação ainda mais dinâmica e… Leia mais: Acionando motor DC por meio do pino “Touch” do ESP-32
- Acendendo led RGB por meio do pino “Touch” do ESP-32No último post, exploramos o fascinante mundo dos pinos touch… Leia mais: Acendendo led RGB por meio do pino “Touch” do ESP-32
- Utilizando os Pinos touch do ESP32Nesse projeto Vamos aprender a usar os pinos touch´s do… Leia mais: Utilizando os Pinos touch do ESP32
- Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduinoeste guia, vou levá-lo através dos passos para programar uma… Leia mais: Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduino
Julio Cesar Bonow Manoel
Cursando Engenharia da Computação pelo Centro Universitário Facens e atua no desenvolvimento de projetos na WJ Componentes. Participante da equipe de robótica Omegabotz.
Deixe um comentário