Índice:
- Etapa 1: Peças que usei
- Etapa 2: o circuito
- Etapa 3: o PCB
- Etapa 4: enviando o código
- Etapa 5: Montagem
- Etapa 6: Bugs e trabalho futuro
Vídeo: Computador BASIC de mão: 6 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Este Instructable descreve meu processo de construção de um pequeno computador portátil rodando BASIC. O computador é construído em torno do chip ATmega 1284P AVR, que também inspirou o nome bobo do computador (HAL 1284).
Esta construção é PESADAMENTE inspirada no incrível projeto encontrado aqui e no emblema SuperCON BASIC.
O computador roda uma versão modificada do TinyBasic, embora muito do software seja baseado no projeto de dan14. Claro que você pode seguir este Instructable, ou melhor ainda, melhorá-lo já que cometi alguns erros.
Para este projeto, também criei um manual. Ele menciona alguns bugs e especificações para o monitor escolhido, mas o mais importante, ele contém a lista de operações BASIC.
Depois que isso foi publicado, fiz um vídeo apresentando o projeto.
Etapa 1: Peças que usei
Para o IC principal:
- ATmega 1284P
- Cristal 16MHz
- 2x 22pf Capacitor de cerâmica
- Resistor 10KΩ (para reinicialização)
- Botão de 4 pinos (para reiniciar)
- Reistor 470Ω (para vídeo composto)
- Resistor de 1kΩ (para sincronização de vídeo composto)
- Jumper de 3 pinos (para sinal de vídeo)
- Buzzer Passivo
Para controle do teclado:
- ATmega 328P (como os usados no Arduino Uno)
- Cristal 16MHz
- 2x 22pf Capacitor de cerâmica
- Resistor 12x 10KΩ (para redefinir, puxar para cima e botões)
- 51x botão de 4 pinos (para o teclado real)
Para poder:
- Regulador de tensão L7805
- LED de 3 mm
- Resistor 220Ω (para LED)
- 2x Capacitor eletrolítico de 0,1 µF
- Capacitor eletrolítico de 0,22 µF (você poderia substituir este 0,22 e um 0,1 por um 0,33. Também me disseram que os valores realmente não importam, mas não sou muito bom com capacitores)
- 2x jumper de 2 pinos (para entrada de energia e para interruptor principal)
GPIO (talvez adicione mais alguns fundamentos):
- Jumper de 7 pinos
- 2 jumpers de 8 pinos
- Jumper de 2 pinos (para 5V e GND)
- Jumper de 3-4 pinos (para comunicação serial)
Não PCB:
- Display LCD de 4 "com vídeo composto (o meu tinha uma tensão de entrada entre 7-30 V)
- Suporte 3D impresso para display
- Algum tipo de interruptor
Etapa 2: o circuito
O circuito não é muito bonito e grande parte da região do IC principal é inspirada em dan14. Dito isso, é um Arduino bastante simples em um circuito Breadboard. O teclado é uma grade simples e é controlado pelo ATmega328. Os dois chips AVR comunicam-se através dos pinos UART Serial.
Uma imagem e meus arquivos Eagle estão anexados e, com sorte, serão o suficiente para recriar o circuito. Caso contrário, sinta-se à vontade para me informar que atualizarei o Instructable.
Etapa 3: o PCB
O PCB tem 2 camadas e é criado usando o roteamento automático (oh, que buraco **!). Possui botões e LED indicador de energia na parte frontal e o restante na parte traseira. Mandei fazer meu PCB com JCL PCB, e eles fizeram um trabalho incrível com ele. Os arquivos necessários para recriar o PCB devem estar nos arquivos Eagle de antes.
Eu sugiro que você redesenhe o PCB, pois tenho algumas coisas que gostaria de ter feito de forma diferente. Se você gostou do meu design, ainda tenho (até o momento) quatro placas não utilizadas que estou mais do que disposto a vender.
A placa tem quatro furos que usei para montar o display LCD.
Etapa 4: enviando o código
O 1284 e o 328, é claro, precisam de código e o código que usei pode ser encontrado aqui: https://github.com/PlainOldAnders/HAL1284 em ArduinoSrc / src. Eu simplesmente usei o IDE do Arduino para modificar e enviar o código, mas antes que isso possa ser feito, você precisará gravar bootloaders nos ICs:
ATMega328:
Este é fácil, no sentido de que há muito suporte por aí sobre como gravar um bootloader e fazer upload de código para este IC. Eu geralmente sigo este guia, principalmente porque sempre me esqueço dos detalhes.
O código para o 328 (em ArduinoSrc / teclado) é bastante simples. Ele depende totalmente da biblioteca master Adafruit_Keypad. Caso algo mude sobre a lib, incluí a versão que usei em minha página do github em ArduinoSrc / lib.
ATmega1284:
Isso foi um pouco difícil para mim quando recebi o IC. Comecei obtendo o bootloader daqui e segui o guia de instalação. Para queimar o bootloader, simplesmente fiz a mesma coisa que fiz com o 328 e recebi ajuda aqui. Para ambos os ICs, acabei de usar um Arduino Uno para gravar o bootloader e fazer o upload do código (o IC removido do Arduino Uno durante o upload).
O código (em ArduinoSrc / HAL1284Basic) é muito complicado para mim, mas fui capaz de modificar algumas partes do código:
Eu adicionei alguns comandos (aqueles marcados com [A] no manual.pdf) e também alterei outros comandos:
Tom: O comando de tom apenas usava a função de tom do Arduino antes, mas ao usar a biblioteca TVout, isso fazia com que a campainha não funcionasse corretamente. Eu mudei para usar a função de tom de TVout, mas isso significa que o pino de tom TEM que ser o pino 15 (para o atmega1284)
Comunicação Serial: Como o teclado é DIY, ele usa comunicação serial para ler os personagens. Uma vez que o atmega1284 é usado aqui, existem duas linhas de comunicação serial disponíveis, e quando "sercom" está habilitado, o código também permite a escrita através da porta serial (de um computador ou qualquer outro).
Resolução: O monitor usado para este projeto é muito burro e uma pequena resolução é necessária, ou a imagem pisca. Se um monitor melhor for usado, sugiro que você altere a resolução na função de configuração.
Etapa 5: Montagem
Com o código carregado e a PCB e as peças prontas, agora é hora de montar. Todas as peças que usei passavam por um orifício, então a soldagem não foi muito difícil (ao contrário dos caras da solda SMD-durões por aí). O monitor foi preso aos quatro furos no PCB com um suporte impresso em 3D. Se outro monitor for usado, os quatro furos podem ser usados para montá-lo.
O suporte do monitor usado aqui também é projetado para abrigar uma chave seletora (conectada ao jumper "switch" no PCB) e os três botões de controle do monitor. O suporte é fixado com espaçadores e parafusos M3 de plástico.
Para o plugue de alimentação, usei um conector JST PCB, embora um conector de barril liso teria sido um pouco mais suave. Para alimentar a placa, troquei entre uma fonte de alimentação de 12 V ou três baterias 18650 em série. Um cowboy mais esperto do que eu provavelmente poderia projetar um suporte de bateria para a prancha.
Etapa 6: Bugs e trabalho futuro
Teclas de seta: as teclas de seta foram colocadas acidentalmente e não têm muita função. Isso torna a navegação difícil
E / S de arquivo: Existem recursos de E / S de arquivo, mas não foram implementados. Para combater isso, o software HAL1284Com é capaz de enviar arquivos para a placa. Também é possível fazer upload para a EEPROM.
PEEK / POKE: PEEK e POKE não foram testados e não tenho certeza de quais são os endereços.
Break: Break (Esc) às vezes bagunça todo o código, quando em loops infinitos.
Pino 7: O pino 7 do PWM pode ser difícil ao tentar DWRITE High ou AWRITE 255. Funciona bem com AWRITE 254.
Idiota: Seria ideal também poder fazer o upload via UART1, mas o upload só é possível via UART0, então o upload terá que ser feito extraindo o IC principal. A tela e o regulador de tensão 5 ficam um pouco quentes demais quando em funcionamento por um longo período.
Recomendado:
Como enviar arquivos grandes de computador para computador: 6 etapas
Como enviar arquivos grandes de um computador para outro: Os tamanhos dos arquivos continuam aumentando à medida que a tecnologia avança. Se você estiver em um ofício criativo, como design ou modelagem, ou apenas um amador, transferir arquivos grandes pode ser um incômodo. A maioria dos serviços de e-mail limita o tamanho máximo dos anexos em cerca de 25
Jogo de críquete de mão ímpar ou par vs inteligência computador adicionado em C ++: 4 etapas
Jogo de Críquete de Mão Par ou Ímpar Vs Inteligência Computador Adicionado em C ++: Críquete de Mão / Ímpar ou Par é um jogo popular entre nós desde os dias de escola. Neste instrutível, desenvolvemos este jogo em C ++. É um jogo para um jogador em que você tem que jogar contra o computador, que não é burro. O computador não está colocando numbe aleatório
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Usando PSP como joystick de computador e, em seguida, controlando seu computador com o PSP: 5 etapas (com imagens)
Usando PSP como joystick de computador e, em seguida, controlando seu computador com o PSP: você pode fazer muitas coisas legais com o PSP homebrew, e neste tutorial eu vou te ensinar como usar seu PSP como joystick para jogar, mas também há um programa que permite usar o joystick como o mouse. Aqui estão os mater
Terceira mão ++: uma mão amiga multiuso para eletrônicos e outros trabalhos delicados: 14 etapas (com fotos)
Terceira mão ++: uma mão amiga multiuso para eletrônicos e outros trabalhos delicados .: No passado, usei as terceiras mãos / ajudas disponíveis em cadeias de lojas de eletrônicos e fiquei frustrado com sua usabilidade. Nunca conseguia colocar os clipes exatamente onde queria ou demorava mais tempo do que deveria para configurá-los