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.