Bu yazı dizisini öncelikle kendim için veya en azından satmak için elektronik bir şeyler yapmaya çalışan biri için yazdım. Eğer bu sizseniz, umarım bu yolculuğunuzda size yardımcı olur! Sadece son ürünü görmek istiyorsanız onu https://hortus.dev/products/social-battery adresinde bulabilirsiniz.
Bu uzun bir yazı olduğundan sindirimi kolaylaştırmak için parçalara ayırdım. Bunlar:
JLC PCB'nin montaj hizmetini denemek istedim - bileşenleri manuel olarak yerleştirmeden ve lehimlemeden önce çıplak PCB'ler tasarlayıp üretirken, aklımda hem miktar hem de miktar nedeniyle elle lehimlemenin pratik olmayacağı bazı gelecek projelerim var. bileşenlerin boyutu.
Neler içerdiğini düşündüğünüzde bu hizmetin bu kadar ucuz olması şaşırtıcı, ancak yine de paranızı teslim etmek ve daha sonra hayatınızı mahvedecek bir hata yapıp yapmadığınızı öğrenmek için beklemek biraz göz korkutucu olabilecek kadar pahalı. sonuç.
Basit bir şeyle başlayacağımı düşündüm; sadece PCB montajının değil, aynı zamanda e-ticaretin de sularını test edebileceğim bir şey. Planım, gerçekçi bir şekilde tasarlayıp bir günden kısa sürede üretime sunabileceğim küçük bir ürün bulmak ve ardından Etsy gibi bir pazarda oldukça kolay bir şekilde satılabileceğini ummaktı.
İşin tasarım ve üretim tarafının zor kısım olmasını ve ürünü Etsy'de listelemenin kolay olmasını bekliyordum, ancak okumaya devam ederseniz göreceğiniz gibi tam tersi oldu!
İnsanların başarılı bir şekilde satabileceği ve benim de yapabileceğim türden şeylere bakmak için Etsy'yi hızlı bir şekilde taradım. Elektronik rozetler yapan insanlardan birkaç örnek buldum - mükemmel proje! Bunlar çoğunlukla yeni şekilli bir tahta üzerinde rastgele veya önceden ayarlanmış yanıp sönme düzenine sahip LED'lerden oluşuyordu.
Bunlar bana uygun göründü, ancak az sayıda başlangıç biriminde makul bir marj elde etmek için yeterli paraya satabileceğim, biraz daha etkileşimli ve anlamlı bir şey denemek istedim.
Etsy'de satılan normal rozetlere baktığımda, kayan göstergeli bir grup emaye 'Sosyal Pil' rozeti gördüm. Bunlar hemen bana a) kişisel olarak özdeşleştirebileceğim (insanlar sosyal pilim hakkında sonsuz şakalar yapıyorlar…), b) elektronik versiyonu olarak gerçekten eğlenceli olabilecek ve c) tasarımı kolay olabilecek bir şey olarak gözüme çarptı - sadece Hepsini birbirine bağlamak için birkaç LED, bir anahtar ve bir mikro denetleyici!
Becerilerime güvenerek Kicad'da hızlı bir devre şeması oluşturdum. ATtiny13A kullanmaya karar verdim; bunun temel sebebi daha önceki bir projeden elimde birkaç tane olması ve benzer çiplerle ilgili yeterli tecrübeye sahip olmamdı.
Eğer aşina değilseniz ATtiny13A, 6 IO pinli 8 bitlik küçük bir mikroişlemcidir ve AVR MCU ailesinin bir parçasıdır. Yeteneklerinin çok daha sınırlı olması dışında, tarihsel olarak çoğu Arduino'nun merkezinde yer alan ATmega çiplerine benzer.
Avantajı, ATtiny çip serisinin daha küçük ve daha ucuz olmasıdır; dolayısıyla, çok fazla belleğe veya çevre birimine ihtiyacınız yoksa, o zaman harikadırlar! (her ne kadar mevcut olan sonsuz çeşitlilikteki ARM çipleri nedeniyle muhtemelen biraz eskimiş olsa da).
Devrem için PCB'yi KiCad'de hazırladım, ardından gerberleri ve matkap dosyalarını (PCB'yi üretmek için kullanılır) ve malzeme listesi ve yerleştirme dosyalarını (bileşenleri PCB'lere monte etmek için kullanılır) tükürmesini sağladım. . Doğru şekilde işleyip işleyemeyeceklerini görmek için bunları JLC PCB'ye gönderdim.
BoM ve yerleştirme dosyalarının doğru formatta olması için varsayılandan biraz değişiklik yapılması gerekiyordu (görünüşe göre bunu zor yoldan yaptım ve KiCad için her şeyi tek bir tıklamayla mükemmel bir şekilde yapan çok daha kolay bir eklenti var).
JLC PCB, montaj siparişleri için stokta bulundurduğu oldukça geniş bir bileşen kütüphanesine sahiptir. Ancak benim durumumda ATtiny13a mevcut değildi, bu yüzden onları sipariş etmek zorunda kaldım. Küresel kaynak bulma hizmetlerini kullanarak bu oldukça basitti. İhtiyacım olan miktar için en iyi fiyatı veren tedarikçiyi bulabildim ve ardından JLC PCB'nin benim adıma bunları depolarına sipariş etmesini sağladım.
Beklerken, tasarımımı devre tahtasına alıp kod üzerinde çalışmaya başlayabileceğimi düşündüm ve bunu yaptığım için mutluyum çünkü hemen bir sorun keşfettim! Tasarımım, LED'leri doğrudan çalıştırmak için ATtiny13a'da bulunan beş IO pinini kullandı (altıncı düğmeyi izlemek için kullanıldı).
Bu hatayı en son yaptığımda (evet, daha önce de oldu) fark etmediğim/hatırlamadığım şey, bu IO'lardan birinin aynı zamanda sıfırlama pini olmasıydı. Kullanabilirsiniz ama fazla akım sağlayamıyor ve onu bir LED aracılığıyla toprağa bağlayarak çipi kalıcı sıfırlama durumunda tutuyordum.
Bunu aşmanın bir yolu, çip üzerinde, pinin sıfırlama işlevini kalıcı olarak devre dışı bırakarak onu normal bir IO'ya dönüştüren bir sigorta yakmaktır. Bununla ilgili sorun, çipi yalnızca bir kez programlayabilmenizdir (yüksek voltajlı bir programlayıcınız olmadığı sürece, ki bende yok) ve işleri zor yoldan öğrenme eğilimim göz önüne alındığında, bu potansiyel olarak oldukça israf gibi görünüyordu!
Diğer seçenek ise daha az pinle daha fazlasını yapmanın bir yolunu bulmaktır, böylece sıfırlama pini yalnız bırakılabilir. Bu, charlieplexing adı verilen ve mevcut pin sayısından çok daha fazla LED'i adreslemenize olanak tanıyan bir teknik kullanılarak başarılabilir.
Daha sonra bu LED'leri tarayabilir, onları tek tek yüksek oranda açıp kapatarak, görme kalıcılığı sayesinde aynı anda birden fazla açıkmış gibi görünmesini sağlayabilirsiniz.
Benim durumumda, dört yeşil LED'i 3 pinden ve kırmızı LED'i özel bir pin ile sürüyorum. Bu, charlieplexing'in en verimli örneği değil, çünkü tüm LED'leri üç pinden çalıştırabiliyorum, ancak özel bir pin üzerinde kırmızıyı tutmak, programlama söz konusu olduğunda daha basit koda izin veriyor.
Devre şemamı ve PCB tasarımımı revize ettim, ardından gerekli dosyaları yeniden aktardım ve bunları beş prototipten oluşan ilk setin üretimi ve montajı için JLC PCB'ye gönderdim.
Bir haftadan biraz daha uzun bir süre sonra prototiplerimi aldım ve onlardan gerçekten çok memnun kaldım! Değiştirmem gerektiğini görebildiğim birkaç şey vardı:
Panoları nasıl programlayacağımı gerçekten planlamamıştım. AVR programlama pinlerini yeni kırmıştım ve en iyisini ummuştum. Programlama kablolarını en ufak bir lehim parçasıyla tutturabildiğim için bu, beş prototip için iyiydi, ancak bu, ölçekte çok hızlı bir şekilde çok sıkıcı hale gelirdi.
Arkadaki tutturucunun sivri ucu bir zemin pedine lehimlendi. Çivinin termal kütlesi ve tahtadaki zemin düzleminin iyi bir birleştirme yapmayı zorlaştırması dışında bu iyi olurdu. Aynı zamanda pil tutucunun pozitif metal kafesine çok yakın bir şekilde çıkıntı yapıyor; bu da, insanların rozeti iletken yüzeylere yerleştirmesi/takması durumunda kazara kısa devre oluşma ihtimalinin yüksek olduğu anlamına geliyor.
Pilin negatif teması yeterince belirgin değildi, bu yüzden iyi bir bağlantı kurabilmek için üzerine bir miktar lehim eklemek zorunda kaldım. Tekrar ediyorum; az sayıda prototip için dünyanın sonu değil, ancak bunu çok sayıda yapmak zorunda kalırsam acı çekerim.
Bunların hepsi uygulanması basit düzeltmelerdi. Hızlı ve tekrarlanabilir programlama için pogo pin aparatıyla kullanılabilecek uygun bir programlama başlığı ekledim.
Çiviyi yer düzleminden ayırdım, böylece daha kolay ısınacak ve kısa devreye neden olmayacak, kendi küçük, bağlantısız bakır adası olsun.
Sağlam bir bağlantı kurmak için daha fazla yüzey alanına sahip olacak şekilde pilin negatif kontağını genişlettim.
Kod oldukça basit. Düğmeye her basıldığında azalan bir tamsayı ile temsil edilen rozetin modunu takip ediyorum. Daha sonra modun gerektirdiği şekilde yolumdaki her LED'i döngüye sokuyorum ve yanıp sönüyorum. Mod 0'a ulaşıldığında tekrar orijinal numaraya sıfırlıyorum ve ardından ATtiny'yi uyku moduna alıyorum.
Düğmeye tekrar basmak, çipi uyandıran ve tüm süreci yeniden başlatan kesmeyi tetikler.
Genel olarak sonuçlardan gerçekten memnun kaldım, bu da onları satıp satamayacağımı görme zamanının geldiği anlamına geliyordu!
Bunu yaparken yaşadığım deneyimi bu serideki bir sonraki yazıda okuyabilirsiniz.