Índice:

Magic Answers Ball com Arduino Pro Mini e display TFT: 7 etapas
Magic Answers Ball com Arduino Pro Mini e display TFT: 7 etapas

Vídeo: Magic Answers Ball com Arduino Pro Mini e display TFT: 7 etapas

Vídeo: Magic Answers Ball com Arduino Pro Mini e display TFT: 7 etapas
Vídeo: Amazing arduino project 2024, Junho
Anonim
Magic Answers Ball com Arduino Pro Mini e display TFT
Magic Answers Ball com Arduino Pro Mini e display TFT
Magic Answers Ball com Arduino Pro Mini e display TFT
Magic Answers Ball com Arduino Pro Mini e display TFT
Magic Answers Ball com Arduino Pro Mini e display TFT
Magic Answers Ball com Arduino Pro Mini e display TFT

Há algum tempo, minha filha e eu desmontamos uma bola Magic 8 para que ela pudesse substituir as vinte respostas por outras de sua escolha. Este foi um presente para uma amiga dela. Isso me fez pensar em como fazer isso em uma escala maior. Podemos ter muito mais do que 20 respostas? Com uma versão eletrônica podemos!

Então, isso vai descrever como eu desmontei um Mattel Magic 8 Ball (desculpe, Mattel) e usei um display TFT redondo para mostrar um número incrível de respostas adicionais (o menor cartão micro-SD que eu consegui encontrar tinha 8 GBs, então é realmente um exagero para para que está sendo usado). A bola usa uma placa Sparkfun Wake-on-shake para acionar a resposta e desligar a bola depois para conservar a bateria. Uma placa de recarga é usada para permitir que a bateria seja recarregada a partir de uma conexão USB.

Suprimentos

Partes:

Arduino Pro Mini 328 - 3,3 V / 8 MHz

SparkFun Wake on Shake

Bateria de íon de lítio - 400mAh

Organizador 12pcs TP4056 Módulo de carregamento 5V Micro USB 1A 18650 Placa de carregamento de bateria de lítio com módulo de carga de proteção (você só precisa de um desses, mas o pacote de 12 custou menos de US $ 9)

DAOKI 5Pcs Micro SD Storage Board (mais uma vez, você só precisa de um, mas o pacote de 5 ainda custava menos de US $ 9)

Módulo de Display LCD TFT de 2,2 polegadas DFRobot

Kingston 8 GB microSD (você pode ter um velho desses espalhados pela sua casa)

Placa de ensaio PCB Perma-Proto Quarter-sized (você também pode usar qualquer PCB que desejar)

Magic 8 Ball

FTDI Basic breakout 3.3V (você já deve ter um desses se tiver feito um projeto semelhante com o Arduino Pro Mini ou placa semelhante)

Invólucro de 4 pinos com conector de fio Dupont JST XH macho / fêmea de 2,54 mm (opcional, mas recomendado para conectar a bateria)

Outros suprimentos básicos:

Sugru Moldable Glue (poderia usar fita adesiva e cola quente, mas eu gosto mais disso)

Fita adesiva

Fita de espuma dupla face

Arame

Ferramentas:

Ferro de solda

Ferramenta rotativa de sua escolha (ou seja, Dremel)

Braçadeira de móveis

Etapa 1: corte a bola 8 mágica pela metade

Corte a bola mágica 8 pela metade
Corte a bola mágica 8 pela metade
Corte a bola mágica 8 pela metade
Corte a bola mágica 8 pela metade

Primeiro você precisa dividir o Magic 8 Ball ao meio. Prendi o meu a uma mesa de trabalho com o lado plano voltado para baixo usando um grampo de móveis. Usando uma Dremel com um disco de corte básico acoplado, corte ao longo da costura da bola. Você precisará fazer um corte profundo, tanto quanto o disco de corte permitir. Vá devagar. Mesmo depois de cortar todo o contorno, pode ser necessário usar uma chave de fenda ou cinzel para fazer a separação final. Há um cilindro que contém o líquido "mágico" e o icosaedro (formato de vinte lados - sim, eu tive que procurar) dentro. Basta jogá-lo fora ou usá-lo em algum outro projeto. Se você usar em outro projeto, diga-me o que você fez para que eu saiba o que fazer com o meu.

