İçindekiler:

Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu: 7 Adım
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu: 7 Adım

Video: Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu: 7 Adım

Video: Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu: 7 Adım
Video: Monster alma pişman olursun dediler.. ve (pişman değil pişmaniye oldum ) 2024, Temmuz
Anonim
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu
Arduino Pro Mini ve TFT Ekranlı Sihirli Cevap Topu

Bir süre önce kızım ve ben bir Magic 8 topunu ayırdık, böylece yirmi yanıtı kendi seçtikleri ile değiştirebildi. Bu onun bir arkadaşı için bir hediyeydi. Bu bana bunu daha büyük ölçekte nasıl yapacağımı düşündürdü. 20'den fazla yanıt alabilir miyiz? Elektronik bir versiyonla yapabiliriz!

Bu, Mattel Magic 8 Ball'u (üzgünüm, Mattel) nasıl parçalarına ayırdığımı ve inanılmaz sayıda ek yanıt göstermek için yuvarlak bir TFT ekran kullandığımı açıklayacaktır (bulabildiğim en küçük micro-SD kart 8 GB'dı, bu yüzden gerçekten aşırıya kaçıyor). ne için kullanılıyor). Top, yanıtı tetiklemek ve daha sonra pili korumak için topu kapatmak için bir Sparkfun Wake-on-shake tahtası kullanır. Pilin bir USB bağlantısından yeniden şarj edilmesini sağlamak için bir şarj kartı kullanılır.

Gereçler

Parçalar:

Arduino Pro Mini 328 - 3.3V/8MHz

Shake ile SparkFun Uyandırma

Lityum İyon Pil - 400mAh

