Índice:

ESP32 Basic PC com saída VGA: 7 etapas
ESP32 Basic PC com saída VGA: 7 etapas

Vídeo: ESP32 Basic PC com saída VGA: 7 etapas

Vídeo: ESP32 Basic PC com saída VGA: 7 etapas
Vídeo: Como usar monitor de PC como display no Arduino 2024, Novembro
Anonim
Image
Image
Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA
Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA

Neste Instructable, vou mostrar como construir um PC estilo retro simples feito com um único ESP32 e alguns outros componentes.

Este PC executa o Tiny Basic, um dialeto simplificado do BASIC, e gera a saída para um monitor VGA.

A resolução é de 640x350 pixels, permitindo 80x25 caracteres asci em 8 cores. Um teclado PS2 pode ser conectado e usado para escrever o código, permitindo até 14059 bytes de memória.

Os pinos de E / S ESP32 podem ser acionados diretamente por comandos BASIC dedicados.

Este projeto é possível graças à incrível biblioteca VGA ESP32 escrita por Fabrizio Di Vittorio. Veja aqui para mais detalhes.

Etapa 1: Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA

Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA
Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA
Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA
Placas ESP32, instalação do Arduino IDE e configuração da biblioteca VGA

Em primeiro lugar, você precisa comprar um ESP32 revisão 1 ou superior. Existem muitas versões disponíveis, mas recomendo escolher uma com muitos pinos. Estou usando esta versão, mas acho que muitas outras também funcionam. Por exemplo, na descrição deste vídeo, você pode encontrar três outros modelos que estão abaixo de 5 dólares.

Depois de obter o quadro, você precisa prosseguir com as três subetapas a seguir:

  1. Instale o último IDE Arduino
  2. Configure o ESP32 no IDE e
  3. Instale a biblioteca VGA

Subetapa 1.

Existem diferentes métodos para programar o ESP32, mas aqui você precisa usar o IDE do Arduino mais recente (estou usando a versão 1.8.9). Para instalá-lo, você pode ir para a página IDE do Arduino e seguir as instruções.

Subetapa 2

Assim que a operação anterior for concluída, você precisará configurar seu ESP32 no IDE do Arduino. Isso não é trivial, já que o ESP32 não é (ainda?) Nativo nele. Você pode seguir este tutorial ou as etapas a seguir.

1) abra o IDE do Arduino

2) abra a janela de preferências, Arquivo / Preferências, alternativamente pressione "Ctrl + vírgula"

3) vá para "URLs adicionais do gerente da placa", copie e cole o seguinte texto:

https://dl.espressif.com/dl/package_esp32_index.json

e clique no botão OK.

4) Abra o gerenciador de placas. Vá para Ferramentas / Placa / Gerenciador de placas …

5) Procure ESP32 e pressione o botão de instalação para o “ESP32 da Espressif Systems“:

6) Neste ponto, quando você conectar seu ESP32 pela primeira vez, você deve escolher o modelo certo na longa lista de placas ESP32 disponíveis (veja a imagem nesta etapa). Em caso de dúvidas sobre o modelo, basta escolher o genérico, ou seja, o primeiro. Funciona para mim.

7) o sistema também deve escolher a porta USB correta e a velocidade de upload (normalmente 921600). Neste ponto, a conexão entre o seu PC e a placa ESP32 deve ser estabelecida.

Subetapa 3

Finalmente, você deve instalar a biblioteca FabGL VGA. [atualização em julho de 2019] Você precisa de uma versão antiga desta libray: você pode baixar o arquivo zip src.old.zip na parte inferior desta etapa, descompactar e renomear a pasta como "src" em seu

Pasta "… / arduino-1.8.9 / libraries".

Depois de fazer essas operações, você pode ir para a próxima etapa e carregar o TinyBasic modificado seguindo a próxima etapa.

Etapa 2: Upload do código Tiny Basic para o ESP32

Carregando o código Tiny Basic para o ESP32
Carregando o código Tiny Basic para o ESP32
Carregando o código Tiny Basic para o ESP32
Carregando o código Tiny Basic para o ESP32

Baixe ESP32_TinyBasicPlus_PS2_FabLab_beta.ino na parte inferior desta etapa.

Abra-o com o Arduino IDE e carregue-o em seu ESP32 bruto.

Se você não tiver mensagens de erro, o código já deve estar em execução.

Etapa facultativa: se você quiser testar o TinyBasic antes de conectar o teclado VGA e PS2, você já pode fazê-lo com um cliente SSH e telnet. Eu uso o PuTTY.

Você pode ver como fica nas fotos desta etapa.

Etapa 3: Conectando a porta VGA