Você ficará com as duas metades, conforme mostrado nas fotos. Já fiz isso três vezes e, na última vez, o lábio branco era liso, em vez de ter sulcos, então sua bola pode parecer um pouco diferente da da foto.

Ainda haverá alguma escória de plástico ao redor da borda externa (o plástico derretido e recarregado). Quebre isso com as mãos, se puder; usar uma ferramenta corre o risco de arranhar o acabamento da bola e a escória sai com bastante facilidade.

Etapa 2: preparar a bola

Prepare a bola
Prepare a bola
Prepare a bola
Prepare a bola
Prepare a bola
Prepare a bola

Precisamos fazer duas modificações nas metades de plástico da bola.

Primeiro, na metade aberta, aquela que tem o "8" pintado, precisaremos raspar uma área grande o suficiente para que nossa placa de carregamento USB fique com a porta USB para fora. Usei minha Dremel com um tambor de lixa grosso acoplado. Você quer isso o mais fino possível, sem limpar completamente. Em seguida, corte uma pequena abertura grande o suficiente para permitir que a porta USB passe para fora. Usei um paquímetro para medir a porta USB, mas você provavelmente pode ver isso se precisar. Mais uma vez, usei a Dremel com um pequeno acessório de corte para fazer a abertura. As duas primeiras fotos mostram a abertura e como fica a placa USB atrás dela.

Em segundo lugar, na outra metade, aquela com orifício em AMBOS os lados e a borda de plástico branco, prepare um local para a exibição do display. Logo dentro da abertura onde a tela ficará, há saliências de plástico e um flange de borracha (?) Na parte interna da abertura. Retire a flange e coloque-a de lado. Iremos colocá-lo de volta mais tarde, mas queremos isso fora do caminho para esta etapa. A tela tem uma extrusão retangular em um dos lados que não permitirá que ela fique plana na abertura se algumas dessas saliências não forem removidas. Usando novamente o tambor de lixar grosso na Dremel, raspe-os o máximo possível. Venha pelo buraco onde ficará o display para obter o melhor ângulo. Deve ser parecido com as fotos quando concluído. Observe que as imagens mostram o display no lugar, mas NÃO O ANEXE ainda.

Etapa 3: preparar as respostas no cartão Micro-SD

Esta etapa é um pouco mais complicada do que você imagina. Se você não quiser criar sua própria lista de respostas, pule para o último parágrafo desta etapa.

A intenção é que possamos dar à bola qualquer lista de strings para serem usadas como respostas possíveis e que fiquem centradas na tela sem nenhuma quebra no meio das palavras. Não queremos fazer este processamento no microcontrolador e queremos um arquivo com tamanho de registro estático para poder encontrar qualquer linha em particular rapidamente.

Mesmo que a tela seja redonda, é funcionalmente uma tela retangular virtual com apenas pixels dentro do círculo visíveis. A tela pode mostrar texto de vários tamanhos, mas usamos apenas a versão menor, que é de 6 x 8 pixels. Usando este tamanho, existem 315 caracteres que o display pode colocar em uma tela (21 caracteres por linha vezes 15 linhas), mas apenas 221 são visíveis e cada linha tem um número diferente de caracteres visíveis. Veja o problema?

Eu escrevi um programa Java para pegar um arquivo de respostas não formatadas e convertê-las em registros totalmente centralizados que poderiam ser facilmente exibidos no TFT redondo. (link para baixar o arquivo "FormatToPicksFileFullyCentered.java").

