Postagens

Cubo do Mario Bros acionado remotamente pelo SNES

Imagem
Tempos atrás peguei esse projeto , imprimi em escala maior, coloquei uma bateria lítio 18650, uma fita led, um buck boost para subir a tensão da bateria para os 12V da fita led e um carregador USB para carregar ela. Porém ficar ligando ele na chave ficou sem graça e decidi evoluir a criatividade acionando ele remotamente ao ligar o SNES. A base do projeto ficou com uso de um TX/RX RF de baixíssimo custo conhecido como FS1000A, facilmente encontrado no ML ou Aliexpress. Ver essa foto no Instagram Um post compartilhado por naldin (@naldin)     A bagunça do lado do RX (cubo) O circuito TX dentro do SNES Primeiros testes Mas para o conjunto FS1000A funcionar ainda era preciso um micro controlador, eu optei por usar um ATtiny 85 em cada ponta, programando o ATtiny 85 pela IDE Arduino com biblioteca damellis e para a codificação do FS100A usei a biblioteca VirtualWire . O ATiny 85 deixei a frequência como vem de fábrica em 8Mhz, importante selecionar ...

Alimentando o SNES com USB-C

Imagem
O USB-C além da comunicação USB possui um gerenciamento de energia, diferente do USB comum que funciona em apenas 5V. No USB-C ao plugar no dispositivo o carregador envia 5V e questiona o dispositivo qual a tensão ele precisa, que são valores padrões 5V, 9V, 15V e 20V, é um processo chamado de power delivery (PD). Na China é possível encontrar uma plaquinha que faz exatamente isso, informa o carregador qual a tensão ela quer usar e pode ser configurável com dip switch: Facilmente encontrado no Aliexpress na busca como "pd test board". O que fiz foi apenas configurar o dip switch para 9V e ligar na alimentação de entrada da fonte. Lembrando que para funcionar a fonte precisa ser USB-C PD, não funciona em fonte que tem o conector antigo USB, ou em fonte que tenha o conector USB-C porém não é power delivery (PD). A fonte que usei é uma de iPhone paralela.  

Programando AVR na IDE e placa Arduino - ADC

Imagem
Nas postagens anteriores mostrei como configurar portas , como os Timers trabalham gerando pulsos e PWM . Neste agora vou mostrar como o ADC (Analog to Digital Converter) trabalha e colocar ele para funcionar em conjunto com um PWM. Pegando um sinal analógico em um porta e controlando o brilho de um LED. Se você chegou aqui direto, é aconselhável ler o  post sobre portas  e sobre PWM primeiro, para entender como fazer o controle de registradores e como o PWM trabalha.

Programando AVR na IDE e placa Arduino - PWM

Imagem
Nas duas primeiras postagens sobre AVR mostrei configurações de portas e timer trabalhando no modo CTC , nesta postagem mostrarei o timer trabalhando como PWM (Pulse-width modulation). O PWM é amplamente usado em micro controladores para controle de motores, lampadas, temperatura e inúmeros dispositivos. Se você chegou aqui direto, é aconselhável ler o  post sobre portas  primeiro e depois o post sobre timers , para entender como fazer o controle de registradores e como timers trabalham.

Programando AVR na IDE e placa Arduino - Timers

Imagem
  Na primeira postagem sobre programação AVR mostrei como os registradores trabalham e como setar portas. Nesta postagem irei mostrar como os Timers trabalham, Timers são o coração dos micro controladores, com eles é possível ter controle de tempo e controlar portas PWM  o que gera uma imensa flexibilidade de trabalho Se você chegou aqui direto, é aconselhável ler o post sobre portas primeiro para entender como fazer o controle de registradores.

Programando AVR na IDE e placa Arduino - Portas

Imagem
  A maioria dos Arduinos, principalmente os primeiros lançamentos usam um micro controlador da linha ATMega em suas placas. O que a Arduino fez foi deixar a placa com pinos de fácil acesso, criar um bootloader onde é possível carregar o firmware de forma fácil via USB-Serial e criar uma interface IDE com bibliotecas de fácil entendimento. Mas lá no fundo de todo processo o que está rodando são programações AVR. Na programação AVR fora do Arduino,  o processo de carga de firmware é feito via serial SPI . Vou mostrar aqui em três, quatro ou até mais postagens do básico de uma programação em AVR, será  aquele norte para qualquer um que queira se aventurar e depois poder aprofundar sozinho, porém usando uma placa e IDE Arduino para ficar um pouco mais fácil.

