Índice:

DemUino - Computador Doméstico / Controlador: 7 Passos
DemUino - Computador Doméstico / Controlador: 7 Passos

Vídeo: DemUino - Computador Doméstico / Controlador: 7 Passos

Vídeo: DemUino - Computador Doméstico / Controlador: 7 Passos
Vídeo: Controle de Estoque - 05 Métodos de Como Fazer 2024, Novembro
Anonim
Image
Image
Gravando o Bootloader
Gravando o Bootloader

An Arduino Inspired Computer da DemeterArt Aproveite ao máximo seu antigo teclado PS2. Hackeie em um computador pessoal personalizado para controlar as coisas! Sempre quis construir meu próprio computador doméstico, em estilo retrô, nada sofisticado, mas com recursos específicos adaptados às minhas preferências. Então, comecei com o MCU atmega328 e o kit de desenvolvimento do Arduino.

Deixe-me declarar que este projeto teria demorado consideravelmente mais com resultados finais duvidosos se não fosse pelos fãs talentosos por aí que egoisticamente fornecem menos as bibliotecas de freeware para todos usarem. Obrigado a todos:-)

visite meu site para ler toda a história e baixar todos os arquivos relevantes

www.sites.google.com/site/demeterart

Etapa 1: Recursos

  • Baseado no ATMEGA328 com flash de 32 KB, SRAM de 2 KB e EEPROM de 1 KB.
  • suporte para modos interativos e em lote
  • editor de linha e modo list-while-edit
  • 8 caracteres personalizados para gráficos do usuário
  • 60 etapas do programa numeradas 00, …, 99
  • 'If' condicional, 'while' e 'for' loops mais declarações 'goto' e 'sub' para ramificação
  • Expressões aritméticas e matemáticas básicas, além de testes booleanos
  • as variáveis do sistema permitem eventos cronometrados, valores médios, rms, mínimo e máximo de pinos analógicos, etc.
  • 26 variáveis de usuário para interagir com variáveis e comandos do sistema
  • 104 bytes de uma matriz endereçável pelo usuário ou 52 inteiros curtos
  • capacidade de ler / escrever dados do programa, bem como código em tempo real (variável p)
  • aplicativo de mini osciloscópio com caracteres personalizados para pseudo gráficos
  • salvar e carregar programas e dados de / para EEPROM
  • carregar / salvar programas e variáveis de / para o PC
  • autoexec para carregar e executar um programa da EEPROM após cada reinicialização
  • 9 pinos GPIO (SPI incluído) disponíveis no conector DB15 externo
  • BUZZER para efeitos sonoros

Etapa 2: Coisas que você vai precisar

Um teclado ps / 2 antigo espesso o suficiente para abrigar o display de caracteres LCD pcb (o formato paralelo popular) chip MAX232 para porta RS232 atmel atmega328PU Arduino kit de desenvolvimento com IDE 1.0.1 LM7805 regulador 5V buzzer retificador de ponte, capacitores, um botão de reinicialização, conectores etc

Etapa 3: Gravando o Bootloader

Então, depois de comprar um chip atmega328PU "vazio", há uma decisão a ser tomada. Devo usar um programador especial externo ou ISP ou queimar o bootloader Arduino na besta e tornar a unidade programável por meio de sua porta UART? Escolhi este último para facilitar minha vida! O novo bootloader ocupa apenas meio kilobyte de memória flash, deixando um pouco mais de 31 KB de programa do usuário e dados estáticos disponíveis. O site do Arduino cobre o caso de queimar o bootloader em um novo chip, quando se tratava de usar avrdude para realmente queimar o chip alvo, o processo falhou com um erro indicando o id errado para o MCU específico. Então, depois de algumas buscas, encontrei esse cara que acertou e segui seu procedimento. A única diferença eram 2 arquivos de configuração, avrdude.conf e boards.txt necessários para avrdude e arduino IDE 1.0.1 para tornar isso possível. Depois de copiar os 2 arquivos para seus locais apropriados (faça backup dos antigos primeiro), a opção ‘arduino328’ de ferramentas-> Placa estava disponível e o avrdude prosseguiu com a queima dos fusíveis e do carregador de boot. Agora o chip está pronto para ser programado na nova máquina!

Etapa 4: Construindo a Unidade

Construindo a Unidade
Construindo a Unidade
Construindo a Unidade
Construindo a Unidade

Uma placa perfurada com tiras de cobre foi usada como solução de montagem rápida com soquetes DIP para os chips, sabe, só para garantir! Em seguida, os orifícios e cortes para os conectores, o botão de reset e a tela LCD foram abertos através do plástico extremamente resistente e grosso do teclado. Sim, isso foi construído há 25 anos! Seguiu-se a confusão de fios que emanavam do pcb em direção aos vários periféricos. Uma verificação rudimentar de continuidade e, em seguida, a fonte foi conectada sem nenhum chip populado apenas para verificar os soquetes quanto às tensões adequadas. Em seguida, vieram os 2 CIs e a caixa do teclado foi fechada com firmeza por meio de seus encaixes de plástico na parte inferior. A unidade estava pronta para gravar esboços no controlador!

