Você está na página 1de 11

Neste Instructables vou mostrar como construir um

computador retro de 8 bits rodando o BASIC, por meio de dois


Arduino e alguns outros componentes.

Você pode introduzir 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 8x8 pixels de caracteres (B
& W), 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 através de
comandos dedicados básicos.

Um Arduino é o "mestre" e roda o Tiny Basic Plus , uma


implementação C do Tiny Basic, com foco no suporte ao
Arduino. 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 idéia de usar um ou mais Arduino para criar um PC de estilo


antigo executando um dialeto de Basic não é nova, mas até
agora há algumas limitações fortes na resolução de saída. Em
alguns projetos disponíveis na rede, as pessoas usavam telas
LCD, enquanto em outros, para permitir o uso de monitores, foi
utilizada a biblioteca TVout, que possui uma resolução muito
menor. Além disso, em muitos desses projetos, escudos
especiais ou hardware precisam ser construídos.
Aqui você precisa apenas de dois Arduinos, alguns diodos,
alguns resistores e o conector para o teclado PS2 e o monitor,
como mostrado na figura acima.
Adicionar dicaPerguntarComenteBaixar

Object 1

Etapa 1: Crie o Arduino Master com o TinyBasic


e o teclado PS2

O TinyBasic Plus e o MRETV funcionam para o IDE mais antigo -


e diferente - do Arduino.

Primeiro baixe o IDE 1.6.4 da página oficial do Arduino. Se


você tem uma versão mais recente no seu PC, o melhor é
baixá-lo no formato .zip e descompactá-lo no seu PC. Clique
neste link para baixar a versão do Windows.

Você precisa então da biblioteca do PS2keyboard . Você


pode encontrá-lo na parte inferior desta página. Apenas
descomprima-o e copie a pasta PS2keyboard em: arduino-1.6.4
\ libraries

Finalmente, nesta página, baixe o


arquivo: TinyBasicPlus_PS2.ino , descompacte e carregue no
seu Arduino.

Esta é uma variação do padrão TinyBasic Plus, onde eu


adicionei a biblioteca PS2 e modifiquei o código para aceitar a
viaria dele.
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 este propósito eu uso
o PuTTY , mas muitos outros programas estão disponíveis.

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

Aqui você já pode testar algum programa no Basic apenas


digitando-os com o teclado do seu PC (NB mais adiante
mostrarei como conectar o teclado PS2 diretamente ao
Arduino).

Tente por exemplo:

10 PRINT "Olá, mundo!"


20 GOTO 10
CORRE
Você pode então parar o loop infinito apenas digitando ctrl +
c. Note que esta combinação não funcionará para o teclado
PS2.

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


Arduino.

A
n
• e PS2Keyboard.rar
x
o
s
Baixar

• TinyBasicPlus_PS2.rar

Baixar

Adicionar dicaPerguntarComenteBaixar

Passo 2: Conecte o teclado PS2 ao mestre


Arduino
Eu tenho todas as informações e biblioteca deste Instructable .

Essencialmente, você precisa conectar os quatro pinos


seguintes:

 dados do teclado para o pino 8 do Arduino,


 IRQ do teclado (relógio) para o pino 3 do Arduino;
 É claro que você também precisa conectar GND e + 5V.
Eu tenho um conector fêmea PS2 antigo de uma placa-mãe de
PC quebrada. Você pode simplesmente vendê-lo com uma
pistola de calor.

Na imagem mostrada nesta etapa, você pode encontrar a


função dos pinos necessários do conector PS2.
Adicionar dicaPerguntarComenteBaixar

Passo 3: Faça o upload da biblioteca MRETV no


segundo Arduino e junte tudo
O ponto chave deste projeto é a existência da
fantástica biblioteca MRETV . Existe 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 se diz na introdução, "a geração de vídeo foi
feita antes, mas não assim. A série FULL DUPLEX 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 "escravo" Arduino é usado como uma interface
gráfica!

Como o MRETV funciona para o IDE 1.6.6, baixe-o na página


