Das Logo ist eine Ableitung des Arduino Community-Logos, das unter der Creative Commons-Lizenz CC-SA-BY-NC 3.0 lizenziert ist
Update: Bekanntgabe der Gewinner
Die Gewinner des Wettbewerbs wurden bekannt gegeben. Weitere Informationen finden Sie im Meta-Post .
Anlässlich des 10-jährigen Bestehens von Arduino sind wir stolz darauf, das erste Ereignis an der Arduino Stack Exchange anzukündigen .
Nehmen Sie Ihre Platinen und Lötgeräte heraus, graben Sie die ICs und Widerstände aus. Der erste Arduino Stack Exchange-Wettbewerb steht vor der Tür. Wir werden nach interessanten Projekten suchen, die mit Arduinos erstellt wurden. Der Wettbewerb zielt darauf ab, Projekte, an denen Sie und andere Mitglieder arbeiten, zu teilen, zu diskutieren und Feedback zu geben. Siehe Ankündigungspost
Einzelheiten:
- Der Preis ist ein offizielles Stack Exchange T-Shirt
- Beschränken Sie zwei Einträge pro Person. Wenn mehr als zwei angegeben sind, werden nur die ersten beiden berücksichtigt.
- Klone sind erlaubt.
- Projekte zur Prüfung werden bis zum 29. März 2014 um 4:00 UTC angenommen. Die Frage bleibt weiterhin offen, falls jemand sein am Arduino Day 2014 erstelltes Projekt vorführen möchte.
Besuchen Sie den Meta-Post, um Informationen zu diesem Ereignis und weitere Informationen zu erhalten.
Antwortformat
Sie können bis zu zwei Projekte (als zwei separate Antworten) als Wettbewerbsbeiträge einstellen. Alle zusätzlichen Einträge werden gelöscht. Beachten Sie folgende Vorlage für Einträge:
Projekttitel
Sehr kurze Beschreibung
Beschreibung
Was ist dein Projekt? Was tut es? Welches Problem löst es?
Design
Dinge, die in diesem Abschnitt enthalten sein sollten:
- Schaltpläne und andere Konstruktionsunterlagen. Fritzing ist ein gutes Werkzeug zum Zeichnen von Schaltplänen für Steckbretter, wie im obigen Projektlogo gezeigt.
- Komponenten, die zum Erstellen des Projekts verwendet wurden
- Bilder oder Videos
Fazit
Abschließende Gedanken. Was haben Sie aus diesem Projekt gelernt? Was würdest du anders machen, wenn du von vorne anfangen müsstest?
Sie können den folgenden Text kopieren / einfügen, wenn Sie diese Vorlage verwenden möchten.
# Project Title
**Very Brief Description**
# Description
What is your project? What does it do? What problem does it solve?
# Design
Things to include in this section:
- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video
# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?
Preise
Es gibt zwei Preise! Der Gewinner ist die Einsendung, die die maximale Anzahl von Upvotes erhält (Downvotes zählen nicht) und ein Stack Exchange T-Shirt * erhält! Es wird auch etwas für den Zweitplatzierten geben. Der zweite Platz wird nach Ermessen der Veranstalter festgelegt.
* Möglicherweise gelten bestimmte Einschränkungen. Der internationale Versand kann einige Wochen dauern.
Wo reiche ich meine Projekte ein?
Veröffentlichen Sie Ihre Projekte als Antworten auf diesen Beitrag.
Antworten:
Stateful Questbox
Eine GPS- Box, mit der Sie vor dem Öffnen einige Orte aufsuchen können
Beschreibung
Es ähnelt questbox , speichert jedoch einen kleinen Informationsstand im EEPROM , sodass Sie zwei oder drei verschiedene Orte besuchen müssen, bevor es geöffnet wird.
Design
Benötigte Hardware:
Hardware-Gesamtkosten: 137 $ + Versand
Zusätzliche Materialien:
Die Montageanleitung finden Sie auf der Sonnenuhr-Seite (Sie können die meisten Materialien von dort kaufen).
Ich werde Stateful Code hochladen und hier einen Link posten, leider bekomme ich nicht alle benötigten Hardware rechtzeitig, also ist dies nur eine Idee :)
Bisher geschriebener Code :
Inspiration:
Fazit
Ich habe gelernt, wie man viele Komponenten und Bibliotheken zusammenbringt, und muss ein bisschen reisen, um es zu testen :)
Das Budget kann erheblich gekürzt werden, was das Konzept ein wenig verändert:
quelle
Energiesparen für den geistesabwesenden PC-Nutzer
Dieses Gerät schaltet die Schreibtischbeleuchtung ein / aus, wenn es dunkel ist (ish) und mit meinem PC-Bildschirmschoner synchronisiert ist.
Beschreibung
Das Projekt ist kaum mehr als eine Kombination aus einem lichtempfindlichen Sensor, einem Relais und einem intelligenten Code, der den Bildschirmschoner auf meinem PC überwacht. Wenn es dunkel ist und der Bildschirmschoner nicht aktiv ist, schaltet er die Lichter über meinem Schreibtisch ein. Wenn ich anschließend meinen Schreibtisch verlasse, wird der Bildschirmschoner aktiviert, wodurch das Ausschalten der Schreibtischbeleuchtung ausgelöst wird. Wenn tagsüber genügend Licht vorhanden ist, werden die Lichter überhaupt nicht eingeschaltet. Das gelöste Problem besteht darin, die Energieverschwendung zu reduzieren, die durch das Einschalten der Beleuchtung in meinem Büro entsteht, wenn ich den Raum verlassen habe.
Design
Aufgrund der Leistungsfähigkeit von Mikrocontrollern / Arduino ist nur wenig zusätzliche Hardware erforderlich, um ein nützliches Projekt zu erstellen. Gleiches gilt für dieses Projekt, bei dem die Hardware kaum mehr ist als:
simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab
Fazit
Ich habe gelernt, wie ich den PC über die serielle USB-Verbindung mit Arduino verbinden und den aktuellen Status des Bildschirmschoners auf meinem PC lesen kann. Wenn ich von vorne anfangen würde, würde ich einen viel kleineren Controller verwenden, da ich wirklich nur einen einzigen digitalen Ausgang und einen einzigen analogen Eingang benötige. Basieren Sie das Projekt wahrscheinlich auf V-USB . Arduino eignet sich jedoch hervorragend für den schnellen und einfachen Proof of Concept (PoC). (Der PoC ist bereits seit mindestens zwei Jahren auf meinem Schreibtisch).
quelle
Ich denke, diese Art von passt kaum in die Regeln, aber es ist interessant genug, dass ich es sowieso posten würde.
Hochpräziser, GPS-synchronisierter Zeitstempelgenerator für Datenerfassungszwecke.
Dies ist ein ziemlich interessantes Projekt, das verwendet werden soll, um auf einfache Weise mehrere unabhängige Datenerfassungssysteme zu synchronisieren.
Grundsätzlich arbeite ich in einem Forschungslabor und wir haben oft Instrumente mit mehreren unabhängigen Datenerfassungssystemen, die physisch um bis zu 50 Fuß voneinander getrennt sein können. Wir müssen in der Lage sein, den Zeitpunkt der Probenahme aus jedem System zu korrelieren. Dies kann schwierig sein, wenn Sie die Probenahmezeiten mit einem hohen Maß an Präzision auflösen möchten. Wenn Sie so etwas wie ein USB-Datenerfassungssystem verwenden, kann nur die USB-Latenz mehrere hundert Millisekunden unbekannte Latenz einleiten, die von Erfassung zu Erfassung variieren kann.
Die vorherige Lösung war ein 24-Bit-Parallelzähler, der einfach über alle Bereiche verteilt war, einen enormen Kabelbaum erforderte und den Hintern quälte.
Dieses System verwendet ein spezielles GPS-Zeitsteuerungsmodul , das beliebige Frequenztakte synthetisieren kann, die mit den Atomuhren in den GPS-Satelliten phasen- und frequenzverriegelt sind.
Die MCU ist für das Zusammenbinden der GPS-Datennachrichten verantwortlich (ich musste einen vorhandenen Protokollparser für die GPS-Daten stark erweitern und optimieren). Das GPS ist für die Verwendung eines proprietären Binärprotokolls konfiguriert und wird vom von mir geschriebenen Parser analysiert.
Das Projekt wurde mehrfach überarbeitet (siehe Abbildung unten).
Design
Revisionen!
Rev. 1: Hat nie funktioniert, da ich ursprünglich gehofft hatte, mit einer Software-dPLL von einem viel günstigeren GPS einen höherfrequenten Takt nur aus dem 1-PPS-Ausgang zu synthetisieren. Es ist wahrscheinlich möglich, es zum Laufen zu bringen, aber die Zeitinvestition hat sich einfach nicht gelohnt. (Und ich bin zu beschissen ein Kodierer)
Benutzte einen Parallaxenpropeller MCU. Das Fehlen anständiger kompilierter Sprachen war ebenfalls ein großes Problem.
Rev 2: Auf einen ATmega2560 umgestellt. Arbeitete, hatte viele funky Design-Aspekte aus der ersten rev geerbt. In erster Linie die fortgesetzte Verwendung von Schieberegistern für die 32-Bit-Ausgabe, trotz der mehr als ausreichenden Anzahl von E / A auf dem ATmega2560.
Das erste Board, auf dem Optiboot lief und das vollständig mit der Standard-Arduino-Toolchain programmiert wurde, bevor ich mich darüber ärgerte und anfing, die Toolchain zu modifizieren, um sie meinen Zwecken besser anzupassen.
Rev. 3: Funktionierte auch. Die fehlerhafte Verkabelung ist darauf zurückzuführen, dass diese Karte einen integrierten USB-Hub enthält, um die Anzahl der erforderlichen USB-Anschlüsse zu verringern (die FTDI-Schnittstelle erfordert 1 USB und das GPS verfügt auch über eine USB-Schnittstelle). Leider konnte das GPS nicht richtig aufgezählt werden, obwohl das FTDI-Gerät einwandfrei funktioniert hat und ich diesen Hub ohne Probleme an anderer Stelle verwendet habe. Seltsam.
Ich habe keinen richtigen USB-Debugger, also habe ich den USB-Hub einfach ganz fallen gelassen, anstatt zu versuchen, das Problem zu beheben. Der GPS - USB ist nicht wirklich viel außerhalb von Set-up sowieso verwendet.
Rev 4: Halbfinale ATmega2560-Version. Es wurde ein LCD für den GPS-Status hinzugefügt, das mit LEDs und so weiter gespielt wird. Bessere Stellfläche für die möglichen Superkondensatoren zur Aufrechterhaltung des GPS-Status im stromlosen Zustand.
Dies ist die letzte Optiboot-Version.
MStime
ist dieMSTOW
oder Millisekunden-Zeit der Woche, die der Name des GPS-Datenwerts ist, der auf dem Zeitstempel-Ausgang ausgegeben wird. Es handelt sich um eine 32-Bit-Variable, die einmal pro Millisekunde inkrementiert und jede Woche aktualisiert wird. Es ist ein undurchsichtigerer Teil des GPS-Standards.ITOW
ist ein weiterer GPS-bezogener Wert, der dem 1PPS-Signal entspricht. Die Korrelation zwischen den beiden wird auf dem LCD nicht richtig wiedergegeben, da ich nicht die CPU-Zeit habe, um das LCD mit der von mir gewünschten Geschwindigkeit zu aktualisieren. Dies war tatsächlich eines der wichtigsten Dinge, die beim Upgrade auf die Xmega-Geräte verbessert wurden.Rev 5: Vollständiger Architekturwechsel. Verwendet jetzt einen ATxmega128A1U-Prozessor. Nicht mehr wirklich "Arduino", aber die Möglichkeit, mehrere Interrupt-Levels für die xmega-Prozessorserie zu haben, ermöglichte es mir, die Codestruktur erheblich zu verbessern.
Die beiden Drähte von mir haben experimentiert, das Board hat auch ohne funktioniert.
Ich freue mich auf:
Rev 6!
Fügen Sie die Möglichkeit hinzu, unterschiedliche LCD-Größen zu verwenden, den ESD-Schutz beim Anschluss der GPS-Antenne zu erhöhen (das war ein Problem) und die Möglichkeit, anstelle von Superkondensatoren eine CR2032-Batterie zur Aufrechterhaltung der GPS-Uhr zu verwenden.
Auch die Beschriftung von Debug- und Status-LEDs wurde deutlich verbessert.
Und Bonus Nyan-Cat!
(Diese Boards werden gerade hergestellt. Wenn ich sie bekomme, füge ich Bilder des echten Boards hinzu.)
Ich habe einige Langzeittests zwischen zwei ATmega2560-Platinen durchgeführt, und über 72 Stunden betrug der RMS-Zeitfehler zwischen den beiden Einheiten ~ 20 us. Dies geschah auch mit zwei völlig unabhängigen Antennen. Mein gestalterisches Ziel war <1 ms, also bin ich ziemlich zufrieden damit.
Insgesamt denke ich, dass dies eine gute Arbeit leistet, um zu veranschaulichen, wie Arduino ein nützliches Werkzeug für das frühe Prototyping von "echten" Produkten / Systemen sein kann. Ich verwende es, um eine erste Testversion mit minimalem Aufwand zum Laufen zu bringen, und wenn ich sicher bin, dass die Idee funktioniert, setze ich die Arbeit tatsächlich ein, um zu einer vollständig benutzerdefinierten, zweckspezifischen Implementierung zu migrieren.
Designdateien:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(In der Reihe der Verzeichnisse "GPS Timestamp").
(Hinweis: Dateien stammen aus Altium Designer. Es handelt sich nicht um Eagle-Dateien.)
Quellcode:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Wieder in der "gpsTimeStamp" -Verzeichnisreihe.
Entschuldigung für die beschissenen Handybilder.
quelle
Sonic Ray Gun
Zwei Projekte von Kindern
Ich arbeite mit ein paar zu Hause ausgebildeten Kindern und wir haben viel Spaß mit einem Arduino. Ihr erstes Projekt war eine gefälschte Bombe, wie Sie in den Filmen sehen, mit einem LCD-Countdown-Timer und einem Klassiker "Schneiden Sie den roten oder blauen Draht?" Typ Problem.
Projekt zwei begann damit, ihnen das toneMelody-Beispiel und einen kleinen Sprecher zu zeigen. Das stellte sich schnell heraus, dass es für Teenager ziemlich ärgerlich war, wenn man die Frequenz auf 15kHz drehte. Eine Stunde später hatten sie das Design mit einer Tasse, einer Klopapierrolle und einem Schalter aus einer Büroklammer, aus der eine Schallstrahlpistole mit Richtcharakter bestand, verbessert.
Leider keine Bilder.
Fazit
Lassen Sie Kinder nicht mit einem Arduino unbeaufsichtigt.
quelle
(Fake) Linux auf Arduino
Vor kurzem habe ich einen kleinen zusammengesetzten LCD-Bildschirm erworben, mit dem ich schnell angefangen habe, mit der Arduino TVout-Bibliothek zu spielen. Was kam als nächstes Linux!
Beschreibung
Während ich mit meinem Fernsehbildschirm und der TVout-Bibliothek herumspielte, stellte ich fest, dass es einen vorgefertigten Terminal-Handler für den Fernseher gibt. Ich begann bald damit zu experimentieren, es als TV-Terminal zu verwenden, das an eine PS / 2-Tastatur angeschlossen war. Es gab einige Probleme mit der von mir verwendeten PS / 2-Bibliothek, daher habe ich sie auf die Verwendung der USB-Bibliothek auf meinem Mega ADK zusammen mit einer USB-Tastatur umgestellt. Das hat viel besser funktioniert. Jetzt zur Aufbewahrung.
Mein SD-Karten-Shield ist nicht mit meinem Mega kompatibel, daher habe ich es etwas willkürlich mit dem SPI am Ende des Boards verbunden. Ich habe die Befehlsbearbeitung geschrieben, um einige Aufgaben wie das Auflisten von Dateien und das Ermitteln der Festplattengröße, des freien Speicherplatzes usw. auszuführen. Die gesamte Baugruppe ist bei weitem nicht fertig, aber ich bin mit den Fortschritten, die ich erzielt habe, zufrieden.
Der Code wird irgendwann nach Github verschoben, siehe die Kommentare.
Design
Herausforderungen
Ich hatte große Probleme, die eingegebenen Zeichen mit der Zeichenfolge zu verknüpfen, in der der aktuelle Befehl gespeichert ist, weil ich nicht richtig gewirkt habe. Nachdem ich das herausgefunden hatte, musste ich auch das Problem beheben, bei dem einige Tasten zufälligen Müll auf den Bildschirm druckten. Dies wurde durch das Lesen des Gedächtnisses vor den Buchstabendefinitionen verursacht, daher haben ein paar
if
s das geklärt.Fazit
Ich bin sehr zufrieden mit dem Code. Sobald ich ein paar weitere Hilfsprogramme hinzugefügt habe, werde ich es auf Github setzen, also schau dir die Kommentare an. Insgesamt war es ein sehr lustiges Projekt. Ich habe gelernt, wie man Stino benutzt.
quelle
ShiftLCD
AVR-basiertes, Arduino-kompatibles Board, das auf der Rückseite eines LCD-Bildschirms mit 8x1 bis 20x4 Zeichen montiert wird.
Beschreibung
Ich habe gerade diese Platine und die benutzerdefinierte Bibliothek entworfen, um die Verwendung und das LCD zu vereinfachen. Obwohl sie im Moment ziemlich einfach zu bedienen sind. Dadurch wird die Anzahl der verwendeten Ausgangspins von 6 auf 3 verringert. Außerdem besteht die Möglichkeit, die E / A zu erweitern, indem demjenigen, der die Anzeige steuert, weitere Schieberegister hinzugefügt werden. Der verwendete Prozessor ist ein ATTiny45 oder ATTiny85, der nach Verwendung des Schieberegisters die digitalen Pins 1 (PWM) und 4 und den analogen Pin 2 (derselbe Pin wie der digitale Pin 4) zur Verfügung hat.
Design
Herausforderungen
Eine unvorhergesehene Herausforderung war, als ich anfing, das Schieberegister mit den digitalen Pins 0-2 zu betreiben. Dies waren auch die Programmierpins (MISO, MOSI, SCK). Jedes Mal, wenn ich das Gerät neu programmierte, wurden auf dem LCD-Bildschirm eine Reihe von Kauderwelschmeldungen angezeigt, bei denen die Stromversorgung ausgeschaltet werden musste, um die Anzeige zurückzusetzen. Ich habe dieses Problem gelöst, indem ich den Latch-Pin des Schieberegisters auf den Digital-Pin 3 verschoben habe, der kein Programmier-Pin ist. Das Lösen dieses Problems löste auch ein anderes Problem für mich, denn als ich den Verriegelungsstift bewegte, öffnete sich der digitale Stift 1 mit PWM-Nutzung, sodass mehr Dinge mit der Platine erledigt werden konnten.
Fazit
Zugegeben, dies ist möglicherweise nicht das coolste Produkt oder die coolste Idee, aber es hat immer noch seine Verwendung. Die Frage direkt beantworten: "Was haben Sie aus diesem Projekt gelernt?" Ich habe gelernt, wie man von Anfang bis Ende eine Leiterplatte entwirft. Wenn ich irgendetwas anders machen könnte, wäre es gewesen, oberflächenmontierte Teile anstelle von Durchgangslöchern zu verwenden, dann ist es wiederum nur ein Prototyp, eine Einzelplatine.
quelle
Knopfdruckroboter.
Ein vierrädriger ferngesteuerter Laser-Schießroboter, der auf Knopfdruck arbeitet.
Beschreibung
Ich habe dieses Projekt im Laufe des letzten Schuljahres gemacht. Ich war im Robotikunterricht und wir entschieden uns für einen Wettbewerb. Jedes Team würde einen Roboter bauen, der einen großen Knopf und eine Möglichkeit zum Drücken anderer Knöpfe hat. Am Ende des Jahres hätten wir den letzten Wettbewerb, bei dem die drei Roboter versuchen würden, sich gegenseitig die Knöpfe zu drücken.
Am Ende des Jahres hat mein Roboter nur teilweise funktioniert. Jeder Teil des Roboters hatte irgendwann funktioniert, aber zwischen einem gebratenen Arduino, gebratenen Kraftfahrern, einer schrecklichen Code-Organisation und mir als der einzigen Person in meinem Team, die insgesamt mehr als fünf Stunden an dem Roboter gearbeitet hatte, war ich konnte es nicht vollständig zum Laufen bringen.
Ich habe meinen Roboter seit fast einem Jahr nicht mehr angefasst. Wenn ich ihn wieder zum Laufen bringen wollte, musste ich den Bot neu verkabeln und den Code neu schreiben. Vielleicht entscheide ich mich dafür, aber im Moment arbeite ich an weniger ehrgeizigen Projekten.
Design
Gesamtkonzept
Informations- / Stromfluss
Komponenten
Code
Ich habe meinen Code nicht sehr gut organisiert und hoffe, dass dies der richtige Code ist.
Mehr Bilder
Schreckliches Video einer langsamen, armlosen, knopflosen, laserlosen und bluetoothlosen frühen Version des Roboters.
https://www.youtube.com/watch?v=Q7MvE7-Xb0E
Fazit
Ich kann wirklich gut Elektronik braten.
Dies war meine erste Erfahrung in einer tatsächlichen Maschinenwerkstatt. Ich musste eine CNC-Fräsmaschine, eine manuelle Fräsmaschine, eine Drehmaschine und eine Bandsäge benutzen. Wenn ich ein Projekt wie dieses erneut starten würde, würde ich eine viel bessere Dokumentation erstellen, um herauszufinden, was zum Teufel ich ein Jahr später tat.
quelle
4-stellige LED-Anzeige für Arduino
Kleine Platine mit 4 7-Segment-LED-Ziffern, die über 3 Pins verwaltet werden.
Beschreibung
Als ich anfing, mit Arduino zu arbeiten, wollte ich eine Möglichkeit zum Anzeigen von Werten, die von verschiedenen von mir experimentierten Sensoren erfasst wurden, aber ich wollte diese Werte nicht über
Serial
einen PC ausgeben .Ich wollte ein kleines Board, das ich problemlos von einem Projekt zum anderen wiederverwenden kann, und ich wollte ein Steckbrett ersparen.
Dieses Board ermöglicht zusammen mit seiner kleinen Bibliothek derzeit die Anzeige von 4-stelligen Zahlen und gibt während der Anzeige keinen Arduino-Strom mehr aus (Strom wird nur dann bezogen, wenn der neue Wert, der von nun an angezeigt werden soll, an das Board übermittelt wird).
Design
Das Design ist recht einfach, da ich mich entschlossen habe, einen MAX-7219- Chip für die Ansteuerung meines LED-Displays zu verwenden (ich hatte einige davon zur Hand).
Dank dieses Chips war der Schaltplan sehr einfach, aber es war wichtig zu verstehen, wie man ihn benutzt. Zum Glück war sein Datenblatt ziemlich klar.
Das ursprüngliche Design wurde auf einem Steckbrett erstellt und es wurden 4 einzelne 7-Segment-LED-Ziffern verwendet . Für meinen Geschmack war jedoch zu viel Verkabelung erforderlich (Segmente müssen durch 4er-Gruppen verbunden werden). Auch während meines ersten Experiments mit 7-Segment-LED-Ziffern habe ich eine gebraten: Es hatte 2 Erdungsstifte, aber ich habe nur einen an GND anstatt an beiden angeschlossen :-(
Dann entschied ich mich für ein 4x7-Segment-Display, eine gewöhnliche Kathode , mit bereits 4-stellig angeschlossenen Segmentanoden: das sind nur 4 + 8 Pins!
Während meiner Tests habe ich eine nützliche Arduino-Bibliothek für die Arbeit mit MAX-7219 gefunden, die ich wieder verwenden wollte. Darauf habe ich meine eigene Bibliothek mit einer sehr einfachen API aufgebaut.
Nach dem Breadboarding war es an der Zeit, das Design dauerhafter zu machen. Da ich ein paar Stripboards zur Hand hatte, entschied ich mich dafür.
Ich habe einen einfachen Stripboard-Designer für den PC gesucht und gefunden , mit dem ich mein Board entworfen habe.
Das erste Stripboard-Design wurde nicht in Bezug auf den Platz optimiert und ich habe mich entschieden, es nicht zu implementieren:
Dann habe ich das Design überprüft, um die Kosten und die Größe zu optimieren (nur ein kleines 50x75mm-Stripboard); das war einfach mit dem stripboard designer, den ich vorher gefunden habe:
Sobald das Board fertig war, entschied ich mich, es mit einem Arduino UNO und einem Ultraschallsensor zu überprüfen:
Es schien zu funktionieren, außer dass ich oft seltsame, inkonsistente Anzeigewerte hatte; Nach der Untersuchung stellte ich fest, dass das Rauschen durch die Anzeigetafel ausgelöst wurde und den Sensor störte. Ich musste nur eine Entkopplungskappe so nahe wie möglich an den Stromversorgungsstiften des Sensors anbringen, und das funktionierte einwandfrei (beachten Sie, dass die Anzeigetafel bereits Entkopplungskappen für den MAX-7219-Chip hatte).
Liste der Einzelteile:
Fazit
30 Jahre nach meinen letzten Elektronik-Experimenten konnte ich den Virus mit Arduino und mit diesem allerersten Projekt wiederbekommen, das mir einige Dinge beibrachte, obwohl es ziemlich einfach war:
Wenn ich dieses Projekt heute noch einmal starten würde, würde ich:
quelle
Digitale Wanduhr mit Funkfernbedienung
Eine große Wanduhr mit 7 Segmenten (40 x 30 cm / 16 x 12 Zoll) und R / F-Fernbedienung.
Beschreibung
Dieses Projekt verfügt über eine große digitale Wanduhr mit 7 Segmenten (40 x 30 cm / 16 x 12 Zoll) und R / F-Fernbedienung. Folgende Funktionen stehen zur Verfügung:
Design
Die wichtigsten Aspekte dieses Projekts waren:
Nachfolgend finden Sie die Schaltpläne für den Controller und eine der 7-Segment-Karten:
Hier sind einige Bilder der Boards, die ich entworfen, geätzt und zusammengebaut habe, sowie der Fernbedienung:
Und zum Schluss noch ein Bild von einer anderen Version der Uhr. In diesem Fall mache ich die 7-Segment-Anzeigen selbst mit rechteckigen LEDs und diskreten Komponenten.
Fazit
Dieses Projekt hat mich viel Zeit, Mühe und Lernen gekostet (es ist, wie ich gelernt habe, nie zu Ende gegangen), aber es hat viel Spaß gemacht. Ein paar Dinge, die ich gelernt habe:
Studieren Sie alle die Libs Sie gehen in Ihrem Projekt verwenden , bevor Sie GPIO - Pins in Ihrem Controller zuweisen , so dass Sie mögliche Konflikte zu vermeiden. Ich hatte Pech, denselben PWM-Pin für die Helligkeitssteuerung zu verwenden, der mit dem VirtualWire-Timer verknüpft ist, und musste daher das Board patchen, damit Helligkeit und HF gleichzeitig funktionieren.
Das Crimpen von KK Molex- und Modu-Steckverbindern dauert VIEL ZEIT !!
Lasergeschnittene Acrylteile sind die Zukunft. Sie verleihen dem Gerät eine Menge Qualität, auch wenn Sie ungeschickt sind.
quelle
TV-Antennenrotator
IR ferngesteuerte Antennenrotation
Sie können die Couch nicht verlassen, um die Ausrichtung der TV-Antenne anzupassen? Und selbst wenn Sie dies tun, ändert manchmal Ihre Nähe zur Antenne den Empfang. Es wäre schön, die Antenne von der Couch aus einstellen zu können. Verwenden der TV-Fernbedienung.
Komponenten
Arduino Uno, IR-Empfänger, Schrittmotor mit Treiberplatine, 1 "ID-Lager, Swiffer-Moppgriff, Kunststoffbox,
Beschreibung
Verwenden Sie einen alten Swiffer-Moppgriff als Antennenpfosten. Ich habe ein 1-Zoll-ID-Lager von meinem bevorzugten Online-Shop erhalten, in das der Moppgriff gerade hineindrückt und anhält. Ich habe ein Loch in die Kunststoffbox gebohrt, das groß genug ist, damit der Moppgriff hindurchpasst, aber nicht für das Lager. Ich habe ein Rechteck gebohrt Loch in das Ende des Moppgriffs, um auf die Welle eines 28BYJ-48-Schrittmotors zu passen, und steckte den Apparat wie gezeigt in die Schachtel. Der Moppgriff ruht tatsächlich auf dem Lager, und das Lager ist super auf die Oberseite der Kunststoffschachtel geklebt .
Verwendete die stepper.h-Bibliothek, um den Motor von einem Uno aus zu drehen.
Ich nahm einen unbenutzten DVD-Player auseinander und holte den IR-Empfänger heraus. Sie können jedes Consumer-Gerät, das über eine Fernbedienung verfügt, zerlegen und den IR-Empfänger verwenden, damit es funktioniert. Der IR-Empfänger verwendet die Bibliothek IRremote.h. Auf dem seriellen Monitor habe ich den Hex-Code ausgedruckt, der den beiden Tasten auf der Fernbedienung des Fernsehgeräts entspricht, mit denen ich den Antennenmotor bedienen möchte. Eine für links drehen, eine für rechts.
Um Energie zu sparen, schalten Sie die Spulen nach jeder Bewegung mit der Funktion small_stepper.motorOff () aus.
Fazit
Dies war ein lustiges Projekt, das auch für meine Frau nützlich war. Ich habe keine Beschleunigung / Verzögerung in die Bewegung implementiert, was sehr schön sein könnte, besonders wenn die Antenne mehr Rotationsträgheit hätte.
Edit: Entschuldigung, dass das Bild seitlich ist! Es ist richtig herum auf meinem Computer. Ich habe keine Ahnung, warum es seitwärts online ist.
quelle
Die Klopflampe
Eine Lampe, die ein- und ausschaltet, wenn der Schreibtisch angeschlagen wird. Derzeit in der Alpha-Phase, noch Prototyping, aber ich denke, es ist das nützlichste Arduino-Projekt, das es gibt. Eingeschlossener Scherzgenerator ... von zuvor aufgezeichneten Klopf-Klopf-Witzen. Hinweis: Ich weiß, dass ich in den Regeln nicht gewinnen kann, aber es gibt keine Regel für die Teilnahme ... Ich kann auch mein Projekt vorführen.
Beschreibung
Bisher habe ich das meiste ziemlich genau erklärt. Sie klopfen an und das Licht geht an und aus. Ich bin derzeit auf Steckbrett. Ich benutze ein Piezoelement , um die Stöße mit Vibrationen zu erkennen. Parallel dazu habe ich einen 1-Megaohm-Widerstand, um mein Arduino Uno SMD zu schützen.
Ich dachte an diesen Entwurf, nachdem ich beinahe meine Lampe von meinem Schreibtisch gestoßen hatte (haha punny), während ich nach dem kleinen Kippschalter suchte. Ich bin nicht genau ... gut geschickt . Es ist schön, einfach auf den Schreibtisch zu klopfen und dann Licht zu haben. Ich verwende auch ein Power Switch Tail SSR (Halbleiterrelais: kein Rauschen), um es mit zwei Pins meines Arduino zu steuern.
Design
Das Bild wurde mit einer über dem Monitor hängenden Webcam aufgenommen ... eek!
Komponenten, die zum Erstellen des Projekts verwendet wurden:
Kosten für mich: $ 3.30 USD + $ 0.02 USD (Steuern) == Nur $ 3.32!
Fazit
Insgesamt ist es ein einfaches Projekt, aber es ist tatsächlich nützlich. Das ist ein Kampf mit meinen Arduino-Projekten: Kann ich etwas bauen, das ich tatsächlich nutzen würde ? Das Blinken einer LED hilft Ihnen nicht gerade im Leben. Es macht Spaß, aber das war es auch schon.
Das größte Problem, mit dem ich konfrontiert war (und das ich immer noch tue), ist, dass ich kein ausreichend starkes Signal erhalte. Ich habe viel über elektrische Signale gelernt: Ich habe herausgefunden, wie man die "Spitze" eines Impulses findet und nicht nur den Stift in zufälligen Intervallen liest und die höhere Spannung übersieht. Ich würde versuchen, ein empfindlicheres Piezoelement zu erhalten. Ein größerer würde helfen. Ich versuche, meine Schaltung zu modifizieren, um die Spannung nicht so stark zu begrenzen, aber den Arduino zu schützen. Eine Art Sicherung würde in dieser Situation helfen. Ich spiele auch mit Widerstandswerten herum. Es wäre sehr hilfreich, einen Spielraum dafür zu haben, aber ich denke nicht ...: P
Nachdem ich die Schaltung perfektioniert habe, werde ich daran arbeiten, sie mit einem ATtiny auf eine Leiterplatte zu bringen ... und vielleicht sogar einige Kits zu entwickeln. Ich werde versuchen, meine Erkenntnisse darüber zu veröffentlichen, wie man das Element empfindlicher macht, ohne dabei mein Board zu gefährden.
Status Update: Ich war in letzter Zeit sehr beschäftigt. Ich werde hier in ein oder zwei Wochen eine Zenerdiode (4,3 V) bestellen, um den Megaohm-Widerstand zu entfernen, damit das Signal nicht verwässert wird, während der Chip geschützt wird. Ich kann hier bei Bedarf einen einfachen Spannungsverstärker (neben dem Zener) bauen, um zu versuchen, den Sensor empfindlicher zu machen.
quelle
- Erfahren Sie, wie Sie Ihre eigenen kostengünstigen Funksensoren erstellen und mit der Welt verbinden.
http://www.mysensors.org
Wir nennen es "Internet Ihrer Dinge"
Beschreibung
Wir haben die Arduino-Plattform mit einem kleinen Funk-Transceiver zu einer unterhaltsamen, flexiblen Welt kostengünstiger Funksensoren kombiniert.
Alle wichtigen Details zur Sensorkommunikation wurden in einer praktischen Softwarebibliothek zusammengefasst, sodass Sie sich nicht um sie kümmern müssen.
Es ist so einfach wie 1, 2, 3.
Lesen Sie mehr darüber, wie das Sensornetzwerk mithilfe unserer Arduino-Bibliothek auf der Website automatisch aufgebaut wird. Es bildet im Grunde ein Sternennetz und kann Hunderte von Metern erreichen.
In der Mitte platzieren Sie ein Arduion- oder Himbeer-Gateway, das die Informationen von Ihren Sensoren sammelt.
Design und Schaltpläne
Hier ist einer der Prototyp-Bewegungssensoren, die ich erstellt habe, um das Gartenlicht außerhalb meines Hauses zu steuern. Der Bewegungsstatus wird an meinen HA-Controller gesendet, der das Licht (über die Z-Welle) einschaltet, wenn eine Bewegung erkannt wurde. Ein Lichtsensor (nicht im Bild) schaltet das Licht nur nachts ein.
Alle Bauanleitungen finden Sie hier: http://www.mysensors.org/build/
Ansonsten gibt es auch leicht zu befolgende Bauanleitungen für eine Reihe anderer drahtloser Sensoren und Aktoren. Hier sind einige Beispiele:
Abstandssensor, Bewegungssensor, Relais-Aktor, Luftfeuchtigkeit, Licht, Druck, Regen, Temperatur, ...
Fazit
Das Projekt befindet sich noch in den Startlöchern und wir hoffen, Plugins für eine wachsende Liste von Home Automation-Controllern anbieten zu können. Das erste, was wir derzeit auf unserer Liste haben, ist die Bereitstellung eines DIY-Controllers, der einen kostenlosen Cloud-Speicher für Ihre Sensordaten bietet.
Wir sehen uns bei mysensors.org
/ Henrik Ekblad (der Schöpfer der Open Source Arduino Library, die für die Kommunikation zwischen den Sensoren verwendet wird)
quelle
Serielle Box
Ein tragbarer serieller Monitor in einer Box
Beschreibung
Manchmal ist es für ein Gerät (Arduino oder anders) nützlich, einige Debug-Informationen über die serielle Schnittstelle auszugeben. Das ist großartig, wenn Sie einen Computer mit einem geeigneten seriellen Eingang zur Hand haben. Dies ist jedoch aus verschiedenen Gründen nicht immer der Fall.
Dieses Projekt ist mein Versuch, dieses Problem zu lösen, indem ich einen tragbaren seriellen Monitor mit Arduino-Stromversorgung erstelle, an den ich andere Geräte im Feld anschließen kann.
Standardmäßig wird nur Text in einem Scrollback-Format angezeigt. Das heißt, in der untersten Zeile wird Text angezeigt und alles rollt nach oben, um Platz zu schaffen, wenn mehr kommt. Dies bedeutet, dass es mit allen Arten von generischen Geräten sehr gut funktionieren sollte. Es ist jedoch auch möglich, die Anzeige mithilfe von Escape-Sequenzen genauer zu steuern, sodass Geräte auch spezifisch programmiert werden können, um ihre Funktionen zu nutzen.
Design
Das Design besteht aus einem Satz von 4 alphanumerischen LCD-Anzeigen (jeweils 16 x 2 Zeichen), die in einem Feld wie folgt angeordnet sind:
Bei den Displays handelt es sich um Epson EAX16027AR, die leider nicht mit dem Standardtreiber Hitachi HD44780 kompatibel sind. Als solches musste ich für sie meine eigene Bibliothek schreiben .
Ich entschied mich für diese Displays (anstatt zB eines großen Displays), weil ich sie nur herumliegen hatte und etwas Interessantes mit ihnen machen wollte. Ich dachte auch, dass es sehr praktisch wäre, jedes Display für einige Anwendungen unabhängig steuern zu können (z. B. unterschiedliche Informationen zu jedem einzelnen).
In Bezug auf das Schaltungsdesign sind die Anzeigen parallel geschaltet, wobei Chipauswahlstifte verwendet werden, um Daten / Befehle nach Bedarf zu jedem zu leiten.
Ein ATMega328 ist das Gehirn der letzten Einheit. Die seriellen Daten stammen von einer TTL-Leitung (für den direkten Anschluss an den TX einer ähnlichen MCU) oder optional von einer 9-poligen RS232-D-Sub-Buchse (für den Anschluss an verschiedene andere Systeme). Das Gerät verfügt außerdem über ein Kontrast-Einstellrad, eine Taste zum Löschen der Anzeige und eine Taste zum Starten eines Selbsttest-Modus. Zukünftig möchte ich Schaltflächen hinzufügen, mit denen sich der Benutzer auch durch einen Scrollback-Verlauf bewegen kann.
Unten ist ein sehr vorläufiger Schaltplan (ich hatte aus irgendeinem Grund große Probleme, Fritzing zum Spielen zu bringen!). Es enthält ein 8-Bit-SIPO-Schieberegister zur Ansteuerung der grün dargestellten Datenleitungen der LCDs. Sie können die Chipauswahllinien auch in Orange sehen.
Derzeit befindet sich das Projekt noch im Prototypenstadium und wird von einem Uno-Board (Klon) gesteuert. Unten sehen Sie ein Foto davon in Aktion, das Text anzeigt, der von meinem Computer per Seriennummer übertragen wurde.
Quellcode
Ich stelle meine LCD-Bibliothek auf GitHub unter dem folgenden Link zur Verfügung. Bitte beachten Sie, dass es sich in einem frühen Stadium der Entwicklung befindet. In naher Zukunft beabsichtige ich, es der LiquidCrystal-Kernbibliothek viel ähnlicher zu machen, damit es einfacher ist, zwischen den beiden zu wechseln.
Sie finden einen Basiscode für meinen Serial Box-Prototyp im Ordner "examples".
Fazit
Ich denke, das Projekt läuft sehr gut und ich war sehr erfreut, dass der Prototyp funktioniert. Meine größte Herausforderung wird es sein, das Ganze in eine Kiste zu packen. Ich habe bereits damit begonnen, geeignete Löcher für die Displays herauszuschneiden, aber ich bin nicht sehr erfahren in solchen Dingen und finde es ziemlich schwierig, alles in einer Reihe aufzustellen.
Ich werde es am Ende aber bekommen. Wenn ich fertig bin, sieht es vielleicht gar nicht mehr so hübsch aus! :)
quelle
Heizungsregler
Sie wissen, wie es ist - Sie stellen die Heizung auf eine bestimmte Zeit ein und wie viele Tage arbeiten Sie zu spät und es ist stundenlang auf Hochtouren, oder Sie gehen für ein paar Tage weg und vergessen, es auszuschalten? Oder die seltene Gelegenheit, dass Sie früh nach Hause kommen und das Haus kalt ist? Ich entschied, dass der einfache Weg, dies zu umgehen, darin bestand, ein Gerät zu bauen, mit dem ich meine Heizung per SMS ein- oder ausschalten konnte. Es würde zusätzlich zu dem bestehenden Kontrollsystem erfolgen, um die Flexibilität, die dies bieten kann, nicht zu verlieren.
Das Projekt besteht aus einigen Hauptteilen: einem Arduino Uno-Klon, einem Seeedstudio-GSM-Shield, einem DHT22-Temperatursensor und einem 25-A-SSR.
Wie es funktioniert:
Die vorhandenen Heizungsregler sind auf "Aus" eingestellt und der neue Regler ist so verdrahtet, dass er sie überschreibt. Das Uno ist so programmiert, dass es auf drei verschiedene Meldungen reagiert - Ein, Aus und Abfrage. In letzterem Fall liest das Gerät den DHT22 und antwortet dem Absender mit der aktuellen Temperatur und dem Status des Geräts (ein oder aus). Wenn der Befehl entweder Ein oder Aus ist, wird er mit einer Bestätigung der ausgeführten Aktion beantwortet. Sobald Nachrichten bearbeitet wurden, werden sie gelöscht. Alle Nachrichten, die nicht der spezifischen Nachrichtenstruktur entsprechen, verbleiben im Speicher der SIM-Karte und können bei Bedarf später überprüft werden.
Die Stromversorgung des Geräts erfolgt über ein Schaltnetzteil mit fünf Volt und drei Ampere. Da die Stromanschlüsse am Arduino lediglich den internen 5-V-Bus des Boards freigeben, habe ich mich entschieden, das Ensemble über diese Anschlüsse mit Strom zu versorgen und die Abschirmung so zu konfigurieren, dass sie Strom vom Arduino bezieht.
Das Gerät verfügt über drei Status-LEDs. Eine grüne zeigt an, dass Strom vorhanden ist, eine blaue zeigt an, dass die GSM-Karte in Betrieb ist, und eine rote zeigt den Status der Heizung an. Dies sind zusätzlich zu den Status-LEDs auf dem Arduino und dem Schild. Es gibt auch einen Druckknopfschalter, der die manuelle Steuerung der Heizung ermöglicht, und einen 100-nF-Kondensator, der die Entprellung handhabt.
Nächster:
Ein Großteil des Codes stützt sich auf gute alte delay (), um dem Schild genügend Zeit zu geben, um seine Aktionen auszuführen. Ich plane, den Code so zu verbessern, dass er auf die Bestätigung durch den Schild wartet, anstatt davon auszugehen, dass er innerhalb der vorgegebenen Zeit das getan hat, was ihm gesagt wurde! Ich werde auch ein "noch am Leben" -Feature hinzufügen - in festgelegten Intervallen die blaue LED ausschalten, den AT-Befehl an den Schild senden und bei Bestätigung die LED wieder einschalten. Der Schild wird von der Software gesteuert. Wenn er nicht reagiert, schalten Sie ihn aus und wieder ein.
Das gesamte Ensemble ist in ein geeignetes Gehäuse einzubauen und neben der vorhandenen Steuerung zu montieren. Ich habe einen intern beleuchteten Druckschalter, den ich anstelle eines separaten Schalters und einer roten LED für die Übersteuerung verwende.
Längerfristig plane ich, eine Echtzeituhr, ein 20 x 4-LCD und zusätzliche Drucktasten hinzuzufügen, damit das Gerät programmiert werden kann und auch als Zeitschaltuhr fungiert.
Das Prototyping hat bereits begonnen!
Fazit.
Es ist etwas Dekadentes, an einem kalten Wintertag aufzuwachen, eine SMS / SMS zu senden, um die Heizung einzuschalten, sich umzudrehen und für eine Stunde wieder einzuschlafen! Und wenn Sie feststellen, dass Sie es an einem Abend nicht ausgeschaltet haben, können Sie dies bequem von Ihrem Bett aus tun!
quelle