Sugiro que se use capacitores não polares de 1uF / 16V para as bombas de carga MAX232. Localize os capacitores de desacoplamento 100nF para os dois chips o mais próximo possível dos respectivos pinos VCC e GND. Use uma conexão em estrela para a alimentação e o aterramento referenciados ao regulador LM7805. O switch 2 pode ser um jumper dependendo da implementação, mas é bom tê-lo apenas para evitar redefinições de MCU indesejadas do PC host em certos casos. De qualquer forma, a chave deve ser fechada para permitir que o IDE do Arduino queime o esboço por meio da redefinição do MCU de destino (pino DTR do RS232). No meu caso a conexão é permanente (sempre fechada). Use um resistor em série para a campainha para isolar os vários nFs de capacitância da porta de acionamento … você nunca sabe.. Localize o XTAL e os capacitores de 18-22pF de carga o mais próximo possível dos respectivos pinos do controlador.

Devido à ponte retificadora, a unidade pode ser alimentada por adaptadores de energia CA e CC. No caso de CC, há uma queda de tensão de 1,5 V entre o adaptador e a entrada do regulador. No caso de CA, a entrada do regulador é cerca de 1,4 vezes a saída RMS do adaptador ou menos devido ao carregamento. Se a diferença entre a entrada do regulador e sua saída (+ 5V) for grande, digamos 7 volts, então a energia consumida pelo regulador se aproxima de 0,5 watts e é melhor usar um pequeno dissipador de calor para montar o chip (fornecido há espaço para isso) para longas horas de operação em clima quente.

O fusível de entrada CA pode ser selecionado dependendo de suas cargas externas (via conector DB15). Outros fatores que influenciam a escolha do fusível são o resistor limitador de corrente para a luz de fundo do LED do LCD, o capacitor de ponte para a corrente de carga e a capacidade de corrente do transformador de alimentação.

Etapa 5: ESQUEMA

ESQUEMA
ESQUEMA

Etapa 6: SOFTWARE EM EXECUÇÃO A BORDO

Este é o esboço que faz tudo acontecer … e 32 KB NÃO é o suficiente! Você pode usá-lo sem modificações, caso em que gostaria de uma referência ao meu nome, ou alterá-lo à vontade e esquecer de mim;-)

Esta é a documentação detalhada sobre a máquina.

Resumo de comandos e expressões

“: Uma linha de comentário não imprimível

ai: anexar interrupção 0 (pino D2)

ar: leitura analógica

aw: ‘gravação analógica’ por arduino ou mais apropriadamente pwm

ca: captura analógica em uma matriz

cl: limpa a exibição cno: return * Prgm índice do número da linha

di: espera por uma série de pulsos e mede a duração e o tempo

dl: atraso

fazer: em conjunto com 'wh'

dr: digital lê qualquer pin

dw: digital escreva qualquer pino

ed: modo de editor / programa de carregamento de PC / renumeração de linhas

el: função de acesso EEPROM

fim: a declaração END de um programa

ensb: termina a sub-rotina

es: função de acesso EEPROM

fl: filtro de média móvel simples

fr: loop for-next (fr-nx)

ir: pula para a etapa do programa

gosb: continuar a execução para a sub-rotina

gt: aguarda a entrada do usuário

if: condição de teste e pule para a etapa

io: GPIO 1-9 bits

ld: carregar / mesclar programa da EEPROM

lp:: loop controlado pelo teclado no modo interativo

ls: list mode / send program to PC uma linha de cada vez

ml: obter tempo

mm: exibir memória livre

nos: converte número em string

nx: em conjunto com 'fr'

pl: plot array cxx

pm: definir pinos para entrada ou saída

pr: imprime uma mensagem ou valor ou caractere personalizado

rgc: comando de cópia de intervalo para matrizes

rgs: comando range set para matrizes

rn: execute o programa na RAM

rs: soft reset

rx: receba um personagem via RS232

si: entrada serial síncrona com relógio e pinos de dados

sm: mini osciloscópio app sno: converte string em número

portanto: saída serial síncrona com pinos de relógio e dados

sub: declara a sub-rotina

sv: salvar programa para EEPROM

tn: bip um tom

tx: transmitir um número via RS232

wh: um loop do-while usado em conjunto com ‘do’

Etapa 7: videoclipe do mini-aplicativo 'sm' em execução

visite meu site para ler toda a história e baixar todos os arquivos relevantes

www.sites.google.com/site/demeterart

Recomendado: