Inhaltsverzeichnis
shackuino
Projektverantwortlicher: Manuel Jerger
Shackuino ist ein auf guenstig und flexibel getrimmtes Mikrocontroller-Board auf Basis des ATMega168. Es ist kombatibel zum Arduino Diecimila und kann ganz einfach seriell per Bootloader programmiert werden. USB kann mit einem guenstigen Adapterkabel nachgeruestet werden.
Was ist Arduino?
Die Arduino-Plattform ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Beide Komponenten sind im Sinne von Open Source quelloffen. Die Hardware besteht aus einem einfachen I/O-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen.
Hardware
Das Microcontroller-Board basiert auf einem 8-Bit megaAVR RISC Prozessor von Atmel, genauer gesagt ein ATmega168. Es ist kompatibel zu einem Arduino Diecimila und kann auch mit dessen Bootloader betrieben werden. Es handelt sich dabei um einen seriellen STK500 Bootloader, welcher das Programmieren per serieller Schnittstelle ermoeglicht. Man benoetigt somit kein weiteres Geraet, der Prozessor programmiert sich praktisch selbst.
Arduino IDE
Zur Arduino-Plattform gehoert auch eine Entwicklungsumgebung. Sie beruht auf Processing (einem Java-Dialekt) und Wiring (einem C-Dialekt) und stellt mit Bibliotheken einfach aufzurufende Funktionen fuer fast jede Aufgabe zur Verfuegung.
Die IDE gibt es auf Arduino.cc
Beispiel: Analogeingang 0 auslesen (0-5V, 10bit), an den Seriellport schicken und mit Screen oder dem Serial Monitor der IDE anzeigen lassen.
void setup() { Serial.begin(9600); } void loop() { int analogValue = analogRead(0); Serial.println(analogValue); delay(10); }
Teileliste
Name | Teil | Wert | Bauform | Weiteres |
---|---|---|---|---|
C1, C4 | Keramikkondensator fuer IC1/IC2 | 100 nF | 2.5mm Raster | ungepolter Kondensator |
C2, C3 | Keramikkondensator fuer Quarz | 22 nF | 2.5mm Raster | ungepolter Kondensator |
(C5)¹ | Keramikkondensator fuer IC3 | 100nF | 2.5mm Raster | ungepolter Kondensator |
C8/9/10/12 | Elektrolytkondensator fuer IC2 | 1uF | 2.5mm Raster | Polung +/- ist gekennzeichnet |
(C6)¹ | Elektrolytkondensator fuer IC3 | 1uF | 2.5mm Raster | Polung +/- ist gekennzeichnet |
C7 | Elektrolytkondensator VCC | 100uF | 2.5mm Raster | Polung +/- ist gekennzeichnet |
R2, R6, R7 | Vorwiderstand fuer LED1-3 | ~ 300-1000 Ohm | 1/4W | - |
R5 | Reset Pullup-Widerstand | > 10k | 1/4W | - |
- | Quarz | 16 MHz | flache Bauform | Polung ist egal |
D1 | Schutzdiode als Verpolungsschutz | 1N4001/1N4004/… | Ring auf Teil und Platine gekennzeichnet | |
IC1 | Microcontroller | Atmega168-20PU | 28 pin DIP | Sockel ist mit dabei |
IC2 | Pegelwandler fuer RS232 Schnittstelle | MAX232N | 16 pin DIP | Sockel ist dabei |
(IC3)¹ | 5V Festspannungsregler | 7805 Standard | TO-220 | Kennzeichnung fehlt: Metall-/Montageflaeche am Platinenrand |
S0 | Reset Taster | 6x6mm | Name fehlt im Aufdruck | |
S1,S2 | optionale Taster | 6x6mm | active-low an D2 / D3 | |
LED1 | Power LED | gruen | 3mm | Minuspol am Platinenrand / kurzes Beinchen an LED |
LED2/3 | optionale LEDs | rot/gelb | 3mm | an den Ausgaengen D4 / D5 |
ISP | 2×5 Pol Wannenstecker | 2.54mm Raster | Auskerbung zeigt zur Platinenmitte | |
RS232 | Steckverbinder fuer Serielle Schnittstelle | 9pol D-SUB EU Version | Typ male/female nach Bedarf und Kabelangebot | |
- | DC Hohlbuchse | Ãi= 2.5mm Ãa=5.5mm, Loetfahnen | Stecker und halbes USB Kabel ist dabei |
¹ : Benoetigt wenn ein Spannungsregler verwendet wird
Aufbauanleitung
Werkzeug & Material
- Loetkolben mit Ablage und feuchtem Schwaemmchen
- Loetzinn
- Präzisions-Seitenschneider
- Spitzzange
- Entloetpumpe oder Entloetlitze
- Geduld
Vorbereitung
- Loetkolben auf 350 °C einstellen
- Bausatz auf Vollstaendigkeit ueberpruefen
Schritt 1
C2, C3 | Keramikkondensator 22pf | Polung egal |
X1 | Quarz 16 MHz | Polung egal |
R2, R6, R7 | Widerstand 470 Ohm | |
R5 | Widerstand 10k | |
D1 | Diode | auf den Strich achten |
C1, C4, C5 | Keramikkondensator | Polung egal |
- | Drahtbruecke | Brueckt I und O von IC3 |
Schritt 2
Schritt 3
LED | 3mm LED gruen | plus = langes beinchen |
LED2/3 | 3mm LED rot / gelb | kann durch dual-led Ersetzt werden |
S1/S2/S3 | Taster 6x6mm |
Schritt 4
ISP | 2×5 pol Wannenstecker | Nase zeig zur Platinenmitte, Pin 1 ist links unter 'ISP' |
RS232 | D-Sub 9Pol Buchse | - |
- | DC Hohlbuchse | leicht schraeg anloeten da wenig Platz fuer Stecker) |
C8/9/10/12 | Elektrolytkondensator 1uF | C11 nicht bestuecken |
C7 | Elektrolytkondensator 100uF | auf Polung achten! Minus bzw Plus ist markiert |
- | 8pin Buchsenleisten | z.B. wie dargestellt verteilen |
Schritt 5
Die Anschlussdraehte beider ICs auf der Tischplatte oder mit einer IC Quetsche geradebiegen, sodass sie in die Fassung passen.
Beim Einsetzen auf die Markierung sowie das unbeabsichtigte Verbiegen von Beinchen achten.
Layout
Features im Ueberblick
Allgemeines zur Platine
- nur Through-Hole Bauteile!
- 76x43mm
- alles wichtige im 2.54 mm Raster
- zweiseitig Kupfer, zweiseitig Loetstopp, einseitig Bestueckungsaufdruck
Prozessor
- 16 MHz Quarz
- ATmega168 (16 KB Flash, 128B RAM)
- mit Reset-Taste
- Autoreset per RS232 zum bequemen Programmieren
- programmierbar wie jeder Arduino per IDE oder Makefile
Programmierschnittstelle
- Board wird einmal per ISP Programmiert (Bootloader), dann per Serieller Schnittstelle und z.B. Arduino IDE.
- 10pol. ISP Stecker (gewinkelt oder senkrecht)
- RS232 (Seriell):
- ein Max232 (Serielle Schnittstelle) statt einem FTDI
- Ein USB→Seriell Kabel gibts schon ab 2 EUR
Stromversorgung
- fuer Eingangspannung > 5V (z.B. Netzteil, 9V Block)
- Linearregler 7805, 5V im TO-220 Gehaeuse (1-1.5A)
- 2.5mm DC Buchse
- fuer Spannung 3V-5V
- Spannungsreglerteil kann weggelassen werden
- Kabel koennen direkt angeloetet werden
- z.B. 2x oder 3x 1.5V Batterien)
Input/Output Ports
- 14 Digitale Ein/Ausgaenge
- 6 Analogeingaenge : 10 Bit ADC
- Aref verwendbar
- auch als digitale IOs nutzbar
Ueber die 'anschlussfreudigen' Pinreihen
Ueber und unter den zweireihigen Ein/Ausgaengen befindet sich jeweils eine Reihe Masse (GND), und eine Reihe Versorgungsspannung (meist 5V).
Dies hat zahlreiche Vorteile und man ist mit der Bestueckung sehr flexibel:
- bei den doppelreihe IO-Pins:
- Stiftleiste von UNTEN und Buchsenleiste von OBEN ⇒ Sandwich mit Lochraster in beide Richtungen moeglich (beliebig stapelbar)
- Stiftleiste von unten + Steckbrett
- bei den GND / VCC Pins:
- doppelreihiger Wannenstecker auf GND/IO, dazu ein Flachbandkabel ⇒ jeder zweiter Pin Masse (EMV FTW!)
- alles mit Buchsenleisten ausfuellen = kleines Steckbrett
- Servo einfach anschliessbar
- 5V LEDs direkt dran
- Potis mit VCC + Analog + GND = Drehregler mit Arduino in 5 Sekunden realisiert (ein einziger Befehl zum auslesen)
zwei Eingabetaster onboard
- optional da keine spezielle Funktion
- einfaches Pulldown an Interrupt-Eingaengen → Interne pullups aktivieren, delay counten wegen:
- keine Hardwareentprellung. This is just a switch!
- an D2 / D3
zwei LEDs onboard
- optional da keiner speziellen Funktion zugeordnet
- auch 3-pin Dual-LED moeglich
- angeschlossen an D4 und D5
Shield - nom nom sandwich!
- Da die IO-Pins sowie ISP Schnittstelle im 2.54mm Raster (0.1 inch) angeordnet sind, kann man beliebig Loch/Streifenrasterplatinen drauf und drunterstapeln.
- Durch zwei Reihen IO-Pins ist dies auch ohne spezielle Stapelheader (Buchsenleisten mit extralangen Beinen) moeglich.
Eagle Layout
Schematic: shackuino serial.sch
Board: shackuino serial.brd
Schaltplan
zum Vergroessern klicken
Download Schematic (PDF)
Bestueckungsbeispiele
Bestueckungsbeispiel D-SUB Buchse und Platinenklemmen | Bestueckungsbeispiel D-SUB Stecker und DC-Hohlbuchse |
Errata
Problem | Loesung |
---|---|
Stromversorgung und Seriellbuchse sind fuer manche Kabel zu eng beieinander | DC Buchse leicht verdreht einloeten |
im Eagle Design befinden sich ein paar Kennzeichnungen auf der falschen Ebene und sind daher nicht gedruckt worden | zu spaet fuer die ersten Platinen |
C11 ist ueberfluessig | egal, die Pins sind VCC + GND und somit praktisch |
Proportionalschriftart ist erwartungsgemaess bei der Vektorisierung verrutscht | |
zu breite Stege bei den Waermefallen und eine zu sauber verarbeitete Platine ergibt eine gigantischen Waermeleitfaehigkeit | Dicke Loetspitze verwenden und Temperatur erhoehen |
C6¹ ist mit 100uF viel zu gross gewaehlt worden | 1uF Kondensator verwenden oder ganz weglassen |
¹ : Nur wenn ein Spannungsregler verwendet wird