Olá caro leitor, tudo bem? Neste artigo será apresentado como criar um projeto com o COREDuino em conjunto com o Pinguino IDE.
O Pinguino é projeto Open Hardware e Open Source, que oferece ferramentas de hardware e software, de modo a permitir o desenvolvimento de projetos com os microcontroladores PIC da Microchip.
O Pinguino oferece uma IDE para o desenvolvimento do firmware, diversas placas com microcontroladores PIC e um conjunto de bibliotecas. Esse conjunto de bibliotecas é bem similar às encontradas na plataforma de desenvolvimento do Arduino. Além da IDE, hardware e o conjunto de biblioteca, o Pinguino oferece também o firmware de Bootloader, que uma vez gravado na placa não se faz necessário o uso de gravador externo, para descarregar o firmware na placa.
Para mais informações sobre o Pinguino recomendo o artigo Pinguino: Programando PIC como Arduino, escrito pelo André Curvelo. Nesse artigo o Andre Curvelo explica desde instalar a IDE até gravar o firmware na placa.
Criando o Projeto Hello World
Uma vez que você caro leitor já conferiu o artigo do André, instalou a Pinguino IDE e já gravou o firmware na placa, vamos criar o famoso projeto de “Hello World” para a COREDuino. O projeto consiste em escrever uma mensagem no display de LCD 16×2 e piscar LED com uma frequência de 1 Hz.
PS: No momento que estou escrevendo este artigo estou utilizando a Pinguino IDE 11.0 e a versão do firmware do bootload v.4.x.
Criando Novo Projeto
Para criar um novo projeto no Pinguino IDE, devemos clicar em File -> New.
Após criar novo projeto na IDE do Pinguino, criar estrutura básica, semelhante a IDE do Arduino, com duas funções; void setup e void loop, conforme pode ser visto na figura abaixo:
Configurando o Projeto
Nesta etapa iremos configurar o projeto para o COREDuino. É configurado: a arquitetura, a interface de programação, a versão do Bootloader (caso opte pelo Bootloader) e por fim o microcontrolador alvo.
Devemos clicar em Settings -> Board Configuration. Em seguida deve abrir a janela Pinguino IDE – Board Configuration. A seguir temos a imagem da janela com os parâmetros configurados para o COREDuino.
Ao final clique em Accept para salvar as configurações.
Pin Name PINGUINO
Antes de começar editar o código fonte do projeto, é necessário analisar o circuito elétrico do COREDuino e mapa de pinos do Pinguino. Feito essa análise, podemos montar uma tabela correlacionando os pinos do Pinguino com a placa COREDuino.
Tabela correlacionando os pinos do Pinguino com os do COREDuino
| Pin Name PINGUINO | Pin MCU | Pin COREDuino |
| 18 | RE0 | LCD EN |
| 20 | RE2 | LCD RS |
| 19 | RE1 | LCD RW |
| 5 | RB5 | LCD D4 |
| 4 | RB4 | LCD D5 |
| 3 | RB3 | LCD D6 |
| 2 | RB2 | LCD 47 |
| 29 | RA4 | LCD BACKLIGHT |
| 0 | RB0 | LED0 |
Editando o código fonte do projeto
Como observado no circuito elétrico do COREDuino, o display de LCD esta configurado no modo 4 bit. E analisando a função de inicialização do display de LCD fornecida no conjunto de bibliotecas do Pinguino. A seguir temos o protótipo da função que inicializa os pinos do display.
// protótipo da função void lcd_pins(u8 rs, u8 enable, u8 d0, u8 d1, u8 d2, u8 d3, u8 d4, u8 d5, u8 d6, u8 d7)
Você caro leitor já deve ter notado que a função está preparada para trabalhar no modo 8 bit. E agora? Como informar que o meu display esta no modo 4 bit? Simples, informe os 4 pinos que estão ligados ao display, e os bits restantes devem ser preenchidos com 0.
A seguir apresentada a função que inicializa os pinos do display de LCD e a função que inicializa o display LCD 16×2.
// Inicializa Displays de LCD 16x2 lcd.pins (20,19,18,5,4,3,2,0,0,0,0); lcd.begin(16, 2);
E para encerrar, restam os pinos do backlight do display e o LED. Para essa tarefa iremos utilizar a função pinMode, onde devemos informar o número do pino e modo de operação (output ou input). Para este projeto todos os pinos são configurados no modo output. A seguir é apresentado todo o código fonte do projeto:
/*-----------------------------------------------------
Projeto: Hello World COREduino PIC18F4550
Autor: Evandro Teixeira
-----------------------------------------------------*/
void setup()
{
// put your setup code here, to run once:
lcd.pins (20,18,5,4,3,2,0,0,0,0); // Inicializa pinos do Displays
lcd.begin(16, 2) ;// LCD 16x2
pinMode(29,OUTPUT); // inicializa pino backlight
digitalWrite(29, HIGH); // liga backlight
pinMode(0,OUTPUT); // inicializa pino LED0
// Escreve Texto no Display
lcd.print("Hello World");
lcd.setCursor(0, 1);
lcd.print("COREDuino PIC18F");
}
void loop()
{
// put your main code here, to run repeatedly:
toggle(0); //alterna LED0 entre Ligado e Desligado
delay(1000); // atraso de 1 segundo
}
Compilando o Projeto & Gravando o Firmware
Após a editar o do código fonte, é necessário compilar o projeto. Para realizar essa tarefa clique em Pinguino -> Compile F5. Em seguida deve abrir a janela Pinguino IDE Config board, que informa; microcontrolador, arquitetura e versão do bootloader. Em seguida clique em Compile.

Caso não exista nenhum erro no código fonte, em seguida deve abrir a janela Pinguino IDE –Compi… informando que o projeto foi compilado. Em seguida deve clicar em Ok.

Caso exista algum erro no código fonte, em seguida deve abrir a janela Pinguino IDE –Compi… informando que o projeto não foi compilado. Em seguida deve clicar em Ok. E corrija o código fonte.

Gravando o firmware no COREduino. Com a placa conectada ao computador via cabo USB, pressione a push buttun CH5 (RESET – MCLR) para entrar no modo Bootloader. Em seguida clique em Pinguino -> Upload F6. Ao final do processo deve-se abrir a janela Pinguino IDE – Upload done. Em seguida clique em Ok.

Conclusão
Com os recursos disponíveis na placa do COREDuino PIC18F4550 e as facilidades oferecidas pela plataforma Pinguino, auxilia você caro leitor no aprendizado e no desenvolvimento de suas aplicações.
Reitero o meu pedido, para que você monte o seu COREDuino, divulguem e compartilhe essa ideia. Para que assim motive mais pessoas a desenvolver soluções open source e open hardware em nosso país.
Aprenda mais
Referências