Conectando a porta VGA
Conectando a porta VGA

Você precisa das seguintes peças:

  • um Conector DSUB15, ou seja, um conector VGA fêmea ou um cabo VGA a ser cortado.
  • três resistores de 270 Ohm.

Conecte os pinos 2, 15 e 21 do GPIO ESP32 ao VGA Vermelho, Verde e Azul, respectivamente, por meio dos resistores de 270 Ohm.

Conecte o VGA Hsync e Vsync aos pinos ESP32 GPIO 17 e 4, respectivamente.

Conecte os pinos 5, 6, 7, 8 e 10 dos conectores DSUB15 ao ESP32 GND.

Para a definição do pino do conector VGA DSUB15, consulte a imagem nesta etapa. NB, este é o lado da solda do conector fêmea.

Etapa 4: Conectando a porta PS2

Conectando a porta PS2
Conectando a porta PS2

Você precisa de um conector fêmea de teclado PS2.

Você pode obter um de uma placa-mãe de um PC antigo, simplesmente retire a venda com uma pistola de ar quente. Na imagem mostrada nesta etapa, você pode encontrar a função dos pinos necessários do conector PS2.

As conexões são:

  • Dados do teclado para ESP32 GPIO pino 32
  • Teclado IRQ (relógio) para ESP32 GPIO pino 33
  • Você também precisa conectar o pino 5V e o GND.

Etapa 5: Programação com Tiny Basic

Programação com Tiny Basic
Programação com Tiny Basic
Programação com Tiny Basic
Programação com Tiny Basic

Neste ponto, se você pode conectar o monitor VGA e teclado PS2 e o ESP32 para fonte de alimentação.

A imagem mostrada aqui deve aparecer no monitor. Agora você pode brincar um pouco com os comandos do Tiny Basic.

Experimente, por exemplo, o obrigatório Hello, Word! Loop infinito:

10 imprimir "Olá, mundo!"

20 goto 10

corre

Você pode mudar em quatro cores diferentes pressionando o botão esc e parar o loop com ctrl + c

Observe que se você cometer um erro de digitação, não poderá cancelá-lo! Ou melhor, você pode cancelar, mas a correção de digitação não será reconhecida. Você precisa reescrever toda a linha de comando.

Agora você pode tentar algo mais complexo, como acionar o piscar de um LED com um programa básico. Conecte, por exemplo, o ânodo LED (a perna longa) para ESP32 GPIO pino 13, e o cátodo para GND.

Então escreva:

novo

10 i = 1000

20 imprimir i

30 atrasar i

40 dwrite 13, alto

50 atraso i

60 dwrite 13, baixo

70 i = i * 9/10

80 se i> 0 vá para 20

Final de 90

corre

Você pode ver o resultado no vídeo incorporado neste Instructable.

Etapa 6: Conectando um cartão de memória SD

Conectando um cartão de memória SD
Conectando um cartão de memória SD
Conectando um cartão de memória SD
Conectando um cartão de memória SD

Um PC antigo, não importa o quão pequeno e fraco seja, não pode ser completo se você não puder armazenar seus programas permanentemente.

Nesta etapa vou mostrar como conectar um cartão de memória SD, mas infelizmente, por enquanto (espero apenas por enquanto), o armazenamento de programas não funciona!

A propósito, usei um adaptador de cartão microSD para SD e soldei 8 pinos em forma de L, conforme mostrado na imagem nesta etapa.

Em seguida, conectei os pinos dos adaptadores SD ao ESP32 de acordo com a segunda imagem, ou seja, conectei os pinos GPIO 5, 18, 19, 23 do ESP32 a SC, clock, MISO, MOSO respectivamente, mais 3,3 V e dois GND.

Eu também segui as instruções e exemplos encontrados aqui, e com o código de exemplo SD_test.ino, posso escrever no meu cartão microSD de 2 GBytes.

Assim, se alguém encontrar uma solução, por favor me informe o mais rápido possível para o meu e-mail [email protected] e irei completar este Instrutível.

Etapa 7: Agradecimentos

Agradecimentos
Agradecimentos

Desejo expressar minhas reservas a Fabrizio Di Vittorio por sua incrível biblioteca VGA ESP32. Para mais detalhes, exemplos e… Space Invaders, visite seu site aqui.

muito obrigado também aos autores do Tiny Basic:

  • Mike Field
  • Scott Lawrence
  • Brian O'Dell

Finalmente, se você gostou deste projeto, por favor, escreva um comentário ou compartilhe uma foto do dispositivo que você construiu … e, acima de tudo, vote nele no concurso do Arduino!

Recomendado: