Índice:

PC Arduino Basic com saída para TV: 5 etapas (com imagens)
PC Arduino Basic com saída para TV: 5 etapas (com imagens)

Vídeo: PC Arduino Basic com saída para TV: 5 etapas (com imagens)

Vídeo: PC Arduino Basic com saída para TV: 5 etapas (com imagens)
Vídeo: 🔴 Conheça o Arduino com monitor HDMI! Muuuuuita tecnologia no Arduino MKR Vidor 4000! 2024, Junho
Anonim
Image
Image
PC Arduino Basic com saída para TV
PC Arduino Basic com saída para TV
PC Arduino Basic com saída para TV
PC Arduino Basic com saída para TV
PC Arduino Basic com saída para TV
PC Arduino Basic com saída para TV

Neste Instructables, mostrarei como construir um computador retro de 8 bits rodando BASIC, por meio de dois Arduino e alguns outros componentes.

Você pode inserir as variáveis e o programa BASIC com um teclado PS2, e a saída é mostrada em um monitor com um texto de 47 colunas x 29 linhas de caracteres de 8x8 pixels (P&B), uma resolução semelhante ou melhor que o Commodore 64, igual a 40 x 25 caracteres.

Você pode vê-lo em ação no vídeo superior.

O programa pode então ser salvo no Arduino EEPROM, e você ainda pode controlar os pinos de E / S diretamente por meio de comandos dedicados básicos.

Um Arduino é o "mestre" e executa o Tiny Basic Plus, uma implementação em C do Tiny Basic, com foco no suporte ao Arduino. Ele também controla um teclado PS2. A saída é então enviada através da porta serial para o segundo Arduino, que gera a saída de vídeo graças à impressionante biblioteca MRETV.

A ideia de usar um ou mais Arduino para criar um PC de estilo antigo rodando um dialeto do Basic não é nova, mas até agora havia fortes limitações na resolução de saída. Em alguns projetos disponíveis na rede, as pessoas usaram monitores LCD, enquanto em outros, para permitir o uso de monitores, foi utilizada a biblioteca TVout, que tem uma resolução bem menor. Além disso, em muitos desses projetos, escudos especiais ou hardware devem ser construídos.

Aqui você precisa de apenas dois Arduino, alguns diodos, alguns resistores e o conector para o teclado PS2 e o monitor, como mostrado na imagem acima.

Etapa 1: construir o Arduino Master com teclado TinyBasic e PS2

TinyBasic Plus e MRETV funcionam para o antigo - e diferente - IDE Arduino.

Primeiro baixe o IDE 1.6.4 da página oficial do Arduino. Se você tiver uma versão mais recente em seu PC, o melhor é fazer o download em formato.zip e descompactá-la no seu PC. Clique neste link para baixar a versão do Windows.

Você precisa então da biblioteca do teclado PS2. Você pode encontrá-lo no final desta página. Basta descompactá-lo e copiar a pasta PS2keyboard em: arduino-1.6.4 / libraries

Finalmente, nesta página, baixe o arquivo: TinyBasicPlus_PS2.ino, descompacte e carregue-o em seu Arduino.

Esta é uma variação do TinyBasic Plus padrão, onde adicionei a biblioteca PS2 e modifiquei o código para aceitar a variável dela.

Mais detalhes sobre o TiniBasic Plus e tutoriais podem ser encontrados neste link.

Se não houver problemas e problemas de compatibilidade, o Tiny Basic já está em execução. Você pode testá-lo através de um monitor serial no seu PC. Para isso, uso o PuTTY, mas muitos outros programas estão disponíveis.

Você deve definir a porta COM correta (é a mesma que você encontra no IDE do Arduino) e taxa de transmissão = 2400

Aqui você já pode testar alguns programas em Basic apenas digitando-os com o teclado do seu PC (NB mais adiante mostrarei como conectar o teclado PS2 diretamente ao Arduino).

Experimente, por exemplo:

10 IMPRIMIR "Olá, mundo!"

20 GOTO 10

CORRE

Você pode então parar o loop infinito apenas digitando ctrl + c. Observe que essa combinação não funcionará com o teclado PS2.

Na próxima etapa, mostrarei como conectar o teclado PS2 ao Arduino.

Etapa 2: Conecte o teclado PS2 ao Arduino mestre

Conecte o teclado PS2 ao Arduino mestre
Conecte o teclado PS2 ao Arduino mestre

Peguei todas as informações e biblioteca deste Instructable.

Essencialmente, você precisa conectar os quatro pinos a seguir:

  • dados do teclado para o pino 8 do Arduino,
  • IRQ (relógio) do teclado para o pino 3 do Arduino;
  • é claro que você precisa conectar GND e + 5V também.

Eu tenho um conector PS2 fêmea antigo de uma placa-mãe de PC quebrada. Você pode simplesmente retirá-lo da 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.

Etapa 3: faça upload da biblioteca MRETV no segundo Arduino e coloque tudo junto

