Geocaching Spiel DrMaFu's Senso
DrMaFu's Senso


Geocaching Spiel DrMaFu's Senso:

Direktsprung zu Kapiteln Motivation und Zielsetzung
Funktionsbeschreibung
Umsetzung und Realisierung
Stücklisten
Schaltpläne
Bestückpläne
PCB's
Software
Dokumentation und Daten
Mitgeltende Unterlagen und Sonstiges
Direktsprung zu Kapiteln
Direktsprung zu Kapiteln


Link an das Ende


Motivation und Zielsetzung

Geocaching
Geocaching

Neben der Astronomie und der AVR-Elektronik-Bastelei gehe ich auch gerne zum Geocachen. Zum Geocache suchen gehört es auch, für andere Geocacher Caches zu legen.

Neben lieblos in die Landschaft geworfenen Caches sind vor allem technische Caches beliebt, die mit etwas Witz, Spiel, Spaß und Spannung für den Cacher bieten.

Nahe Dornstadt bei Ulm gibt es schon lange einen Geocache mit dem Namen Senso der einst durch einen Augsburger Cacher gebaut und gelegt wurde.
Nachdem das Spiel vor einiger Zeit Probleme machte, sprang ich sofort ein und brachte das Spiel wieder zum Laufen. So konnte der Senso erhalten werden.
Leider trug es sich aber zu, dass andere Cacher sehr sorglos mit der Elektronik umgegangen sind. Dabei wurde die Dose in der der Senso versteckt lag beschädigt. Ungehindert konnte nun Wasser eindringend und die Elektronik fluten. Wasser und Strom verträgt sich bekanntlich nich so sehr und so macht das Originalspiel nun mehr und mehr Probleme.

Zeit also ein neues Spiel zu planen, zu designen, zu bauen und zu verstecken.

Und so entstand das Geocaching Spiel "DrMaFu's Senso". Zugegeben, das neue Spiel hat nun ein Display was das Alte nicht hatte und auch die Tasten sind etwas anders angeordnet. Man muss ja auch merken das hier etwas neues zu finden ist.

Opencaching
Opencaching
Allgemeines und Ideen zu Realisierung:

Die Wikipedia schreibt zum Senso folgendes:

Senso (im englischen Sprachraum Simon) ist ein von Ralph Baer – dem Entwickler der 1972 erschienenen ersten TV-Spielekonsole Magnavox Odyssey – und Howard J. Morrison entwickeltes und in mehreren Ländern patentiertes elektronisches Spiel, welches 1978 bei Milton Bradley veröffentlicht wurde und sich besonders in den 1980er Jahren großer Beliebtheit erfreute. 1979 befand es sich auf der Auswahlliste zum Spiel des Jahres. Neuerdings wird das Spiel auch in Deutschland als Simon verkauft.

Idee:
Senso kann allein oder mit mehreren Personen gespielt werden. Das Spiel besteht aus vier großen Feldern in den Farben Rot, Blau, Gelb und Grün. Diese leuchten abwechselnd auf und geben dabei für jede Farbe einen kurzen, individuellen Signalton von sich. Der Spieler muss sich diese Reihenfolge merken und nach Abschluss der Vorgabe durch das Spiel wiederholen. Mit jeder Runde kommt eine weitere Farb-Ton-Kombination hinzu.

Information:
In diesem Geocaching-Projekt Senso wird das Spielkonzept dazu benutzt, eine kleine Elektronik zu entwickeln welche im Gelände versteckt wird, die nach jedem erfolgreichem Spiel die finalen Geokoordinaten der finalen Dose anzeigt. Es muss eine Reihenfolge von insgesamt 10 Vorgaben richtig absolviert werden, damit das Spiel sein Geheimnis und damit die finalen Koordinaten Preis gibt.



Senso Originalspiel
Kennt Ihr es noch .... das Senso Originalspiel


Das System soll folgende Teilfunktionalitäten besitzen:

  • Hauptschalter
  • LCD-Display (Bedienung des Spiels, Statusmeldungen)
  • 4 Tasten zur Bedienung in den Farben Blau, Rot, Grün und Gelb
  • 4 5mm LED's in den Farben Blau, Rot, Grün und Gelb
  • RS232 Schnittstelle zum Tracing und zur Datenübertragung der Logging-Daten an PC
  • ISP Schnittstelle zur direkten Programmierung des Target
  • Akustische Signalisierungen mittels Lautsprecher und Transistorendstufe

Das Projekt "DrMaFu's Senso - GC2ACC4" war geboren.

In der Zwischenzeit ist das Spiel auch auf GEOCACHING.COM unter der GC-Nummer GC2ACC4 gelistet.


Link an den Anfang


Funktionsbeschreibung

Das Projekt Senso
Das Projekt Senso
Das Projekt Senso bietet grundsätzlich betrachtet die folgenden Teilfunktionen:
  • Hauptschalter
  • LCD-Display 1-zeilig mit 8 Zeichen
    • Bedienung des Spiels
    • Statusmeldungen
  • 4 Tasten in den Farben Blau, Rot, Grün und Gelb
    • Starten des Spiels
    • Steuerung des Spiels
  • 4 5mm LEDs in den Farben Blau, Rot, Grün und Gelb
    • Optische Ausgabe der Spielfolge, abhängig vom erreichten Level
  • Schnittstellen
    • RS232 Schnittstelle zum Tracing und zur Datenübertragung der Logging-Daten an PC
    • ISP Schnittstelle zur direkten Programmierung des Target
  • Akustische Signalisierungen über Lautsprecher