Emulando Atari ST-STE-TT-Falcon no Raspberry Pi com Retropie

Imagem
Na minha ultima postagem sobre emular PCs antigos comentei que possivelmente aquela seria a ultima, por não ter mais equipamentos interessantes para fazer a emulação, sendo que o ultimo para Raspberry Pi inclusive foi o x86 com Windows 3.11 Porem me deparei com um PC pouco conhecido mas bem interessante até pela marca, que é a linha de equipamentos Atari ST, onde existe um emulador ( Hatari ) que pode também rodar no Raspberry Pi.

Instalando o firmware Klipper na impressora 3D - parte 2

Imagem
Na primeira parte mostrei como fazer a instalação do Klipper em conjunto com o Mainsail, após instalado ainda é necessário configurar fim de curso, passos por unidades (steps per unit), direção dos eixos, etc. O Mainsail ajuda muito nessas configurações por ele trabalhar com interface gráfica, ao contrário do Klipper que roda apenas em modo texto (terminal via ssh). As configurações são bem parecidas do que é feito no Marlin como foi mostrado nessa já antiga postagem , porém um pouco mais fácil. Para quem já tinha a impressora configurada antes pelo Marlin e salvou a configuração com o comando M503 não terá muita dificuldade.

Instalando o firmware Klipper na impressora 3D

Imagem
  Klipper é um firmware para impressora 3D desenvolvido para praticamente qualquer dispositivo que rode Linux, normalmente tem sido muito usado com Raspberry Pi devido ao pequeno tamanho da placa, baixo custo e acesso fácil (lá fora). Mas pode ser usado até mesmo um PC mais antigo, ou pelo que vi placas como Orange Pi. O Klipper inicialmente foi desenvolvido para trabalhar junto com o OctoPrint , que é um software que roda um Web Server e amplia muito as opções de uso para impressoras que trabalham com base no Arduino rodando o conhecido firmware Marlin .

Recuperando um CD Player Philips CDC 265