Faça upload da biblioteca MRETV no segundo Arduino e coloque tudo junto
Faça upload da biblioteca MRETV no segundo Arduino e coloque tudo junto

O ponto chave deste projeto é a existência da incrível biblioteca MRETV. Há um Instructable dedicado onde é descrito em detalhes.

Ele usa apenas dois resistores e dois diodos para gerar vídeo em tela cheia, com uma resolução de texto de 47 x 29 de 8x8 caracteres. Como diz na introdução, "a geração de vídeo já foi feita antes, mas não assim. FULL DUPLEX serial ainda está disponível durante a geração de vídeo". Isso permite obter os dados do Arduino "mestre" e mostrá-los no monitor. Na prática, este segundo Arduino "escravo" é usado como interface gráfica!

Como o MRETV funciona para IDE 1.6.6, baixe-o da página oficial do Arduino. Novamente, o melhor é fazer o download em formato.zip e descompactá-los no PC. Clique neste link para baixar a versão do Windows.

Faça o download da biblioteca MRETV neste link.

Descompacte-o e salve a pasta "MRETV" em: arduino-1.6.6 / libraries

Por fim, baixe TVtext_slave.rar na parte inferior desta página, descompacte-o e faça upload em seu escravo Arduino.

Se não houver mensagem de erro, você pode conectar o conector RCA. Você precisa dos dois diodos e dos resistores de 1 kOhm e 300 Ohm, conforme mostrado no esquema desta página.

Neste ponto, você pode conectar tudo junto.

A lista completa de materiais é:

  • dois Arduino Uno Rev. 3 ou dois Arduino Nano 3.x (ATmega328)
  • dois resistores 1 kOhm
  • um resistor 300 Ohm
  • dois diodos 1n4148 (x2) ou diodo de comutação de silício semelhante
  • dois plugues RCA fêmea (um para vídeo, um - facultativo - para áudio)
  • um conector PS2 fêmea
  • uma placa de ensaio e fios

O Arduino mestre envia os dados para o escravo através do cabo laranja, ou seja, o pino mestre 1 (Tx) para o pino escravo 2 (Rx). Se você precisar reenviar algum código, você deve desconectar este cabo primeiro.

Conecte então o arduino escravo a uma fonte de alimentação de 5 V, o cabo RCA à TV e o teclado ao PS2, e agora você verá o código na sua TV!

As funções deste dialeto básico são descritas em detalhes em sua página inicial (consulte o link no passo 2). Com os comandos "esave" e "eload" você pode salvar um programa básico na EEPROM. Este programa é executado por padrão cada vez que você reinicializa o Arduino mestre. Para excluí-lo, você pode usar o comando "eformat".

Um dos recursos mais importantes deste programa é que você ainda pode conduzir o I / O mestre do Arduino com comandos básicos dedicados, como

  • Pino DWRITE, valor - defina o pino com um valor (HIGH, HI, LOW, LO)
  • Pino AWRITE, valor - definir pino com valor analógico (pwm) 0..255
  • DREAD (pin) - obtenha o valor do pin
  • AREAD (analogPin) - obtenha o valor do pino analógico

Assim, você pode escrever um programa em Basic que comanda algum hardware, salvá-lo na EEPROM e depois rodá-lo automaticamente apenas reiniciando o Arduino.

Etapa 4: Opcional: usando um PCB

Opcional: usando um PCB
Opcional: usando um PCB
Opcional: usando um PCB
Opcional: usando um PCB
Opcional: usando um PCB
Opcional: usando um PCB

Você também pode construir este PC básico usando um pequeno PCB. Você pode se inspirar nas imagens desta etapa ou pode até mesmo imprimir seu quadro.

Você pode usar duas tiras de cabeçalho fêmeas com 15 orifícios para a saída de vídeo do Arduino, enquanto para o mestre eu sugiro usar quatro tiras. Desta forma, você pode usar os externos para inserir os contatos dos componentes do seu projeto.

Também acrescentei no centro as sobras de tiras, uma conectada a 5 V e a outra para GND.

Finalmente, no arquivo.rar, você pode encontrar as máscaras para gravar uma placa revestida de cobre.

Etapa 5: Comentários Finais e Agradecimentos

Este projeto não poderia ter sido realizado sem a biblioteca MRETV. Assim, meu principal agradecimento vai para seu autor, que usa a sigla Mr E.

Muito obrigado também aos autores do TinyBasic Plus:

  • Tiny Basic 68k - Gordon Brandly
  • Arduino Basic / Tiny Basic C - Michael Field
  • Tiny Basic Plus - Scott Lawrence

Obrigado também a "djsadeepa", o autor do Instructable for the connection of the PS2 keyboard.

A todos os interessados neste projecto: é mais fácil construir do que pode parecer à primeira vista. Meus principais problemas têm sido com as compatibilidades do IDE do Arduino. Se você tiver problemas, não hesite em pedir sugestões nos comentários.

Se você for bem-sucedido, escreva um comentário também ou compartilhe uma imagem do dispositivo que você construiu.

Recomendado: