Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:shackuino

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, C4Keramikkondensator fuer IC1/IC2 100 nF 2.5mm Raster ungepolter Kondensator
C2, C3Keramikkondensator 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 StandardTO-220 Kennzeichnung fehlt: Metall-/Montageflaeche am Platinenrand
S0Reset Taster 6x6mm Name fehlt im Aufdruck
S1,S2 optionale Taster 6x6mm active-low an D2 / D3
LED1Power LED gruen 3mm Minuspol am Platinenrand / kurzes Beinchen an LED
LED2/3optionale LEDs rot/gelb 3mm an den Ausgaengen D4 / D5
ISP2×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

MGmNWVZyTZVcIM

C2, C3Keramikkondensator 22pfPolung egal
X1Quarz 16 MHzPolung egal
R2, R6, R7 Widerstand 470 Ohm
R5Widerstand 10k
D1Diodeauf den Strich achten
C1, C4, C5Keramikkondensator Polung egal
-DrahtbrueckeBrueckt I und O von IC3

Schritt 2

t_step2.jpg

IC128 pin Sockelauf Markierung (Nase) achten
IC216 pin Sockelauf Markierung achten

Schritt 3

t_step3.jpg

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

t_step4.jpg

ISP 2×5 pol WannensteckerNase zeig zur Platinenmitte, Pin 1 ist links unter 'ISP'
RS232D-Sub 9Pol Buchse-
-DC Hohlbuchseleicht schraeg anloeten da wenig Platz fuer Stecker)
C8/9/10/12Elektrolytkondensator 1uFC11 nicht bestuecken
C7Elektrolytkondensator 100uF auf Polung achten! Minus bzw Plus ist markiert
-8pin Buchsenleistenz.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

Kupfer oben Kupfer unten (from top)
Silkscreen & Pads alles zusammen

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.
t_cimg3880.jpg t_cimg3879.jpg

Eagle Layout

Schaltplan

zum Vergroessern klicken

Download Schematic (PDF)

Bestueckungsbeispiele

t_cimg3671.jpg t_cimg3688.jpg
Bestueckungsbeispiel D-SUB Buchse und Platinenklemmen Bestueckungsbeispiel D-SUB Stecker und DC-Hohlbuchse

t_cimg3895.jpg t_cimg3887.jpg
Breadboard-Bestueckung

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

project/shackuino.txt · Zuletzt geändert: 2014-03-03 07:42 von 80.187.108.63