Sem entrar em uma explicação de todo o código, a ideia geral é que trabalhemos para trás a partir do centro (ish) e inserindo espaços para garantir que não quebremos palavras em linhas visíveis, então fazemos a mesma coisa a partir do Centro avante. Finalmente, percorremos todas as linhas e centralizamos cada linha dentro das linhas completas de 21 caracteres para criar um registro de exatamente 316 bytes (315 caracteres alfanuméricos mais um caractere de nova linha). O código realmente funciona com três fontes, x 3, x 2 e x 1 para ver qual é a maior fonte que pode ser usada e ainda se ajusta ao texto. A centralização está um pouco errada para as fontes x 2 e x 3, desculpe. Tenha cuidado com os caracteres que ocupam mais de um byte, eles podem prejudicar o arquivo de saída.

Copie o arquivo "picks.txt" para o cartão micro-SD.

Se você não quiser se dar ao trabalho de criar sua própria lista de opções, incluí minha lista de opções que você pode simplesmente copiar para o cartão SD e usar. Não consegui fazer upload de um arquivo.txt para instructables neste momento, então aqui está um link para onde você pode baixar o arquivo picks.txt.

Etapa 4: fazer upload do código para o Arduino Mini

Carregar código para o Arduino Mini
Carregar código para o Arduino Mini
Carregar código para o Arduino Mini
Carregar código para o Arduino Mini
Carregar código para o Arduino Mini
Carregar código para o Arduino Mini

Em primeiro lugar, se você nunca usou o Arduino Pro Mini antes, não pode simplesmente conectar um cabo USB e fazer o download; você tem que usar uma placa FTDI e conectar os fios aos pinos apropriados no mini. Não vou dar um tutorial sobre isso aqui, há muitos na web. Para mim, não queria soldar um conector permanente na placa do microcontrolador que seria usado apenas uma vez para baixar o código, então criei um pequeno clipe que pode ser usado para programar o mini sem soldar (veja as fotos). Isso foi inspirado em produtos como o Fiddy, mas não tenho acesso fácil a uma impressora 3D, então fiz a minha própria com um clipe de batata frita. Se as pessoas se interessarem, farei um instrutível só para isso.

Para o código. Existem algumas partes interessantes neste código, mas é principalmente direto.

Na função de configuração, há uma quantidade razoável de código que trata da obtenção de uma boa semente aleatória. O método típico de usar a leitura analógica de um pino desconectado não fornece uma resposta variada o suficiente em minha experiência. Recebo um número entre 477 e 482. Como a função aleatória do Arduino tem uma e apenas uma sequência e a semente determina onde começar nessa sequência, uma faixa tão estreita não produzirá respostas possíveis suficientes no final. Lembre-se de que esse código essencialmente começa de novo sempre que a placa Wake-on-shake desliga e liga a alimentação, portanto, a posição da sequência inicial determinada pela semente é crucial. Para ajudar com isso, escrevo um arquivo muito pequeno no cartão SD para acompanhar a última semente e adicioná-la a um novo valor proveniente do pino desconectado.

Uma vez que uma escolha é selecionada na função de loop e lida em um array de caracteres, não podemos simplesmente imprimir a string inteira. A exibição tem um limite de quanto tempo de uma corda pode lidar por vez. Por esse motivo, temos que percorrer cada uma das quinze linhas e enviá-las ao display, uma de cada vez.

Bibliotecas externas necessárias:

Biblioteca ST7687S

Biblioteca de exibição DFRobot

Etapa 5: Conecte os componentes

Conecte os componentes
Conecte os componentes
Conecte os componentes
Conecte os componentes

É hora de fazer toda a solda dos fios. Eu tendia a errar no lado de fios um pouco mais longos do que eu realmente precisava, mas acabou funcionando bem.

