Simulino: simulando Arduino

Vamos simular o Arduino?

Essa ideia não é nova, existem vários tutoriais por aí de como utilizar o Proteus ISIS para simular um Arduino, mas aqui vai um projeto mais organizado, com aparência e funcionalidade mais fiéis possíveis às queridas plaquinhas.
O apelido proposto para esse projeto é o "Simulino".

Simulino Uno no Proteus ISIS

O primeiro projeto é baseado no Arduino Uno R3, e tentei deixar com a mesma "cara" da placa, como mostra a figura acima.
No pacote de download, está disponível uma demostração simples, utilizando um LCD, teclas, LEDs e um terminal serial.


Para testar esta demostração, apenas abra o arquivo "SimulinoUno_Demo.DSN" e selecionar "PLAY".
Enviem suas alterações e melhorias! Espero que isso ajude os iniciantes, principalmente quando temos dificuldades de conseguir componentes para testar junto com nossos Arduinos.

PIC18DevBoard: simulando placa de desenvolvimento para PIC18

Estou trabalhando em algumas "placas" de desenvolvimento simuladas no Proteus VSM. O objetivo destes projetos é desenvolver plataformas de baixo custo para iniciantes em microcontroladores, junto com códigos de exemplo simples mostrando os primeiros passos para no desenvolvimento de sistemas embarcados.
A primeira plataforma traz um PIC18, muito difundido entre estudantes e hobbistas. A placa ainda não está completa, mas já possui recursos suficientes para testarmos muitas características do microcontrolador.

PIC18DevBoard

Download

[DOWNLOAD]

Esse pacote trás os projetos de hardware e firmware. Apenas descompacte o arquivo no local que preferir.


Hardware

A primeira versão da placa traz os seguintes recursos:
  • PIC18F4520;
  • 4x LEDs;
  • 4x chaves;
  • LCD 16x2;
  • Potenciômetro para conversor A/D;
  • Terminal serial;
  • EEPROM SPI 512 kbit.
Utilize o Proteus ISIS 7 para abrir a placa localizada no caminho: "PIC18DevBoard\Board".
Mais recursos serão adicionados ao hardware nas próximas versões.


Firmware

Para facilitar o trabalho com o microcontrolador e prever compatibilidade, estou escrevendo bibliotecas de drivers. Estas bibliotecas fazem uma interface entre o programa escrito pelo usuário e o hardware do microcontrolador.
Nessa versão inicial estão disponíveis 5 projetos de exemplo:
  • BasicDemo: código fonte com o mínimo necessário para ler uma entrada e ativar uma saída do PIC18. Sugiro que iniciantes comecem por este exemplo;
  • InputOutput: praticamente as mesmas funções do BasicDemo, mas utiliza o driver de I/Os e manipula mais entradas e saídas;
  • HelloLCD: imprime uma mensagem no LCD, utilizando o driver;
  • HelloSerial: imprime uma mensagem no terminal serial, utilizando o driver UART;
  • ADConverter: exemplo mais completo, lê a tensão do potenciômetro por meio do conversor A/D e mostra o resultado nos LEDs, no LCD e no terminal serial;
Mas tenha em mente: o uso desse tipo de bibliotecas facilita o desenvolvimento, mas limita o aprendizado.
Utilize o MPLAB X IDE para abrir os projetos. Os projetos de exemplo estão localizados no caminho: "PIC18DevBoard\Firmware\Examples".
Em breve irei escrever postagens dedicadas para cada exemplo, explicando cada um com detalhes, além de mais exemplos utilizando os demais recursos do microcontrolador.


Toolchain

Os projetos foram testados utilizando o MPLAB X IDE, e duas opções de compilador: MPLAB C18 e SDCC. As versões utilizadas foram as seguintes (clique nos links para downloads):
Porém o projeto não deve se limitar a essas ferramentas e essas versões.


Compilando e executando os exemplos

Vamos utilizar o exemplo "HelloLCD" para demonstração:

1 - Inicie o MPLAB X e selecione "File->Open Project...";


2 - Localize a pasta "PIC18DevBoard\Firmware\Examples\HelloLCD.X" e clique em "Open Project";


3 - Agora vamos compilar o projeto. Selecione "Run->Clean and Build Prject (HelloLCD)";


4 - Após o processo de compilação terminar, devemos obter um resultado semelhante ao da figura abaixo;


5 - Com o firmware compilado, vamos executar a simulação no Proteus ISIS. Inicie o Proteus e selecione "File->Open Design...";


6 - Localize o arquivo em "PIC18DevBoard\Board\PIC18DevBoard.DSN" e selecione "Abrir";


7 - Com o projeto aberto, clique com o botão direito sobre o PIC18F4520 e selecione "Edit Properties";


8 - Na janela de propriedades do componente, clique no ícone com o símbolo de uma pasta;


9 - Localize o arquivo "PIC18DevBoard\Firmware\Examples\HelloLCD.X\dist\PIC18DevBoard_C18\production\
HelloLCD.X.production.cof" e selecione "Abrir". Esse é o arquivo binário que seria gravado no microcontrolador. Depois clique em "OK";


10 - Pronto, agora é só iniciar a simulação clicando no botão "PLAY", no canto inferior direito da tela.


O resultado esperado é que o microcontrolador imprima as seguintes mensagens no LCD:


Para os demais exemplos, siga o mesmo passo-a-passo.


Colaborações são bem vindas! Não hesite em propor melhorias e correções.