Detailliert betrachtet verfügt das Projekt aber über wesentliche mehr einzelnen Komponenten bzw. Funktionsteile. Im Einzelnen wären dies:

  • Spannungsversorgung via 9V Batterie und Erzeugung von 5V über Festspannungsregler - SUP
  • Hauptschalter für Spannungsversorgung - Switch
  • Mikrocontroller ATmega8L (inkl. ISP, RS232 und Reset) - ATMEGA
  • RS232 Trace-Schnittstelle - TRACE
  • LCD-Display 1x8 EA DOG-M 081 von Electronic Assembly - LCD
  • 4 Eingabetasten in den Farben Blau, Rot, Grün und Gelb - KEY
  • LED-Anzeigen für Spielverlauf und Betriebsanzeige - LED
  • Akustisches Feedback über Lautsprecher - Sound
  • Gehäuse mit Batteriefach und Displayfenster - Box



Link an den Anfang


Umsetzung und Realisierung

Spannungsversorgung via 9V Batterie und Erzeugung von 5V über Festspannungsregler

Die Spannungsversorgung des Spiels erfolgt mittels 9V Blockbatterie. Für die Aufnahme der Batterie im Gehäuse ist ein Batteriefach vorhanden.

Die Elektronik des Spiels arbeitet mit +5V. Diese Spannung wird mittels Festspannungsregler erzeugt.

+5V Festspannungsnetzteil
+5V Festspannungsnetzteil



Hauptschalter für Spannungsversorgung

Hauptschalter
Hauptschalter
Das Spiel kann durch einen kleinen Hauptschalter ein- und ausgeschaltet werden. Folgender Hauptschalter wurde ausgewählt:

Einpoliger Subminiatur-Wippenschalter 250 V/AC 3 A
Conrad: Bestell-Nr.: 700039 - 62 , EAN: 2050000213762


Hauptschalter
Hauptschalter

Mikrocontroller ATmega8L (inkl. ISP, RS232 und Reset)

Pinout des ATmega8
Pinout des ATmega8


Im Projekt wird der Mikrokontroller ATmega8L von ATMEL mit externem Takt von 8MHz eingesetzt. Aus Platz- und Kostengründen wir auf einen externer Quarz verzichtet. Der ATmega8 wird mit einem internen Takt von 8 MHz betrieben.
Erste Inbetriebnahmen und Versuche bzgl. Projektumsetzung werden mit dem ATmega8L auf dem STK500 von ATMEL realisiert.
Im Folgenden wird die Ressourcenzuordnung der Einzelfunktionen auf die PIN's des ATmega8 dargestellt:

Ressourcenzuordnung ATmega8
Ressourcenzuordnung ATmega8


Zur In-System-Programmierung wird die ATMEL ISP-Schnittstelle in der 6 PIN-Variante umgesetzt.
Die Programmierung im Projekt erfolgt direkt über BASCOM mit Hilfe des AVRISP mkII von ATMEL welcher über USB mit dem Entwicklungsrechner verbunden ist.

ISP connection Pinout
ISP connection Pinout

ISP Programmierer AVRISPmkII
ISP Programmierer AVRISP mkII


Die im Folgenden dargestellte Schaltung bildet die Basisbeschaltung eines AVR ATmega. Bei der hier abgebildeten Basisbeschaltung wird ein externer Quarz mit 8.000.000 Hz (8 MHz) verwendet. Damit weicht diese Basisbeschaltung von der tatsächlichen Umsetzung ab. Weiter ist im Schaltplan der Anschluss eines externen RESET-Tasters vorgesehen.
Dennoch dient mir diese Basisbeschaltung für alle meine ATmega8-Projekte als Referenz welche ich dann entsprechend abwandeln kann.
Die wesentlichen Bestandteile sind vorhanden, welche wären:

  • Reset-Logik
  • ISP-Interface
  • Spannungsversorgung
  • Geräuschreduktion für ADC
  • Externer Quarz
  • Display (hier EA DOGM)


Basisbeschaltung des ATmega8
Basisbeschaltung des ATmega8


Um das Kapitel zum Mikrocontroller abzuschließen fehlt zum Schluss noch die Konfiguration für die Fuses. Einige Fuses weichen von den Standardeinstellungen ab. Die folgende Tabelle zeigt die Fuses und die notwendigen Settings im Detail.

AVR Fuse Konfiguration ATmega8
AVR Fuse Konfiguration ATmega8

Timersteuerung:

Die Timer im Gesamtsystem haben der Priorität nach der Reihenfolge 1. Timer0 (8-Bit-Timer), 2. Timer1 (16-Bit-Timer), 3. Timer2 (8-Bit-Timer)

Timer0:
Nicht verwendet!

Timer1:
Der Timer1 ist im ATmega8L der Timer mit der mittleren Priorität. Mit seiner Hilfe wird ein SW-Timer aufgebaut. Der Timer1 versorgt das Gesamtsystem mit einem 1-Sekunden-Timertick und sorgt für das Toggeln der Betriebs-LED.

Timer2:
Mit dem Timer 2 wird die PWM für die Hintergrundbeleuchtung realisiert. Dieser Timer ist ein 8 Bit Timer.