No esquema em anexo, o display TFT é representado por um conector em vez de uma imagem de todo o display (para o qual não consegui encontrar uma peça Fritzing). Rotulei os fios / pinos com base em como eles são rotulados na peça. Da mesma forma, o cartão SD não é exatamente o que usei, mas identifiquei os fios / pinos da peça listada.

Há um componente que não soldei nesta etapa: a bateria. Em vez disso, usei um conector de quatro pinos com os dois pinos do meio removidos (segunda foto). Isso me permitiu testar todos os componentes conectados juntos e, em seguida, desconectar a bateria enquanto conectava tudo à bola.

Finalmente, usei uma placa de ensaio permanente PCB do tamanho de um quarto para tornar mais fácil a alimentação e as conexões compartilhadas. Você verá isso nas fotos da montagem.

Teste se tudo está funcionando

Etapa 6: Anexe componentes à esfera

Anexar componentes à bola
Anexar componentes à bola
Anexar componentes à bola
Anexar componentes à bola
Anexar componentes à bola
Anexar componentes à bola
Anexar componentes à bola
Anexar componentes à bola

Primeiro coloque a tela no lugar e use um pouco de Sugru para protegê-la (duas primeiras imagens). Não se esqueça do flange que você removeu anteriormente, você deve colocá-lo de volta no lugar antes de prender a tela no lugar.

Em seguida, coloquei o proto-quadro na parte inferior da metade vazia da bola. Eu mantive todas as minhas soldas em um lado da placa, então eu ainda tinha metade da placa para poder prender. Em seguida, coloquei a bateria em cima dessa mesma metade da protoplaca (terceira imagem).

Ambas as metades agora estão conectadas por fios. Descubra onde o orifício USB vai acabar quando você juntar as duas metades. Se a borda branca tiver os espinhos para cima, lembre-se de que ela precisa ficar centralizada em uma das cunhas da borda branca, pois estaremos prendendo a placa de carregamento USB entre duas das saliências de plástico na borda.

Usando um pequeno pedaço de fita de espuma de dupla face, prenda a placa de carregamento USB. A fita dupla-face não deve cobrir toda a parte inferior da placa de carregamento porque a extremidade com os fios presos ficará pendurada na borda central da borda branca. Portanto, a fita deve cobrir cerca de três quartos da superfície inferior da placa. Primeiro, coloque a fita adesiva na parte inferior do quadro e, em seguida, pressione-a no local que você escolheu. O conector USB deve estar na borda da bola, colando na área preta do plástico sem sair da bola. Finalmente, use um pouco mais de Sugru por cima do tabuleiro e prenda em ambos os lados. Isso apenas adiciona força adicional para quando um cabo é inserido na porta USB.

Coloque o cartão micro-SD no módulo de cartão SD agora

Você pode prender os outros componentes ao lábio branco, se desejar. Acabei de colocar os componentes restantes atrás da tela.

Etapa 7: coloque as duas metades novamente juntas

Junte as duas metades de volta
Junte as duas metades de volta
Junte as duas metades de volta
Junte as duas metades de volta

Verifique novamente se você inseriu o cartão SD e testou todos os componentes juntos.

Ok, se você estiver pronto, faça uma cobra longa com um pouco de cola Sugru e passe-a ao redor da borda da metade da bola com o lábio branco (primeira foto). A cola deve ser colocada bem na junção onde as seções pretas e brancas do plástico se juntam. Colocar a cola aqui garante que você tenha uma ligação forte, minimizando a quantidade de cola que sai da rachadura depois que as duas metades são unidas.

Pressione as duas metades juntas, certificando-se de que a porta USB fique presa no orifício previamente feito para ela. Usando a braçadeira para móveis, prenda as duas metades juntas com força suficiente para mantê-las juntas, sem necessidade de prender com força. A cola Sugru endurece em cerca de 24 horas.

Se você tiver um pouco da cola que saiu da junta, sinta-se à vontade para raspá-la com o dedo ou com um pano macio / toalha de papel.

Recomendado: