In diesem Artikel stelle ich die ArduBox vor.
Oft wird eine Hardware benötigt, welche im wesentlichen aus einem Mikrokontroller, Eingabetasten, und einem Display besteht, sowie verschiedene Eingabe/Ausgabe-Ports zur Verfügung stellt. Die Verwendungsmöglichkeiten eines solchen Geräts sind offensichtlich endlos.
Eine Lösung wäre natürlich: DIY. Ein anderer Ansatz ist es, sich nach geeigneter, im Handel erhältlicher Hardware umzusehen und diese zu „missbrauchen“. In der Vergangenheit bin ich diesen Weg gerne gegangen, und z.B. auf die Robbe Programming Box oder Turnigy Boxen gestossen. Der Vorteil ist offensichtlich ein geringer Bastelaufwand, und darüber hinaus ein handliches, schniekes Resultat. Der Nachteil ist aber auch offensichtlich, nämlich die Begrenzungen durch die gegebene Hardware. Man kann auch auf flexible „Baukästen“ zugreifen, und hier ist an erster Stelle der Arduino Uno mit LCD Shield zu nennen. Man ist auch nicht auf die altmodischen 2-zeiligen LCD Displays und Tastenanordnungen beschränkt, sondern mit dem lcd4884 Shield bekommt man sogar ein cooles graphisches Display und coolen Joystick (dann wird es allerdings doch teuer). Dies ist also eine sehr gute, flexible Lösung. Allerdings ist sie nicht gerade sehr handlich und – wie soll man sagen – etwas „bastlerisch“ (es wundert mich das es keine passenden Gehäuse im Handel zu geben scheint!).
Konzeption der ArduBox
Damit ist eigentlich das Konzept der ArduBox schon umrissen. Die ArduBox baut auf einem Arduino auf, vorallem wegen der sehr einfachen Programmierbarkeit über die USB Schnittstelle, ohne das irgendeine Zusatzhardware (Programmer) benötigt wird. Im Unterschied zu den üblichen Arduino Lösungen sollen Display und Tasten jedoch nicht als Shield zum Aufstecken realisert werden, sondern alle nötigen Grundkomponenten, also USB, Mikrokontroller, Spannungsversorgung, Display, und Tasten möglichst kompakt zu einer „Box“ vereint werden. Natürlich soll diese Box, ganz ähnlich wie beim Arduino, erweiterbar sein, und Anschlüsse für „Shields“ bieten, um z.B. eine Bluetooth-Verbindung zu realisieren, oder eine Funkstrecke (Telemetrie!) oder eine externe Speicher/SD-Karte. Das Konzept ist also eine Synthese eines Arduino mit einer schnieken Box, die ArduBox.
Leider gibt es ja noch keine ArduBoxen. Daher ist doch noch DIY angesagt, und eine erste Variante präsentiere ich unten. Ich werde das Konzept aber weiterentwickeln. Ziel ist es alle genannten Grundkomponenten auf eine Platine zu bekommen (was platzmässig gut gehen sollte).
Realisierte Projekte
Nutzungsbedingungen/Terms of Usage: The ArduBox and its variants described below is open source hardware, under the terms of the TAPR Open Hardware License as published by the Free Hardware Foundation, see http://www.tapr.org/ohl.html.
Die ArduBox v0.10
Hier also die, meiner Meinung nach, erste taugliche Version einer ArduBox. Sie ist vom Design her nahe an die Erfordernisse für die BLHeliBox angelehnt, aber auch so ausgelegt das alle in meinen vorhergehenden Projekten (Programmierbox für z.B. den GA250, Telemetrieempfänger) auftrettenden Anforderungen beachtet wurden. Ich glaube daher, dass das Design tatsächlich sehr flexibel ist. So schaut sie aus:
Dimensionen
BxHxT: 63 mm x 45 mm x 17 mm
Komponenten
uC: Atmega328p
Oszillator: 16 MHz Keramik
Display: Nokia 5110 48×84 graphisches Display mit PCD8544 Kontroller
Tasten: 5-fach Joystick-Taster
Kosten
ca. 20 – 30 Eur, je nachdem wie und wo eingekauft wird und wie man zu den Platinen kommt
Aufbau
Um die Herstellung möglichst einfach zu halten, wurden möglichst fertige Komponenten benutzt, konkret ein Arduino Nano und ein Nokia5110 LCD Modul. Zusammengefügt wird alles durch eine Hauptplatine. Für die Tasten wird dann eine extra Tastenplatine benötigt. Die Box besteht also aus drei Einheiten zum zusammenstecken:
Anschlussports
Im Bild unten sind die Anschlüsse der ArduBox v0.10 gezeigt. Auf die mit lcd module und key module bezeichneten Pinreihen werden das LCD Modul und die Tastenplatine aufgesteckt.
Am Main Port stehen neben GND und Vcc auch die drei I/O Pins PB2 (D10), PB3 (D11), PB4 (D12) des Atmega328p Mikrokontrollers zur Verfügung. Vcc bezeichnet hierbei den Spannungsversorgungs-Eingang für die ArduBox. GND und Vcc sind auch am External Power Supply Port verfügbar; dies dient z.B. der Versorgung der ArduBox mit einer separaten Batterie. Augenmerk ist unbedingt auf die Höhe der Versorgungsspannung an Vcc zu legen; ist diese größer als 5 V dann MUSS der Power-Supply Jumper auf 2S/3S gestellt sein, ist sie kleiner als 4.5 V dann kann er auf 1S gestellt werden (was sinnvoll ist, da ansonsten die Box wegen Unterspannung evtl. nicht funktioniert). In der 1S-Stellung arbeitet die ArduBox ab Versorgungsspannungen von ca. 3 V.
An den (vier) Shield Ports stehen neben GND und Vbox neun weitere I/O Ports des Mikrokontrollers zur freien Verfügung. Vbox bezeichnet hierbei die interne Versorgungsspannung der ArduBox (welche aus Vcc abgeleitet wird); Vbox ist also ein Versorgungs-Ausgang um externe Hardware zu versorgen. Der Shield Port B ist optional, also nur verfügbar wenn noch zusätzlich vier Kabel eingelötet werden. Die Shield Ports sind im 2.54 mm Raster angeordnet; die ArduBox kann so auf zusätzliche DIY-Shields leicht aufgesteckt werden.
Darüber hinaus ist ein Spannungsteiler vorgesehen (im Bild nicht bestückt), mit dem über den ADC1 (A1) des Mikrokontrollers die Versorgungsspannung Vcc gemessen werden kann. Dies erlaubt z.B. eine Anpassung der Displayhelligkeit oder eine Unterspannungswarnung bei Versorgung über eine Batterie.
Schaltplan und Platinenlayout
Der Schaltplan und die Platinenlayouts sind in den folgenden Bildern gezeigt. Es wurde Eagle Light benutzt. Die Platine konnte einseitig gehalten werden (bei einer Drahtbrücke), und weist keinerlei kritische Maße auf. Sie sollte für Selbstätzer daher leicht herzustellen sein. Ich persönlich ätze nicht mehr selber; die Platinen unten habe ich beim Platinenshop machen lassen.
Stückliste
1 x Arduino Nano (idealerweise sind die Pinheader dabei, aber noch nicht eingelötet)
1 x Nokia 5110 LCD Modul (Achtung, es gibt verschiedene Varianten, lest unten!)
1 x Platinenset (Hauptplatine + Tastenplatine)
1 x 5-fach Joystick Taster (navigation tact switch LY-A07-02)
1 x Printtaster 6×6 mm
1 x Schottky-Diode (z.B. SB130)
1 x 100 Ohm
1 x 330 Ohm
1 x 620 Ohm
1 x 1k Ohm
1 x 2k Ohm
1 x 3.3k Ohm
1 x mehrere Buchsen- und Stiftleisten, wie dem Bild zu entnehmen
Bei dem Nokia 5110 Modul muss man gut auf die richtige Variante achten (ich habe im Netz vier verschiedene Varianten gesehen, nur eine passt). Die Reihenfolge der Anschlusspins muss 1-VCC, 2-GND, 3-SCE, 4-RST, 5-D\C, 6-DN, 7-CLK, 8-LED sein, und symmetrisch oberhalb und unterhalb des Displays vorhanden sein, wie auf z.B. auf dieser Seite hier.
Zusammenbau
Zum Zusammenbau gibt es eigentlich nicht viel zu sagen. Beim Ardunio Nano ist es wichtig, dass auch zwischen dem ISP-Anschluss und der Platine eine Verbindung hergestellt wird. Falls beim Nano bereits ein ISP-Stecker eingelötet ist, muss dieser aus und rückseitig wieder eingelötet werden. Bei der Tastenplatine muss man etwas darauf aufpassen, dass keine Brücken zur Massefläche entstehen. Zudem ist beim Joystick Sorgfalt geboten (als erstes Bauteil auf die Tastenplatine löten), und auf dessen richtige Einbaulage zu achten (siehe Bild). Die Bestückung der Hauptplatine sollte aus den obigen Bildern erkennbar sein, für die Tastenplatine sieht es so aus:
Beim LCD-Modul ist das Display nur aufgesteckt und daher etwas beweglich, was zu Kontaktschwierigkeiten führen kann. Display hin-und-her bewegen so das sich ein guter Kontakt ergibt (keine Bildfehler), und dann mit leichtem Druck Display und Board zusammenpressen und auf der Rückseite an den Laschen festlöten. Das hält bombig.
Tip: Vorm Einlöten des Nano diesen erst mit der Firmware bespielen oder andersweitig testen, den der nachträgliche Ausbau des Nanos gestaltet sich meist schwierig.
Hinweis: Ich habe gerade gelernt, dass wohl immer noch Nanos vertrieben werden, die den prähistorischen Pin26-Fehler haben (hier, hier). Also, am FTDI die Verbindung von Pin 26 mit Masse checken, und falls nicht vorhanden Pin 26 mit 25 durch eine Lötbrücke verbinden!
Bezugsquellen
Arduino Nano
Deutschland:
- 14.90Eur (+ 3,50Eur Versand) bei lipoly.de
Ausland:
- $10.38 (inkl. Versand) bei r_cube_station (ebay)
- $10.99 (inkl. Versand + USB Kabel) bei Dealextreme
- $11.50 (inkl. Versand) bei haoyu_electronics (ebay)
- $9.29 (+ $2.99 Versand) bei Hobbyking
- verschiedene asiatische ebay-Händler
Nokia 5110 LCD Modul
Deutschland:
- 4.90Eur (+ 3,50Eur Versand) bei lipoly.de
- 4.90Eur (+ 3,50Eur Versand) bei komputer.de
- 4.80Eur (+ 3,50Eur Versand) bei exp-tech.de
Ausland:
- $3.99 inkl. Versand bei tenovo2010 (ebay)
- $3.88 + $0.99 Versand bei 1984yht888 (ebay)
- $5.40 inkl. Versand bei Dealextreme
- $5.80 inkl. Versand mit blauem Hintergrund bei Dealextreme
- $9.95 exkl. Versand bei Sparkfun (No. LCD-10168)
5-fach Joystick Taster (navigation tact switch LY-A07-02)
Deutschland:
- 1.28Eur (+ 3,50Eur Versand) bei lipoly.de
Ausland:
- $1.95 exkl. Versand bei Sparkfun (No. COM-10063)
15 Kommentare