Organizatör 12 adet TP4056 Şarj Modülü 5V Mikro USB 1A 18650 Korumalı Şarj Modülü ile Lityum Pil Şarj Panosu (bunlardan sadece birine ihtiyacınız var, ancak 12'li paket 9 dolardan azdı)

DAOKI 5 Adet Micro SD Depolama Kartı (yine, yalnızca bir taneye ihtiyacınız var, ancak 5'li paket hala 9 dolardan azdı)

DFRobot 2.2 inç TFT LCD Ekran Modülü

Kingston 8 GB microSD (evinizin etrafında bunlardan eski bir tane olabilir)

Perma-Proto Çeyrek boyutlu Breadboard PCB (istediğiniz PCB'yi de kullanabilirsiniz)

Sihirli 8 Top

FTDI Temel koparma 3.3V (Arduino Pro Mini veya benzeri bir kartla benzer bir proje yaptıysanız, bunlardan birine zaten sahip olabilirsiniz)

2.54mm JST XH Erkek/Dişi Pin Başlıklı 4 Pin Muhafaza Dupont Tel Konnektör Kiti (isteğe bağlı, ancak pili bağlamak için önerilir)

Diğer temel sarf malzemeleri:

Sugru Moldable Glue (koli bandı ve sıcak tutkal kullanabilirdim ama bunu daha çok beğendim)

Koli Bandı

Çift taraflı köpük bant

Tel

Aletler:

Havya

Seçtiğiniz döner alet (yani Dremel)

Mobilya kelepçesi

Adım 1: Magic 8 Ball'u Yarıya Kesin

Magic 8 Ball'u Yarıya Kesin
Magic 8 Ball'u Yarıya Kesin
Magic 8 Ball'u Yarıya Kesin
Magic 8 Ball'u Yarıya Kesin

İlk önce Magic 8 Ball'u ikiye bölmeniz gerekecek. Benimkini bir mobilya kelepçesi kullanarak düz tarafı aşağı gelecek şekilde bir çalışma masasına sabitledim. Temel kesme diski takılı bir Dremel kullanarak topun dikiş yeri boyunca kesin. Kesme diskinin izin verdiği kadar derin kesmeniz gerekecek. Ağırdan almak. Her tarafı kestikten sonra bile, son ayırmayı yapmak için düz uçlu bir tornavida veya keski kullanmanız gerekebilir. İçinde "sihirli" sıvı ve ikosahedron (yirmi kenarlı şekil - evet, buna bakmak zorunda kaldım) tutan bir silindir var. Sadece bunu atın veya başka bir projede kullanın. Başka bir projede kullanırsanız, ne yaptığınızı bana bildirin, böylece benimkiyle ne yapacağımı bileyim.

Resimlerde gösterildiği gibi iki yarım kalacaksınız. Bunu şimdi üç kez yaptım ve en son, beyaz dudak çıkıntılar yerine pürüzsüzdü, bu nedenle topunuz resimdekinden biraz farklı görünebilir.

Dış kenarda (erimiş ve yeniden sertleştirilmiş plastik) hala bir miktar plastik cüruf olacaktır. Mümkünse bunu ellerinizle frenleyin; bir alet kullanmak, topun bitişini çizme riskini taşır ve cüruf oldukça kolay bir şekilde çıkar.

Adım 2: Topu Hazırlayın

Topu Hazırla
Topu Hazırla
Topu Hazırla
Topu Hazırla
Topu Hazırla
Topu Hazırla

Topun plastik yarısında yapmamız gereken iki değişiklik var.

İlk olarak, üzerinde "8" yazılı olan açık yarıda, USB şarj kartımızın USB bağlantı noktası dışarı çıkacak şekilde oturması için yeterince büyük bir alanı tıraş etmemiz gerekecek. Dremel'imi kaba zımpara tamburu takılıyken kullandım. Bunu temizlemeden alabildiğin kadar ince istiyorsun. Ardından, USB bağlantı noktasının dışarıya girmesine izin verecek kadar küçük bir açıklık kesin. USB bağlantı noktasını ölçmek için bir kumpas kullandım, ancak gerekirse buna göz küresi yapabilirsiniz. Yine, açıklığı yapmak için Dremel'i küçük bir kesme aparatıyla kullandım. İlk iki resim, açılışı ve arkasındaki USB kartıyla nasıl göründüğünü gösteriyor.

İkincisi, diğer yarısında, İKİ tarafında delik olan ve beyaz plastik dudak olan, ekranın oturması için bir yer hazırlar. Ekranın oturacağı açıklığın hemen içinde, açıklığın iç kısmında plastik çıkıntılar ve kauçuk(?) flanş bulunur. Flanşı çıkarın ve bir kenara koyun. Bunu daha sonra geri koyacağız, ancak bu adım için bunu ortadan kaldırmak istiyoruz. Ekranın bir tarafında, bu çıkıntılardan bazıları çıkarılmazsa açıklığa düz oturmasına izin vermeyen dikdörtgen bir ekstrüzyon var. Dremel'deki kaba zımpara tamburunu tekrar kullanarak bunları mümkün olduğunca tıraş edin. En iyi açı için ekranın olacağı delikten içeri gelin. Tamamlandığında resimlerdeki gibi görünmelidir. Resimlerin ekranı yerinde gösterdiğine dikkat edin, ancak henüz TAKMAYIN.

Adım 3: Mikro SD Karttaki Yanıtları Hazırlayın

Bu adım düşündüğünüzden biraz daha karmaşık. Kendi yanıt listenizi oluşturmak istemiyorsanız, bu adımın son paragrafına atlayın.

Amaç, olası yanıtlar olarak kullanılacak herhangi bir dize listesini topa verebilmemiz ve kelimelerin ortasında herhangi bir kesinti olmadan ekranda ortalanmalarıdır. Bu işlemi mikrodenetleyicide yapmak istemiyoruz ve herhangi bir satırı hızlı bir şekilde bulabilmek için statik kayıt boyutunda bir dosya istiyoruz.

Ekran yuvarlak olsa da, işlevsel olarak yalnızca daire içindeki piksellerin görülebildiği sanal bir dikdörtgen ekrandır. Ekran çok boyutlu metin gösterebilir, ancak biz yalnızca 6 x 8 piksel olan en küçük sürümü kullanıyoruz. Bu boyutu kullanarak, ekranın bir ekrana koyabileceği 315 karakter vardır (satır başına 21 karakter çarpı 15 satır), ancak yalnızca 221 görünür ve her satırın farklı sayıda görünür karakteri vardır. Sorunu gördünüz mü?

Biçimlendirilmemiş yanıtların bir dosyasını almak ve bunları yuvarlak TFT'de kolayca görüntülenebilecek tam merkezli kayıtlara dönüştürmek için bir Java programı yazdım. ("FormatToPicksFileFullyCentered.java" dosyasını indirmek için bağlantı).

Kodun tamamının açıklamasına girmeden, genel fikir, merkezden geriye doğru çalışmamız ve kelimeleri görünür satırlar arasında bölmediğimizden emin olmak için boşluklar eklememiz, ardından aynı şeyi orta ileri. Son olarak, tam olarak 316 baytlık bir kayıt (315 alfasayısal karakter artı bir yeni satır karakteri) oluşturmak için tüm satırlar arasında döngü yapar ve her satırı tam 21 karakterlik satırın içinde ortalarız. Kod aslında kullanılabilecek en büyük yazı tipinin hangisi olduğunu ve metne hala uyduğunu görmek için x 3, x 2 ve x 1 olmak üzere üç yazı tipi üzerinden çalışır. Merkezleme, x 2 ve x 3 yazı tipleri için biraz kapalı, üzgünüm. Bir bayttan fazla yer kaplayan karakterlere dikkat edin, bunlar çıktı dosyasını atabilir.

"pics.txt" dosyasını mikro SD karta kopyalayın.

Kendi tahmin listenizi oluşturma zahmetine girmek istemiyorsanız, SD karta kopyalayıp kullanabileceğiniz seçim listemi ekledim. Şu anda talimatlara bir.txt dosyası yükleyemedim, bu yüzden burada picks.txt dosyasını indirebileceğiniz bir bağlantı var.

Adım 4: Arduino Mini'ye Kodu Yükleyin

Arduino Mini'ye Kod Yükle
Arduino Mini'ye Kod Yükle
Arduino Mini'ye Kod Yükle
Arduino Mini'ye Kod Yükle
Arduino Mini'ye Kod Yükle
Arduino Mini'ye Kod Yükle

Öncelikle, Arduino Pro Mini'yi daha önce hiç kullanmadıysanız, sadece bir USB kablosu takıp indiremezsiniz; bir FTDI kartı kullanmanız ve kabloları mini üzerindeki uygun pinlere bağlamanız gerekir. Bununla ilgili burada bir eğitim vermeyeceğim, internette çok şey var. Benim için, kodu indirmek için sadece bir kez kullanılacak olan mikrodenetleyici kartına kalıcı bir konektör lehimlemek istemedim, bu yüzden mini'yi lehimlemeden programlamak için kullanılabilecek küçük bir klip oluşturdum (resimlere bakın). Bu, Fiddy gibi ürünlerden ilham aldı, ancak bir 3D yazıcıya kolay erişimim yok, bu yüzden kendimi bir patates cipsi klipsinden yaptım. İnsanlar ilgileniyorsa, sadece bunun için bir talimat vereceğim.

Kod üzerine. Bu kodun birkaç ilginç kısmı var, ancak çoğunlukla basit.

Kurulum işlevinde, iyi bir rastgele tohum elde etmekle ilgilenen yeterli miktarda kod vardır. Bağlantısız bir pimden analog okuma kullanmanın tipik yöntemi, deneyimlerime göre yeterince çeşitli bir yanıt vermiyor. 477 ile 482 arasında bir sayı alıyorum. Arduino rastgele fonksiyonunun bir ve sadece bir dizisi olduğundan ve bu dizide nereden başlayacağını tohum belirlediğinden, bu kadar dar bir aralık sonunda yeterli olası yanıt üretmeyecektir. Bu kodun, Sarsıntıyla Uyandırma panosu gücü her kapatıp açtığında esasen yeniden başladığını unutmayın, bu nedenle tohum tarafından belirlenen ilk sıralama konumu çok önemlidir. Buna yardımcı olmak için SD karta çok küçük bir dosya yazıp son çekirdeğin kaydını tutuyorum ve onu bağlı olmayan pinden gelen yeni bir değere ekliyorum.

Döngü işlevinde bir seçim seçildiğinde ve bir karakter dizisine okunduğunda, yalnızca tüm dizeyi yazdıramayız. Ekranın, bir seferde ne kadar uzun bir dize işleyebileceği konusunda bir sınırı vardır. Bu nedenle, on beş satırın her biri arasında dolaşıp, birer birer ekrana göndermemiz gerekiyor.

Gerekli harici kütüphaneler:

ST7687S Kitaplığı

DFRobot-Ekran Kitaplığı

Adım 5: Bileşenleri Bağlayın

Bileşenleri Bağlayın
Bileşenleri Bağlayın
Bileşenleri Bağlayın
Bileşenleri Bağlayın

Tellerin tüm lehimlemelerini yapma zamanı. Gerçekten ihtiyacım olandan biraz daha uzun kabloların yanında hata yapma eğilimindeydim, ama bu iyi sonuç verdi.

Ekli şemada, TFT ekran, tüm ekranın bir resmi yerine (bir Fritzing parçası bulamadığım) bir konektör ile temsil edilmektedir. Parça üzerinde nasıl etiketlendiğine göre telleri/pimleri etiketledim. Benzer şekilde, SD kart benim kullandığım kart değil, ancak listelenen parça için kabloları/pinleri etiketledim.

Bu adımda birlikte lehimlemediğim bir bileşen var: pil. Bunun yerine, iki orta pimi çıkarılmış dört pimli bir konektör kullandım (ikinci resim). Bu, birbirine bağlı tüm bileşenleri test etmeme ve ardından her şeyi topa bağlarken pili çıkarmama izin veriyor.

Son olarak, gücü ve paylaşılan bağlantıları kolaylaştırmak için çeyrek boyutlu kalıcı devre kartı PCB kullandım. Montaj resimlerinde göreceksiniz.

Her şeyin çalıştığını test edin

Adım 6: Bileşenleri Topa Takın

Bileşenleri Topa Takın
Bileşenleri Topa Takın
Bileşenleri Topa Takın
Bileşenleri Topa Takın
Bileşenleri Topa Takın
Bileşenleri Topa Takın
Bileşenleri Topa Takın
Bileşenleri Topa Takın

Önce ekranı yerine yerleştirin ve sabitlemek için biraz Sugru kullanın (ilk iki resim). Daha önce çıkardığınız flanşı unutmayın, ekranı yerine sabitlemeden önce onu tekrar yerine takmalısınız.

Ardından, proto-board'u topun boş yarısının altına bantladım. Tüm lehimlerimi tahtanın bir tarafında tuttum, bu yüzden hala bantlayabileceğim tahtanın yarısı vardı. Daha sonra pili proto-board'un aynı yarısının üzerine bantladım (üçüncü resim).

Her iki yarı da artık teller ile birbirine bağlanmıştır. İki yarıyı bir araya getirdiğinizde USB deliğinin nerede biteceğini belirleyin. Beyaz dudağın dikenleri yukarı çıkıyorsa, beyaz dudağın takozlarından birine ortalanması gerektiğini unutmayın çünkü USB şarj kartını dudaktaki iki plastik çıkıntı arasına sabitleyeceğiz.

Küçük bir çift taraflı köpük bant parçası kullanarak USB şarj kartını takın. Çift taraflı bant, şarj kartının alt kısmının tamamını örtmemelidir, çünkü kabloların takılı olduğu uç beyaz dudağın orta kenarından sarkacaktır. Bu nedenle bant, tahtanın alt yüzeyinin yaklaşık dörtte üçünü kaplamalıdır. Bandı önce tahtanın altına koyun, ardından karar verdiğiniz noktaya bastırın. USB konektörü topun kenarında olmalı, topun dışına çıkmadan plastiğin siyah alanına yapışmalıdır. Son olarak, tahtanın üstünde biraz daha Sugru kullanın ve her iki taraftan sabitleyin. Bu, USB bağlantı noktasına bir kablo itildiğinde ek güç sağlar.

Micro-SD kartı şimdi SD kart modülüne yerleştirin

Dilerseniz diğer bileşenleri beyaz dudağa sabitleyebilirsiniz. Kalan bileşenleri ekranın arkasına sıkıştırdım.

7. Adım: İki Yarıyı Tekrar Birleştirin

İki Yarımı Tekrar Birleştirin
İki Yarımı Tekrar Birleştirin
İki Yarımı Tekrar Birleştirin
İki Yarımı Tekrar Birleştirin

SD kartı taktığınızı ve tüm bileşenleri birlikte test ettiğinizi iki kez kontrol edin.

Tamam, hazırsanız, biraz Sugru yapıştırıcısından uzun bir yılan yapın ve beyaz dudaklı topun yarısının kenarına kadar sürün (ilk resim). Yapıştırıcı, plastiğin siyah ve beyaz kısımlarının birleştiği birleşim yerine tam olarak serilmelidir. Yapıştırıcıyı buraya koymak, iki yarı birleştirildikten sonra çatlaktan sıkılan yapıştırıcı miktarını en aza indirirken güçlü bir bağınızın olmasını sağlar.

USB bağlantı noktasının önceden kesilen delikten geçtiğinden emin olarak iki yarıyı birbirine bastırın. Mobilya kelepçesini kullanarak, iki yarıyı birbirine sıkıca tutturun, sert bir şekilde sıkıştırmanıza gerek yok. Sugru tutkalı yaklaşık 24 saat içinde sertleşecektir.

Derzden sıkışan yapıştırıcının bir kısmı varsa, parmağınızla veya yumuşak bir bez/kağıt havluyla sıyırmaktan çekinmeyin.

Önerilen: