Construindo um Pinball – Parte I


display_4_digits

Vamos iniciar a série de projetos DIY com a construção de um fliperama, também conhecido como pinball. Mesmo quem nunca jogou, conhece essa máquina.

Ele é o precursor do video-game, funcionando no estilo “James West” com uma mistura mecânica e eletrônica. E é nessa parte que vamos tentar caprichar, uma vez que hoje temos recursos muito mais avançados e de fácil acesso. Mas prezaremos pelo baixo custo.

Surgido no século XVII, chamava-se bagatelle, um jogo rústico de madeira com pinos para desviar a bola. Na minha infância faziamos esse tipo de mesa para brincar. Aqui vamos repertir a brincadeira, trocando pinos e elásticos por ‘componentes mais avançados’!

Em 1947 um engenheiro Mecânico chamado Harry Mabs da empresa Gottlieb desenvolveu estimulos elétrico ao contato com a bola para contabilizar pontos. Desse principio houve a evolução reativa dos componentes da mesa, inicialmente dada pela iluminação (limitação dada ao fato da ausência de inteligência eletrônica). A eletrônica digital foi implementada em torno de 1970, mas ainda com modestos recursos.

A intenção desse projeto é uma mesa com no máximo a metade do tamanho de uma mesa original, de forma que ela possa ser montada dentro de casa sem que sua mãe ou esposa jogue você pra fora.


Funcionamento

A mesa possui uma inclinação específica. Da base, uma esfera de aço é disparada através de um dispositivo de alavanca com mola. Na disposição da mesa pode-se ter além da caçapa da base, uma caçapa lateral e até caçapas centrais com ou sem abertura temporizada. A soma dos pontos é feita através de contatos disparados através de componentes do jogo, por exemplo os bumpers – ‘cogumelos’ que repelem a bola ao contato.

Algumas mesas possuem como trilhos, outras possuem corredores com contatos para diferentes pontuações conforme o corredor.

Normalmente a mesa é temática, podendo ser de super herói, carros etc.

A mesa possui som, mas nessa mini-mesa que vamos fazer utilizaremos apenas alguns buzzers para criar alguns efeitos.

A iluminação é feita por LEDs e hoje temos LEDs RGB, sendo essa uma das coisas que podem dar um diferencial ao nosso projeto, em relação à iluminação, porém ainda nesse quisito haverá uma surpresa.

De frente com a mesa, tem-se o display onde exibem-se as pontuações dos recordes e do jogo atual. Poderiamos facilmente colocar um monitor de video, mas perderiamos no brilhantismo da união de tecnologia com visual antigo, portanto, os displays serão displays de 7 segmentos, de vários tipos. A mesa também será feita por nós, incluindo a pintura temática.

Vamos iniciar pelas provas de conceito, partindo do display frontal da mesa. Para contagem de pontos, utilizaremos displays de 7 segmentos, considerando que teremos pontuação com base em multiplicação, exemplificada em desenho mais adiante.

O tema será definido depois de concluir os testes da composição da mesa, como o display, os buzzers, os flippers e caçapas.

Pronto para iniciar? Então siga para a próxima linha.

Display de 4 dígitos e 7 segmentos

Neste outro post vimos como exibir números em um display de 7 segmentos, porém agora aumentará um pouco a complexidade, uma vez que deveremos multiplexar para distribuir os digitos no display apresentado. Além do mais, teremos também o display multiplicador que vai de 01 a 99, formado por um par de displays de 1 digito.

No datasheet desse modelo comprado na SparkFun está bem claro o quão simples é controlar esse display:

esquema
esquema

Se ainda assim tem dúvida, não se preocupe, pois na próxima imagem você poderá ver a conexão com um Arduino.

Olhando o display com os pontos na base, da esquerda para a direita da base temos o pino 1. No canto superior esquerdo, o pino 16.

O interessante é o quão explicito está a multiplexação, sendo o acendimento feito através dos pinos 1,2,6 e 8 para os digitos 1,2,3 e 4 respectivamente.

No post sobre acendimento de display de 7 segmentos, exemplifiquei com display de cathodo comum. Já para esse display, o anodo é comum, de forma que podemos reaproveitar o código dado no exemplo sobre display de 7 segmentos, porém devemos inverter a lógica no array dos números.

Considere também que agora o driver 74HC595 não atuará mais só; teremos que utilizar também 4 pinos da controladora para multiplexar. Claro, pode-se utilizar outro driver, mas nesse momento o melhor a fazer é sacrificar um pino da controladora.

Ao custo desse driver no HU Infinito,valeria a pena utilizar um driver extra só pelo prazer, mas na implementação do projeto realmente teremos que controlar mais alguns displays.Esse primeiro kit será montado com digitos individuais porque os patrocinadores não tem displays de 4 digitos em suas lojas, mas isso implica somente em um pouco mais de mão-de-obra e um pouco mais de diversão para montar a matriz. Como teremos também um multiplicador de 2 digitos, exemplificarei como fazer.

Abaixo, o teste do display, utilizando os pinos 3,5,9 e 10 (PWM) do Arduino Uno:

O código utilizado para o teste é esse:

Liguei todos os pinos referente aos segmentos em um barramento terra único. Essa ligação dos pinos ao terra fiz colocando um resistor de 330ohms em cada um deles. Depois, basta alimentar os pinos referentes a cada digito.

Comprovado o funcionamento do display, vamos agora adaptar o código desse post. Vale lembrar que o código não está otimizado, uma vez que não será utilizado dessa forma no projeto:

As conexões podem ser vistas abaixo:

multiplex O video mostrando até a casa da centena:

Os links para os kits serão disponibilizados conforme o interesse dos fornecedores. Quando não, os ítens serão de fácil acesso, mas ainda assim se tiver problema em adquirir o material, entrem em contato comigo.

Para esse post, recomendo a aquisição dos materiais no HU Infinito.

6 displays de 7 segmentos
2 74HC595

48 resistores de 330ohms

Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Prefere seguir-nos pelo facebook? Basta curtir aqui.

Prefere twitter? @DobitAoByte.

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “Construindo um Pinball – Parte I

Deixe uma resposta