RS232 für Tracing und Debugging

RS232-Traceadapter
RS232-Traceadapter
Zum Tracen währende der Entwicklungsphase wurde ein USART-Interface vorgesehen. Zum Sparen von Platz und Budget wurde aber kein eigener MAX232 zur Pegelanpassung und Kommunikation mit dem PC verwendet.

Es wird das 5V basierte USART Signal über einen Pfostenstecker nach außen geführt. Zur Verbindung mit dem PC wurde ein RS232-Traceadapter entwickelt dessen Schaltbild im Folgenden zu sehen ist:

RS232-Traceadapter
RS232-Traceadapter

Der Aufbau des RS232-Traceadapter erfolgte auf einer Lochraster-PCB.


Das folgende Bild zeigt die Position der ISP- und USART-Interfaces auf dem Board der Zentralsteuerung.

ISP- und USART-Interface
ISP- und USART-Interface


ISP Programmierinterface

ISP Programmierer AVRISPmkII geöffnet
ISP Programmierer AVRISP mkII
Für die Programmierung des Master- und Slave-Boards wird wie oben schon beschrieben die 6-Pin-ISP-Schnittstelle von ATMEL verwendet. Die Programmierung erfolgt direkt über den ATMEL AVRISP mkII Programmer aus BASCOM heraus.

An dieser Stelle einfach zur Vollständigkeit nochmals der AVRISP mkII, diesmal geöffnet und das zugehörige Originalpinning von ATMEL für die ISP-Schnittstelle

ATMEL ISP Pinnout
ATMEL ISP Pinnout


Die genaue Position des ISP-Anschlusses kann dem Schaubild über diesem Kapitel aus der Beschreibung des USART-Interface entnommen werden.

LCD-Display 1x8 EA DOG-M 081 von Electronic Assembly

LCD-Display EA DOG-M
LCD-Display EA DOG-M

Als Anzeigedisplay wird ein LCD-Modul der Firma ELECTRONIC ASSEMBLY der DOG-M-Serie 3,3V EA DOG-M Super Flach / 55x27 mm inkl. Kontroller ST7036 für 4-/8-BIT SPI (4-Draht) eingesetzt (LCD-Modul 1x8 - 12 mm EA DOGM081E-A). Als Hintergrundbeleuchtung wird eine LED-Beleuchtung Grün (EA LED55X31G) eingesetzt.

Technische Daten:

  • Kontrastreiche LCD-Supertwist Anzeige
  • Optionale LED-Beleuchtungskörper in verschiedenen Farben
  • 1x8, 2x16 und 3x16 Zeichen mit 12,0 mm / 5,6 mm und 3,6 mm Schrift
  • Kontroller ST 7036 für 4-BIT, 8-BIT und SPI (4-DRAHT) Interface
  • Spannungsversorgung +3,3V oder +5V single supply (typ. 250µA)
  • Keine zus. Spannungen erforderlich
  • Betriebstemperaturbereich -20..+70°C
  • LED-Hintergrundbeleuchtung 3..80mA@3,3V oder 2..40mA@5V
  • Keine Montage erforderlich: einfach nur in PCB einlöten.

Kontrasteinstellung:

Für alle Displays der EA DOG- Serie ist der Kontrast per Befehl einstellbar. Dies erfolgt über die Bits C0..C5 in den Befehlen "Contrast Set" und "Power/Icon Control/Contrast Set". Die Funktionen sind entsprechend in der SW umgesetzt und können aber per Menue nicht verändert werden.
In der Regel wird der Kontrast einmalig eingestellt und dann - dank integrierter Temperaturkompensation - über den gesamten Betriebstemperaturbereich (-20..+70°C) konstant gehalten.
Insgesamt benötigen die Displays selbst im 3,3V Betrieb keine zusätzliche negative Spannung! Das aber nur als Hinweis den im Projekt wird das Display mit 5V betrieben.

Hintergrundbeleuchtung
Hintergrundbeleuchtung

Hintergrundbeleuchtung:

Im Projekt wurde eine Transistorstufe realisiert um die Beleuchtung des Displays an/aus schalten zu können. Die Beleuchtung wird immer nur bei Bedarf zugeschaltet, wenn also der Taster gedrückt oder gedreht wird. Nach einem Timeout geht die Hintergrundbeleuchtung wieder aus.

Das LCD-Display muss vor dem Verlöten oder stecken auf die Beleuchtungseinheit gelötet werden, damit die LEDs der Beleuchtung über die Kontakte des LCD's Strom bekommen. Es ist ratsam, alle Pins der Beleuchtungseinheit anzulöten, da sich so der Druck beim Einsetzten des Displays in die Fassung besser verteilt. Elektrisch ist dies nicht notwendig. Bitte sehr sparsam mit dem Lötzinn umgehen, da es sonst an den Beinchen herunter läuft und somit das Display nicht in die Fassung passt.


Beschaltung:

Die Beschaltung des LCD-Display an den ATmega erfolgt wie im folgenden Schaltbild aus dem Datenblatt des LCD-Displays gefordert.

Beschaltung LCD-Display
Beschaltung LCD-Display


Die vier Drucktaster (Tasterfunktion)

Allgemeines:

Um im Spiel die notwendigen Eingaben machen zu können, werden 4 Drucktaster in den Farben Blau, Rot, Grün und Gelb verwendet. Über das Drücken dieser Taster wird die jeweils vom Spiel geforderte Farbe ausgewält und gespielt.
Dem blauen Taster wird eine Sonderfunktion zuteil. Mit ihm kann ein neues Spiel gestartet werden.
Um im Spiel die Ausgabe der finalen Koordinaten abzubrechen oder die Laufschrift weiterzuschalten kann jede beliebige Taste betätigt werden.
Zum Einsatz kommen dabei die Drucktaster Miniatur-Drucktaster, Ein 0,5A-250VAC des folgenden Typs:

Drucktaster
Drucktaster

Miniatur-Drucktaster, Ein 0,5A-250VAC, blau, rot, grün, gelb

Typ: Drucktaster
Ausführung: Arbeitskontakt / Schließer
Aufbau: verstärkte Ausführung
Anschluss: Lötanschluss
Belastungsgrenze: 250 V / 0,5 A
Farbe: blau, rot, gruen, gelb
Befestigung: M7x0,75
Bohrdurchmesser: 7,0 mm
Schaltzyklen: 50.000
Länge: 21,1 mm
Durchmesser: 9,5 mm
Temperatur, max.: -25 … +85 °C
Verpackungsgewicht: 0,004 kg

Reichelt Bestellnummer: T 113A BL, T 113A RT, T 113A GN, T 113A GE
Beschaltung des Drehimpulsgebers:

Die Beschaltung des Drucktaster erfolgt wie im folgenden Schaltbild dargestellt:

Beschaltung Drucktaster
Beschaltung Drucktaster

Für das Einlesen der Taster werden die ATmega internen PullUp-Widerstände aktiviert. So entsteht kein Aufwand für eine weitere pheriphere Beschaltung.


LED-Anzeigen für Spielverlauf und Betriebsanzeige

Im Projekt Senso werden insgesamt 5 LED's verwendet. Die 4 Haupt-LED's sind 5mm LED's und befinden sich in der Gehäuse-Vorderseite. Sie dienen zur Statusanzeige und zur Steuerung des Spielverlaufs welcher nicht nur akustisch sondern auf optisch stattfindet.
Zusätzlich gibt es eine 3mm Low-Current-LED’s innerhalb des Gehäses. Sie dient während der Entwicklung und ggf. Reparatur zum Erkennen des Alive Signals des Prozessors.

Die LED's werden ohne Transistorstufe mittels Metallschichtvorwiderstand direkt an den GPIO-Pin’s des ATmega8L-Controllers betrieben.

In der folgenden Tabelle befinden sich alle LED’s des Projekt beschrieben und den HW-Ressourcen im Schaltplan inkl. Funktion zugeordnet:

LED-Zuordnung
LED-Zuordnung

LED Ressourcen-Zuordnung Schaltplan
LED Ressourcen-Zuordnung Schaltplan

Die grüne Alive LED zeigt an, dass der Controller bzw. das Spiel normal arbeitet und der Hauptschalter eingeschaltet ist. Dabei blinkt die LED im Sekundenrhythmus.

Sinkt die Batteriespannung über eine in der SW eingestellte Schwelle so leuchtet die rote LED und die Batterie sollte mittelfristig getauscht werden.

Die Gehäusedurchführung / Gehäusefassung für die 5mm LED’s wird als LED-Fassung aus Neopren ausgeführt.
Gehäusedurchführung
Gehäusedurchführung


Wasserdichte Neoprenfassungen für 5mm LEDs.

Passend für LED 5 mm
Einbau-Durchmesser 7.5 mm

Bestellnummer LedProfi: 09-023

Akustisches Feedback über Lautsprecher

Die Soundausgabe im Projekt Senso erfolgt mittels kleiner Lautsprecher.
Zum Einsatz kommen zwei verschiedene Lautsprecher welche von von Reichelt Elektronik bezogen werden.

Warum zwei verschiedene Lautsprecher?

Als die Entwicklung des Seonso begann, war es das Ziel einen auf der Platine verlöteten und innderhalb des Gehäuses befindlichen Lautsprecher des Typs Ekulit LSM-S36K zu verwenden (Details siehe unten).
Bei der Montage der fertiggestellten Platine im Gehäse war ich jedoch mit der aussen hörbaren Lautstärke nicht zufrieden. Daher wurde die Auswahl nochmals durchdacht und so kam ein neuer bzw. anderer Lautsprecher von Visaton mit der Bezeichnung K 50 KI zum Einsatz. Der Kleinlautsprecher besitzt eine Kunststoffmembrane. Er wird in die mit Bohrungen versehene Gehäuserückseite eingeklebt.
Damit war ein ganz neues Klangerlebnis vorhanden. Ja, nun war ich zufrieden.

Da sich die Platine selbst aber noch mit dem original geplanten Lautsprecher bestücken lässt, werde ich nun hier beide Varianten aufzeigen.

Zum Einsatz kommt der Kleinlautsprecher km EKULIT LSM-S36K. Reichelt Bestellnummer: LSM-S36K
Bzw. der sich dann auch im Feld befindliche Lautsprecher Visaton K 50 Fl. Reichelt Bestellnummer: VIS K50FL-16
EKULIT LSM-S36K
Lautsprecher EKULIT LSM-S36K