oficial do Arduino. Novamente, o melhor é baixá-lo no
formato .zip e descompactá-lo no seu PC. Clique neste link para
baixar a versão do Windows.

Baixe então a biblioteca MRETV deste link.

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


libraries

Finalmente baixe TVtext_slave.rar na parte inferior desta


página, descompacte-o e faça o upload em seu escravo
Arduino.

Se não houver mensagem de erro, você poderá conectar o


conector RCA. Você precisa dos dois diodos e dos resistores de
1 kOhm e 300 Ohm, como mostrado no esquema nesta página.

Neste ponto, você pode conectar tudo.


A lista completa de materiais é:

 dois Arduino Uno Rev. 3 ou dois Arduino Nano 3.x (ATmega328)


 dois resistores 1 kOhm
 um resistor de 300 Ohm
 dois diodos 1n4148 (x2) ou diodo de comutação de silício
similar
 dois plugue RCA fêmea (um para vídeo, um - facultativo - para
áudio)
 um conector fêmea PS2
 uma tábua de pão e fios
O mestre Arduino envia os dados para o escravo através do
cabo laranja, ou seja, pino mestre 1 (Tx) para o pino escravo 2
(Rx). Se você precisar fazer novo upload de algum
código, desconecte este cabo primeiro .

Conecte então o arduino do escravo a uma fonte de


alimentação de 5V, o cabo RCA à TV e o teclado ao PS2, e você
deverá ver o código na sua TV!

As funções deste dialeto básico são descritas em detalhes em


sua homepage (veja 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ê redefine o Arduino mestre. Para apagá-lo, você pode usar
o comando "eformat".

Uma das características mais importantes deste programa é


que você ainda pode dirigir o mestre de E / S do Arduino com
comandos básicos dedicados, como
 DWRITE pin, pin de valor definido com um valor (HIGH, HI,
LOW, LO)
 Pino AWRITE, pino de valor ajustado com valor analógico (pwm)
0..255
 DREAD (pin) - obtenha o valor do pin
 AREAD (analogPin) - obtém o valor do pino analógico
Assim, você pode escrever um programa no Basic que aciona
algum hardware, salve-o na EEPROM e, em seguida, execute-o
automaticamente apenas reiniciando o Arduino.

A
n
• e Tvtext_slave.rar
x
o
s Baixar

Adicionar dicaPerguntarComenteBaixar

Etapa 4: Opcional: usando um PCB


Você também pode construir este PC básico usando um PCB
pequeno. Você pode se inspirar nas fotos nesta etapa ou até
mesmo imprimir sua placa.
Você pode usar duas tiras de cabeçalho fêmeas com 15 furos
para a saída de vídeo Arduino, enquanto que para o mestre eu
sugiro usar quatro tiras. Desta forma, você pode usar os
externos para inserir os contatos de seus componentes do
projeto.

Eu também adicionei no centro as tiras restantes, uma


conectada a 5 V e a outra para GND.

Finalmente, no arquivo .rar, você pode encontrar as máscaras


para gravar uma placa com cobre.

A
n
• e ArduinoBasicPC.rar
x
o
s Baixar

Adicionar dicaPerguntarComenteBaixar

Passo 5: Comentários Finais e Agradecimentos

Este projeto não poderia ter sido feito sem a biblioteca


MRETV . Assim, a minha principal reconhecimento vai para o
seu autor, que usa a sigla Mr E .

Muito obrigado também aos autores do TinyBasic Plus :

 Minúsculo Básico 68k - Gordon Brandly


 Arduino Básico / Minúsculo Básico C - Campo Michael
 Minúsculo Basic Plus - Scott Lawrence
Obrigado também a "djsadeepa", o autor do Instructable para a
conexão do teclado PS2 .
Para todas as pessoas interessadas neste projeto: é mais fácil
construir o que parece à primeira vista. Meus principais
problemas foram com as compatibilidades do Arduino IDE. Se
você tiver problemas, não hesite em pedir sugestões nos
comentários.

Se você tiver sucesso, por favor, escreva um comentário ou


compartilhe uma foto do dispositivo que você criou.

Você também pode gostar