Ich habe diese Beitragsreihe hauptsächlich für mich selbst geschrieben, oder zumindest für jemanden, der versucht, etwas Elektronisches zum Verkaufen herzustellen. Wenn Sie das sind, dann hoffe ich, dass dies Ihnen auf Ihrer Reise hilft! Wenn Sie nur das Endprodukt sehen möchten, finden Sie es unter https://hortus.dev/products/social-battery .
Da es sich um einen langen Beitrag handelt, habe ich ihn in Abschnitte unterteilt, um ihn leichter verständlich zu machen. Diese sind:
Ich wollte mit dem Bestückungsservice von JLC PCB experimentieren – obwohl ich unbestückte Leiterplatten entworfen und hergestellt habe, bevor ich Komponenten manuell platzierte und lötete, habe ich einige zukünftige Projekte im Sinn, bei denen das manuelle Löten aufgrund der Menge und der Menge unpraktisch sein wird Größe der Komponenten.
Es ist erstaunlich, wie günstig dieser Service ist, wenn man bedenkt, worum es geht, aber er ist immer noch so teuer, dass es etwas entmutigend sein kann, wenn man sein Geld aushändigt und dann abwartet, ob man einen Fehler gemacht hat, der das Geld ruiniert Endresultat.
Ich dachte, ich würde mit etwas Einfachem beginnen, etwas, mit dem ich nicht nur die Möglichkeiten der Leiterplattenbestückung, sondern auch des E-Commerce testen könnte. Mein Plan bestand darin, einen kleinen Artikel zu entwickeln, den ich realistisch entwerfen und in weniger als einem Tag zur Herstellung einreichen konnte, um ihn dann hoffentlich einigermaßen problemlos auf einem Marktplatz wie Etsy zu verkaufen.
Ich hatte erwartet, dass die Design- und Herstellungsseite der schwierige Teil sein würde und dass es einfach sein würde, das Produkt auf Etsy zu listen, aber es war genau umgekehrt, wie Sie sehen werden, wenn Sie weiterlesen!
Ich habe einen kurzen Blick auf Etsy geworfen, um zu sehen, welche Dinge die Leute erfolgreich verkauften und die ich herstellen konnte. Ich habe ein paar Beispiele von Leuten gefunden, die elektronische Anstecknadeln herstellen – das perfekte Projekt! Diese bestanden meist aus LEDs mit einem zufälligen oder voreingestellten Blinkmuster auf einer neu geformten Platine.
Diese sahen für mich in Ordnung aus, aber ich wollte etwas interaktiveres und aussagekräftigeres ausprobieren, das ich für genug Geld verkaufen konnte, um bei einer kleinen Anzahl von Ersteinheiten eine vernünftige Marge zu erzielen.
Als ich mir die regulären Anstecknadeln ansah, die auf Etsy verkauft wurden, sah ich eine Reihe emaillierter „Social Battery“-Anstecknadeln mit einer verschiebbaren Markierung. Diese sprangen mir sofort als etwas auf, mit dem ich mich a) persönlich identifizieren konnte (die Leute machen endlose Witze über meine soziale Bindung …), b) als elektronische Version wirklich Spaß machen würde und c) einfach zu entwerfen wäre – nur a ein paar LEDs, ein Schalter und ein Mikrocontroller, um alles zusammenzubinden!
Im Vertrauen auf meine Fähigkeiten erstellte ich in Kicad einen kurzen Schaltplan. Ich habe mich für einen ATtiny13A entschieden – vor allem, weil ich ein paar von einem früheren Projekt zur Hand hatte und weil ich viel Erfahrung mit ähnlichen Chips habe.
Falls Sie damit nicht vertraut sind: Der ATtiny13A ist ein kleiner 8-Bit-Mikroprozessor mit 6 IO-Pins und gehört zur AVR-MCU-Familie. Er ähnelt den ATmega-Chips, die in der Vergangenheit das Herzstück der meisten Arduinos bildeten, nur dass seine Fähigkeiten viel eingeschränkter sind.
Der Vorteil besteht darin, dass die Chips der ATtiny-Reihe kleiner und günstiger sind. Wenn Sie also nicht viel Speicher oder Peripheriegeräte benötigen, sind sie großartig! (obwohl es angesichts der endlosen Vielfalt an ARM-Chips, die verfügbar sind, möglicherweise etwas veraltet ist).
Ich habe die Leiterplatte für meine Schaltung in KiCad entworfen und sie dann dazu gebracht, die Gerber- und Bohrdateien (die zur Herstellung der Leiterplatte verwendet werden) sowie die Stücklisten und Platzierungsdateien (die zur Montage von Komponenten auf Leiterplatten verwendet werden) auszuspucken. . Ich habe sie bei JLC PCB eingereicht, um zu sehen, ob sie sie korrekt verarbeiten konnten.
Die Stücklisten- und Platzierungsdateien mussten gegenüber der Standardeinstellung ein wenig angepasst werden, um sie in das richtige Format zu bringen (es stellte sich heraus, dass ich das auf die harte Tour gemacht habe, und es gibt ein viel einfacheres Plugin für KiCad, das alles mit einem einzigen Klick perfekt erledigt).
JLC PCB unterhält eine ziemlich große Komponentenbibliothek, die sie für Montageaufträge auf Lager halten. In meinem Fall war der ATtiny13a jedoch nicht verfügbar, sodass ich ihn bestellen musste. Dies war mithilfe ihres globalen Beschaffungsservices ziemlich unkompliziert. Ich konnte den Lieferanten mit dem besten Preis für die Menge, die ich brauchte, finden und sie dann von JLC PCB in meinem Namen in ihr Lager bestellen lassen.
Während ich wartete, dachte ich mir, ich könnte genauso gut meinen Entwurf auf ein Steckbrett setzen und mit der Arbeit am Code beginnen, und ich bin froh, dass ich das getan habe, denn ich habe sofort ein Problem entdeckt! Mein Design nutzte fünf der auf dem ATtiny13a verfügbaren IO-Pins, um die LEDs direkt anzusteuern (wobei der sechste zur Überwachung der Taste verwendet wurde).
Was ich beim letzten Mal, als ich diesen Fehler gemacht habe, nicht bemerkt/erinnert habe (ja, das ist schon einmal passiert), war, dass einer dieser IOs auch der Reset-Pin ist. Sie können es verwenden, aber es kann nicht viel Strom liefern, und indem ich es über eine LED mit der Erde verbunden habe, habe ich den Chip dauerhaft in einem Reset-Zustand gehalten.
Eine Möglichkeit, dies zu umgehen, besteht darin, eine Sicherung auf dem Chip durchzubrennen, die die Reset-Funktionalität des Pins dauerhaft deaktiviert und ihn in einen regulären IO verwandelt. Das Problem dabei ist jedoch, dass man den Chip nur einmal programmieren kann (es sei denn, man besitzt einen Hochspannungs-Programmierer, was bei mir nicht der Fall ist), und angesichts meiner Neigung, Dinge auf die harte Tour zu lernen, erschien mir das potenziell ziemlich verschwenderisch!
Die andere Möglichkeit besteht darin, einen Weg zu finden, mit weniger Pins mehr zu erreichen, sodass der Reset-Pin in Ruhe gelassen werden kann. Dies kann mithilfe einer Technik namens Charlieplexing erreicht werden, mit der Sie viel mehr LEDs ansprechen können, als Pins verfügbar sind.
Anschließend können Sie diese LEDs scannen und sie einzeln mit hoher Geschwindigkeit ein- und ausschalten, um den Eindruck zu erwecken, dass aufgrund der Persistenz der Sicht mehrere gleichzeitig leuchten.
In meinem Fall steuere ich die vier grünen LEDs über 3 Pins und die rote LED über einen dedizierten Pin. Dies ist nicht das effizienteste Beispiel für Charlieplexing, da ich alle LEDs über die drei Pins ansteuern könnte, aber Rot an einem dedizierten Pin zu belassen, ermöglicht einen einfacheren Code beim Programmieren.
Ich überarbeitete meinen Schaltplan und mein PCB-Design, exportierte dann die erforderlichen Dateien erneut und schickte sie an JLC PCB, um einen ersten Satz von fünf Prototypen herzustellen und zusammenzubauen.
Etwas mehr als eine Woche später erhielt ich meine Prototypen und war wirklich zufrieden damit! Es gab ein paar Dinge, die ich ändern musste:
Ich hatte nicht wirklich geplant, wie ich die Boards programmieren würde. Ich hatte gerade die AVR-Programmierstifte herausgebrochen und auf das Beste gehofft. Für fünf Prototypen war das in Ordnung, da ich die Programmierdrähte mit der kleinsten Menge Lötzinn anheften konnte, aber das würde bei großem Maßstab sehr schnell sehr mühsam werden.
Der Spike für die Befestigung auf der Rückseite wurde auf einem Erdungspad angelötet. Dies wäre in Ordnung gewesen, wenn die thermische Masse des Spikes und der Grundplatte auf der Platine es nicht erschwert hätten, eine gute Verbindung herzustellen. Außerdem ragt es sehr nahe am positiven Metallkäfig des Batteriehalters hervor, was bedeutete, dass die Wahrscheinlichkeit eines versehentlichen Kurzschlusses groß war, wenn Personen das Abzeichen auf/an leitenden Oberflächen platzierten/anbrachten.
Der Minuskontakt für die Batterie war nicht deutlich genug sichtbar, daher musste ich einen Klecks Lötzinn darauf auftragen, um eine gute Verbindung herzustellen. Auch hier gilt: Für eine kleine Anzahl von Prototypen ist das kein Weltuntergang, aber eine Qual, wenn ich das für große Mengen machen müsste.
Dies alles waren einfach zu implementierende Korrekturen. Ich habe einen richtigen Programmier-Header hinzugefügt, der mit einer Pogo-Pin-Vorrichtung für eine schnelle und wiederholbare Programmierung verwendet werden kann.
Ich habe den Spike von der Grundplatte getrennt, so dass er eine eigene kleine, nicht verbundene Kupferinsel war, die sich leichter erwärmte und keine Kurzschlüsse verursachte.
Und ich habe den Minuskontakt für die Batterie erweitert, damit er mehr Oberfläche für eine feste Verbindung hat.
Der Code ist ziemlich einfach. Ich verfolge den Modus, in dem sich das Abzeichen befindet. Dieser wird durch eine Ganzzahl dargestellt, die bei jedem Tastendruck verringert wird. Dann schleife und blinke ich jede LED auf meinem Weg, je nach Modus. Wenn Modus 0 erreicht ist, setze ich ihn wieder auf die ursprüngliche Zahl zurück und versetze den ATtiny dann in den Ruhemodus.
Durch erneutes Drücken der Taste wird der Interrupt ausgelöst, der den Chip aufweckt und den gesamten Vorgang erneut startet.
Insgesamt war ich mit den Ergebnissen sehr zufrieden, was bedeutete, dass es an der Zeit war, zu prüfen, ob ich sie verkaufen könnte!
Über meine Erfahrungen dabei können Sie im nächsten Beitrag dieser Serie lesen.