Der Lautsprecher LSM-S36K ist für die Printmontage geeignet.

Typ: Kleinlautsprecher
Impedanz: 16 Ohm
Resonanzfrequenz: 450 Hz
Frequenzbereich:fo 5000 Hz
Leistung: 0,25 W
Musikbelastbarkeit: 0,5 W
Geräuschpegel: 83 dB
Temperaturbereich: -40 … +95 °C
Anschluss: Printanschuss
Breite: 48 mm
Höhe: 40 mm
Tiefe: 4,8 mm
Ausführung: Kunststoff
Verpackungsgewicht: 0,009 kg

Reichelt Bestellnummer: LSM-S36K
 
 
Visaton K 50 Fl
Lautsprecher Visaton K 50 Fl

5 cm (2") Kleinlautsprecher mit Kunststoffmembran.
Signalausgabe in Geräten und Anlagen aller Art, in denen wenig Platz zur Verfügung steht.
Gut geeignet für Anwendungen im Außenbereich und bei kritischen Umgebungseinflüssen.

Nenn-/Musikbelastbarkeit: 1 W / 2 W
Impedanz: 16 Ohm
Übertragungsbereich (– 10 dB): 150–20000 Hz
Mittlerer Schalldruckpegel: 80 dB (1 W/1 m)
Resonanzfrequenz: 340 Hz
Schwingspulendurchmesser: 13 mm
Wickelhöhe: 2 mm
Schutzklasse: IP 65
Temperaturbereich: -40 ... 70 °C
Schallwandöffnung: 46 mm
Gewicht netto: 0,014 kg

Reichelt Bestellnummer: VIS K50FL-16

Der Lautsprecher wird über eine Transistorstufe vom Controller aus angesteuert.

Ansteuerung des Lautsprechers
Ansteuerung des Lautsprechers


Der Auto Frank A. Dullinger beschreibt auf seiner Homepage bollwerkessen sehr schön ein Verfahren zur Berechnung einer Transistor-Ausgangsstufe und die Tonerzeugung mit dem Sound-Befehl von BASCOM-AVR. Beide Inhalte waren für mich im Projekt Senso sehr hilfreich so dass ich die Informationen hier in Teilen zitieren und wiedergeben möchte. Ich Verweise an dieser Stelle für die beiden genannten Absätze aber ausdrücklich auf das Copyright von Frank Dullinger.

Die Werte für die Berechnungen wurden auf die gegebenheiten von Senso angepasst.


Verfahren zur Berechnung einer Transistor-Ausgangsstufe:

In der oben abgebildeten Schaltung ist der Anschluss eines einfachen Lautsprechers an einem AVR ATMEL ATmega8 Mikrocontroller dargestellt.
Im Folgenden ist beschrieben, welche Berechnungen für die Dimensionierung dieser Schaltung durchgeführt wurden.


Gegebene Werte Lautsprecher (am Beispiel Lautsprecher LSM-S36K):

Die entsprechenden Werte wie Impedanz, Leistung, usw. welche für die folgenden Berechnungen benötigt werden sind den obigen Daten-Tabellen der Lautsprecher zu entnehmen.


Gegebene Werte der Schaltung:

Die Betriebsspannung +UB betr¨gt +5.0 Volt
Transistordaten aus dem BC547 – Datenblatt: Ic = 100 mA, siehe unter (Collector Current Continous), Ptot – 500 mW


Berechnung der Widerstände R2 und R3

Der Kollektorwiderstand besteht aus dem Widerstand R2||R3 plus dem Widerstand des Lautsprechers. Da der Widerstand des Lautsprechers feststeht können nur die Werte von R2||R3 berechnet werden.

Als Transistor soll der BC547B verwendet werden. Dem Datenblatt kann entnommen werden, dass der maximale Strom für Ic mit 100mA angegeben ist. Somit ergibt sich für die Berechnung des Widerstand R2||R3 die folgende Formel aus dem Ohm’schen Gesetzt
Transistor Formel 1

Wie oben beschrieben besteht der Kollektorwiderstand aus R2||R3 und dem Widerstand des Lautsprechers. Somit muss vom errechneten Widerstandswert für R2||R3 der Impedanzwert des Lautsprechers abgezogen werden.

Damit erhält man für einen 8 Ohm Lautsprecher
Transistor Formel 2

bzw. für einen 16 Ohm Lautsprecher
Transistor Formel 3

Der Widerstandwert von 34 Ohm befindet sich nicht in jeder Widerstandreihe. Da ich nur 68 Ohm Widerstände zur Hand hatte, musste ich eine Parallelschaltung für diesen verwenden.
Der Gesamtwert der Parallelschaltung von zwei Widerständen berechnet sich nach der folgenden Formel
Transistor Formel 4

Der Widerstandswert Rges einer Parallelschaltung von zwei Widerständen ist immer kleiner als der kleinste Einzelwiderstand.

Für die verwendeten Widerstände ergibt sich folgende Rechnung
Transistor Formel 5

Damit liegen wir mit 2 parallel geschalteten 68 Ohm Widerständen genau auf dem gewünschten Wert.


Der Kollektorstrom Ic

Der tatsächliche Kollektorwiderstand Ic mit dem zuvor ermittelten Widerstand von R2||R3 berechnet sich nach
Transistor Formel 6


Verlustleistung P

Die Leistung errechnet sich mit
Transistor Formel 7

Im Datenblatt des BC547 ist eine maximale Verlustleistung Ptot = 500mW angegeben. Setzt man die oben berechneten Werte in die Formel ein so erhält man
Transistor Formel 8

Die berechnete Leistung liegt im Bereich des erlaubten.


Basisstrom und Basisvorwiderstand

Im Datenblatt zum BC547 findet sich in der Kennlinie für VCEsat ein Wert für B von 20 in Sättigung. Dieser Wert wird für die Berechnung des Basisstroms benötigt. Es ergibt sich damit folgende Berechnungsformel
Transistor Formel 9
Hinweis: Findet sich keine Angabe zur Verstärkung (B) in Sättigung ist es kein Fehler generell mit einem Wert von 20 bis 30 zu rechen.

Als nächstes muss die Höhe der Eingangsspannung ermittelt werden. Im Datenblatt ist der Spannungsabfall der BE-Strecke in Sättigung UBEsat von VBEsat = 900 mV angegeben.
Die Ausgangsspannung des Microcontrollers liegt typisch bei ca. 5 Volt. Von dieser Spannung werden sicherheitshalber noch ca. 5%; abgezogen. Somit ergibt sich für die Eingangsspannung der Treiberstufe der folgende Spannungswert
Transistor Formel 10

Wir möchten den Ausgang des Microcontrollers mit 2 mA belasten. Somit ergibt sich für den Basisvorwiderstand die folgenden Berechnung
Transistor Formel 11

Ich habe für den Basisvorwiderstand eine Parallelschaltung aus zwei 1k2 Widerständen verwendet.

Die mir dieser Treiberstufe erzeugte Lautstärke der Tonausgabe ist für einen Signalgeber ausreichend. Wird mehr Leistung benötigt so kann ein Audioverstärker IC wie z.B. der Baustein TD7052 mit einer Leistung von 1 Watt verwendet werden. Allerdings muss hier dann auf einen anderen Lautsprecher-Typ gewechselt werden.


Tonerzeugung mit dem Sound-Befehl von BASCOM-AVR:

Für die Ausgabe einfacher Töne stellt der Bascom AVR Compiler den Befehl „Sound“ zu Verfügung. Dieser Befehl ist allerdings nicht sehr genau. Sollen Tüne mit genauer Frequenz ausgegeben werden so müssen andere Methoden angewendet werden, auf die ich hier aber nicht eingehen werde. Die folgenden Informationen zum Sound-Befehl finden sich in der Bascom Hilfe

Hilfe in BASCOM zum SOUND-Befehl
Hilfe in BASCOM zum SOUND-Befehl

Weiter Informationen sind nicht verfügbar, also musste Dullinger weiter recherchieren. Die Frage die sich dabei stellte, wie kann eine definierte Frequenz für eine Note ausgegeben werden? Diese Frage lies sich nach einigem suchen beantworten, sie kann mit den folgenden Formeln berechnet werden.
Formel 1

Mit diesen Informationen allein können wir jedoch noch nichts anfangen, es fehlt noch ein entscheidender Teil, nämlich die Frequenz der zu verwendenden Note. Dazu werfen wir eine Blick auf die Informationen zur "chromatische Tonleiter". Bei einer gleichtemperierten Stimmung wird jede Oktave in zwölf identische Halbton-Schritte aufgeteilt, die Schrittweite zwischen den Halbnoten beträgt
Formel 2

Mit diesem Wissen lässt sich für jede Grundfrequenz die komplette Oktave und auch die folgenden Oktaven berechnen, siehe Tabelle:

Verhaeltnisse und Intervalle für eine reine- und gleichstufige Stimmung
Verhältnisse und Intervalle für eine reine- und gleichstufige Stimmung

Die Grundfrequenz der Oktave beträgt immer das doppelte der vorhergehenden Oktave z.B.
Formel 3

Da wir nun wissen wie die Frequenzen der Oktaven berechnet werden können wir die o.g. Formeln für den Bascom Sound-Befehl auflösen, dazu ein Beispiel in dem wir die Werte für den Kammerton a' berechnen. Der Kammerton a' ist mit 440 Hz sicherlich einer der bekanntesten Töne, aber das nur am Rande.

Los geht's

In dem Beispiel werden wir die Frequenz für den gesuchten Ton nach dem beschriebenen Verfahren herleiten.

Es soll, wie bereits erwähnt, der Kammerton a' als 1/4 Note erklingen. Der Mikrocontroller wird mit einer Frequenz von 4 MHz getaktet, der Ausgabe Pin soll PORTD.6 sein.

Die Frequenz von c' für die gleichstufige Stimmung ist gegeben zu 261,63 Hz. Daraus berechnen wir nach der Formel aus obiger Tabelle die Frequenz für den Kammerton a'
Formel 4

Zuerst einmal lösen wir die Wurzel auf, und erhalten
Formel 5
für das Intervall.

Nun noch eine simple Multiplikation und wir erhalten die Frequenz für den Kammerton a':
Formel 6

Damit ist auch die Plausibilität der Berechnung bewiesen.

Im nächsten Schritt berechnen wir die Anzahl der High/Low Übergänge (pulses) des Signals. Hier nehmen wir, wie bereits erwähnt, eine Taktfrequenz des Mikrocontrollers von 4 MHz an. Natürlich ist auch jede andere Taktfrequenz möglich.

Die Formel verlangt die Angabe der Frequenzen in Hz. Das Ergebnis ist eine Ganzzahl für den pulses Wert des Bascom Befehls (siehe Bascom Hilfe zum Sound-Befehl).

Bevor wir weiter rechnen, muss noch etwas zu den Notenwerten gesagt werden. Sicherlich ist bekannt das Noten unterschiedliche Längen haben können, damit ist gemeint wie lange die Note ertönt. Diese Zeit wird in Sekunden angegeben. In der folgenden Tabelle habe wir Notenwerte und Zeiten in Sekunden aufgeführt, die für T verwendet werden können.

Standardnotenwerte und ihre Zeiten in Sekunde
Standardnotenwerte und ihre Zeiten in Sekunde

Wir lösen also die folgende Formel mit den bekannten Werten.
Formel 7

Damit ist die Berechnung beendet und es bleibt nur noch den Sound-Befehl mit diesen Werten auszuführen.
Für das Beispiel würde der Befehl wie folgt lauten:
Formel 8


Gehäuse mit Batteriefach und Displayfenster

Die Schwierigkeit bestand darin, ein formschönes Gehäuse zu finden, welches nicht zu groß ist sondern das auch nicht gut in der Hand gehalten werden kann und in dem sowohl das ausgewählt Display als auch der 9V-Batterieblock Platz findet.

Nach langer Suche wird nun das folgende Gehäuse eingesetzt:

Gehäuse
Gehäuse

BOPLA BOS 750

Digitales Handgehäuse

Die Tastenfläche ist vertieft zur Aufnahme einer Folientastatur. Batteriefach für 9V-Block, mit Panorama-scheibe (muss von außen geklebt werden) Tastenfeld: 70 x 86mm

Hersteller : BOPLA
Artikelnummer des Herstellers : 34750000
Verpackungsgewicht : 0.109 kg
RoHS : konform

Bestellnummer Reichelt: BOPLA BOS 750

Typ: Handgehäuse
Farbe: schwarz

Ausführung: mit Panoramascheibe
Länge: 157 mm
Breite: 84 mm
Höhe: 30 mm



Gehaeuse
Gehäuse


Stücklisten

Die folgenden Teile und Baugruppen wurden für das Geocaching-Spiel "DrMaFu's Senso" verarbeitet:

Stückliste für das Projekt DrMaFu's Senso
Menge Bauteile Beschreibung Lieferant Bestellnummer Maße Preis
5 C2, C3, C5, C7, C8 Keramikkondensator 100nF/50V Reichelt Elektronik KERKO 100N -- 0,45 €
2 C1, C4 Elektrolytkondensator 100µF/35V Reichelt Elektronik RAD 100/35 -- 0,08 €
2 R2, R3 Metallschichtwiderständ 1M Ohm Reichelt Elektronik METALL 1,00M -- 0,164 €
4 R6, R7, R8, R9 Metallschichtwiderständ 150 Ohm Reichelt Elektronik METALL 150 -- 0,328 €
3 R5, R11, R12 Metallschichtwiderständ 1k2 Ohm Reichelt Elektronik METALL 1,20K -- 0,246 €
1 R10 Metallschichtwiderständ 1k5 Ohm Reichelt Elektronik METALL 1,50K -- 0,082 €
1 R4 Metallschichtwiderständ 30 Ohm Reichelt Elektronik METALL 30,0 -- 0,082 €
2 R13, R14 Metallschichtwiderständ 68 Ohm Reichelt Elektronik METALL 68,0 -- 0,164 €
1 D2 Diode 1N4148 Reichelt Elektronik 1N 4148 -- 0,04 €
1 IC1 Spannungsregler 78S05, 5V, 2A positiv Reichelt Elektronik µA 78S05 TO-220 0,39 €
2 Q1, Q2 BC 547B Transistor NPN TO-92 45V 0,1A 0,5W Reichelt Elektronik BC 547B TO-92 0,08 €
1 LCD1 DOG LCD-Modul DOGM081E-A, Hintergrund grün Reichelt Elektronik EA DOGM081E-A 8x1 10,20 €
1 -- Led-Beleuchtung für EA DOGL..Farbe: grün Reichelt Elektronik EA LED55X31-G -- 2,40 €
1 LED5 LED 3mm, low-Current, grün Reichelt Elektronik LED 3MM 2MA GN 3mm 0,09 €
1 LED1 LED 5mm, Standard, Blau Reichelt Elektronik LED 5MM ST BL 5mm 0,58 €
1 LED2 LED 5mm, Standard, Rot Reichelt Elektronik LED 5MM ST RT 5mm 0,10 €
1 LED3 LED 5mm, Standard, Grün Reichelt Elektronik LED 5MM ST GN 5mm 0,10 €
1 LED4 LED 5mm, Standard, Gelb Reichelt Elektronik LED 5MM ST GE 5mm 0,10 €
1 IC2 ATMega8 AVR-RISC-Controller Reichelt Elektronik ATMEGA 8L8 DIP S-DIL-28 2,10 €
1 SP1 Kleinlautsprecher LSM-S36K bzw. VIS K50FL-16 Reichelt Elektronik LSM-S36K bzw. VIS K50FL-16 16 Ohm 2,70 €
1 SV2 MA03-2 für ISP06 Reichelt Elektronik SL 2X50G 2,54 2,54mm 0,85 €
1 SV1 MA06-02 für RS232 Reichelt Elektronik SL 2X50G 2,54 2,54mm s.o.
1 -- Gehäuse BOPLA BOS 750 Reichelt Elektronik BOPLA BOS 750 -- 15,60 €
1 X1 Batterieclip für 9-Volt-Block, vertikal Reichelt Elektronik CLIP HQ9V -- 0,36 €
1 -- IC-Sockel, 28-polig, schmal Reichelt Elektronik GS 28P-S DIP28 0,47 €
1 KEY_1_BLAU Miniatur-Drucktaster BLAU, Ein 0,5A-250VAC, T 113A, 250V / 0,5A Reichelt Elektronik T113A BL -- 0,47 €
1 KEY_2_ROT Miniatur-Drucktaster ROT, Ein 0,5A-250VAC, T 113A, 250V / 0,5A Reichelt Elektronik T113A RT -- 0,47 €
1 KEY_3_GRUEN Miniatur-Drucktaster GRÜN, Ein 0,5A-250VAC, T 113A, 250V / 0,5A Reichelt Elektronik T113A GN -- 0,47 €
1 KEY_4_GELB Miniatur-Drucktaster GELB, Ein 0,5A-250VAC, T 113A, 250V / 0,5A Reichelt Elektronik T113A GE -- 0,47 €
1 -- 9 V Block-Batterie Alkali-Mangan Varta Longlife 6LR61 9 V Conrad Electronic 650709 - 62 -- 3,99 €
1 -- Wippschalter 250 V/AC 3 A 1 x Aus/Ein Eledis MR519-0F522 rastend Conrad Electronic 700039 – 62 -- 2,06 €
1 -- Trockenmittelbeutel 5 g/Beutel Transpa-rent Material Kieselgel Conrad Electronic 181896 – 62 -- 1,52 €
4 -- Wasserdichte Neopren Fassungen für 5mm LEDs LEDProfiShop 09-023 5mm 3,80 €
Stückliste für das Projekt DrMaFu's Senso


Hinweis: Bestellnummern und Preise beziehen sich auf den Zeitpunkt der Projektumsetzung April 2017 und können abweichen!!


Schaltpläne

Der Schaltplan zu diesem Projekt liegt als Eagle-SCH-Dateien vor und befindet sich weiter unten im Bereich Dokumente aufgelistet. Für alle welche kein Eagle besitzen anbei der Schaltplan als PDF-Dateien. Die PDF's befinden sich hier unter den jeweiligen Links zum Download.

Schematic: Senso
Schematic: Senso


Bestückpläne

Der Bestückplan zu diesem Projekt liegt als Eagle-BRD-Datei vor und befinden sich weiter unten im Bereich Dokumente aufgelistet. Für alle welche kein Eagle besitzen anbei der Bestückplan als PDF-Datei. Die PDF-Datei sind zusammengefasste Bestückpläne und Layoutansichten in einem Dokumente. Das PDF befindet sich hier unter dem Link zum Download.

Bestückung: Senso
Bestückung: Senso

Die fertige bestückte Platine - Top-Layer Die fertige bestückte Platine - Bottom-Layer
Die fertige bestückte Platine - Top-Layer Die fertige bestückte Platine - Bottom-Layer


PCB's

Die Board-Daten zu diesem Projekt liegen als Eagle-BRD-Datei vor und befinden sich weiter unten im Bereich Dokumente aufgelistet. Für alle welche kein Eagle besitzen anbei die Bilder zum Layout als PDF-Datei. Die PDF-Datei sind zusammengefasste Bestückpläne und Layoutansichten in einem Dokumente. Das PDF befinden sich hier unter dem Link zum Download.

Layout: Senso
Layout: Senso

Die Platine - Top-Layer Die Platine - Bottom-Layer
Die Platine - Top-Layer Die Platine - Bottom-Layer



Software

Die Software zum Projekt Senso wurde komplett in BASCOM-AVR, einem Basic Compiler der Firma MCS-Electronics, erstellt.

BASCOM-AVR Sourcecode zum Senso BASCOM-AVR Sourcecode zum Senso HEX-File zum Senso HEX-File zum Senso
BIN-File zum Senso BIN-File zum Senso Senso Sourcecode als RTF-File Senso Sourcecode als RTF-File


Dokumentation und Daten

An dieser Stelle befinden sich die Dokumente zur Entwicklung. Speziell befinden sich hier die jeweiligen Eagle-Dateien für Schaltpläne und PCB's.

Eagle-Datei Schematic Eagle-Datei Schematic Eagle-Datei Board Eagle-Datei Board
Gesamtdokumentation Projekt Gesamtdokumentation Projekt


Mitgeltende Unterlagen und Sonstiges

Bei den verwendeten Bauteilen handelt es sich fast ausschließlich um Standardbauteile. Es wurden keine zusätzlichen Dokumente für Module usw. verwendet.
Aus diesem Grund entfällt die Notwendigkeit tiefergehender Beschreibungen und Dokumentationen. Zusätzliche zu den Schaltplan- und Layout-Daten und obigen Dokumenten sind keine mitgeltenden Unterlagen vorhanden.




Das fertige Spiel
Das fertige Spiel


Valid XHTML 1.0 Transitional    CSS ist valide!