Imagem
  O CD Player carrossel Philips CDC 265 ao lado é um item que possuo tem uns bons anos, foi comprado nos anos 90, continua funcionando e este período já passou por processo de troca de leitor óptico uma boa meia duzia de vezes. Com o avanço dos MP3 e hoje o stream, o uso de CDs foi ficando bem obsoleto, porém bem de vez em quando ainda tenho um prazer em pegar um CD na prateleira para apreciar o som e o encarte. Uns dois anos atrás ele parou e quando abri para ver o que era, uma engrenagem de uma das polias tinha quebrado alguns dentes :(

Emulando Comodore Amiga no Raspberry Pi com Retropie - Parte 2

Imagem
  Neste post eu mostrei como emular um hardware de um Comodore Amiga 1200 e instalar o Workbench (OS) nele. Porém este processo de instalação é um processo onde o HD emulado já está preparado para receber os arquivos tornando o processo um pouco fora do que seria uma realidade. Vou mostrar aqui o que seria a pessoa ter um hardware Amiga 500 e colocar nele um HD que acabou de comprar para instalar o Workbench 3.1. O Workbench 3.1 foi a ultima versão oficial lançada para o Amiga.

Minhas aventuras com o Z80 - Mapeando entradas e saídas

Imagem
  Dando sequencia nos estudos com Z80 e com o gravador pronto foi hora de iniciar fazer o primeiro programa. A ideia foi montar um circuito com entradas e saídas que utilizam o mesmo barramento 8 bits e assim ter o controle sobre o barramento. Como os pinos do Z80 de D0 a D7 trabalham como entrada e saída existe pinos de controle para que os valores de uma instrução não colida com outra. Utilizando circuitos combinacionais, é possível mapear as entradas e as saídas para que cada uma delas trabalhe no momento certo. Coloquei no circuito duas entradas e duas saídas onde ao acionar uma entrada uma das saídas é acionada sequenciando os bits. Foi utilizado 8 leds para cada saída para a visualização.

Emulando PC x86 da era Win95/98/ME/2K

Imagem
Dando sequencia na serie de emulações de PC, onde provavelmente este será a ultima postagem da serie, saímos completamente da era de terminal indo para a era de janelas, que começou pela MS no Windows 3.11  que era um SO baseado no DOS, indo para o Windows 95, onde o DOS passou a ser um aplicativo do Windows. O emulador que vamos usar aqui é o PCem , um emulador bem interessante que emula o hardware como um todo, indo da BIOS, placa mãe e todos os periféricos. É possível ver a lista de maquinas que ele emula neste link  e é possível rodar desde DOS até Windows ME ou 2000.

Minhas aventuras com o Z80 - Gravador de EPROM

Imagem
No post anterior falei um pouco sobre como uma EPROM funciona, a formar de fazer leitura de dados dela e mostrei um leitor através de um Arduino Mega. Neste post vou mostrar como fazer a gravação de dados e mostrar um gravador com o Arduino Mega. Na gravação as principais mudanças em relação a leitura, são que a EPROM precisa ser alimentada com 6.5V e não mais com 5V, o pino VPP precisa ser alimentado com 13V e não mais com 5V, o pino OE' precisa de nível lógico alto (5 ou 6.5 V) e o pino CE' precisará de um pulso baixo de 100us para executar a gravação.

Minhas aventuras com o Z80 - Leitura da EPROM

Imagem
  Para o Z80 carregar um programa é necessário que este programa esteja em uma memoria, normalmente EPROM ou EEPROM. A EPROM é aquela memoria bem antiga que para apagar precisa de uma lampada UV. Na EEPROM o "E" a mais vem de electronic e significa que ela pode ser apagada de forma eletrônica, sem a necessidade de lampada UV. Como no pacote que ganhei tem muitas EPROM, decidi usa-las e assim aprender um pouco sobre EPROM. Aproveitei e construí um leitor e gravador de EPROM com um Arduino Mega que vou mostrar aqui.

Relógio de Xadrez com Arduino Ediçao Definitiva

Imagem
Um tempo atrás postei  aqui meu projeto de um relógio de xadrez usando Arduino. O projeto usa um Arduino Uno e possui um suporte para acomodar o Arduino Uno e um shield LCD. O que eu fiz agora foi usar um Arduino Pro Mini que ocupa menos espaço, fazer o teclado separado do LCD e assim não precisar usar o shied. Desta forma consegui fazer um case definitivo onde posso deixar tudo montado pronto para usar.

Retroarch - Tenha vários emuladores no PS3

Imagem
Se você tem um PS3 desbloqueado, você pode ter vários emuladores de plataformas antigas muito fácil, principalmente da era 8/16 bits. Para ter acesso aos emuladores é preciso usar o Retroarch , o Retroarch é a base de muitos emuladores para outras plataformas como o Retropie, Recalbox, Batocera e Lakka. Ele já vem pronto para trabalhar com vários emuladores.

Minhas aventuras com o Z80

Imagem
O Z80 para quem não conhece é um processador de 8 bits da década de 70/80 que foi amplamente usado nesta época e ainda é utilizado nos dias de hoje. De alguns aparelhos conhecidos que utilizam o Z80 podemos citar o Master System, ZK Spectrum (TK 90X no Brasil) e MSX. Eu comecei a ter interesse em montar um projeto com Z80 a uns dois anos apenas para estudos, porém comprar as peças no Brasil, além de não ser simples de achar, os preços não são atraentes e mesmo lá fora os preços ainda ficam bem caros. Meu interesse original foi pelo kit RC2014 que possui kits mais simples e mais avançados.

Emulando o Windows 3.11 no Raspberry Pi com Retropie

Imagem
O Retropie é um sistema para Raspberry Pi que possibilita rodar inúmeros emuladores de forma bem fácil como mostrei aqui . Nestes emuladores inclui o DOSBOX, que pode facilmente emular o Windows 3.11. O Windows 3.11 foi o ultimo Windows baseado em DOS antes do lançamento do Windows 95.  Com o DOSBOX é possível emular jogos de DOS facilmente no Retropie, mas a ideia aqui é usar o Retropie não apenas para emular jogos mas sim para rodar o Windows 3.11 como se você estive utilizando uma maquina real, seja para programar, rodar programas ou jogos.

Expandindo portas do Arduino com o 74HC595

Imagem
  Algum tempo atrás fiz uns testes em um 74HC595 em conjunto com um microcontrolador ATmega 328. Utilizando a mesma lógica que foi baseada neste tutorial, refiz o processo utilizando um Arduino. O 74HC595 pode ser utilizado para expandir as portas digitais do Arduino, ele recebe um byte (8bits) serial e escreve em 8 saídas paralela. Para fazer isto ele utiliza apenas 3 portas do Arduino, não importando a quantidade de portas que se deseja na saída. É possível colocar na saída quantas portas desejar, cascateando um CI em outro.