Finckenbande
Geocacher
Hallo zusammen,
ich empfinde es genauso wie im Nachbarthread: es ist einfach zu ruhig geworden in diesem Bereich.
Ich habe von so manchem hier profitiert und sogar mit Bussard mal zu einem kleinen Projekt beigetragen - der 16-Segment-Anzeige; das ist aber schon ein andere Thread.
Hier trage ich hoffentlich etwas für alle dazu bei, bin sogar heute ganz neu in Eagle eingestiegen, um meine Bleistiftzeichnungen in etwas professionellerer Art für Euch alle Online stellen zu können.
Hinweise, was man dort noch besser machen kann, nehme ich gerne entgegen !
Ich bin das, was ich gerne als Handtaschen-Bastler bezeichne: ich habe es mir ganz einfach gemacht und verwende BASCOM (sogar gekauft) und baue die Station "oldshool" auf Streifenraster und voll bedrahtet-bestückt auf. Damit aber auch für wirklich jeden nachvollziehbar und nachzubauen.
Zum Hintergrund:
Diese Station war in meinem bisher aufwendigstem Cache - https://coord.info/GC2MKC2 verbaut. Dieser war jedoch so aufwendig zu pflegen, dass ich ihn nur eine sehr kurze Zeit online hatte. In ihm waren insgesamt 9 Microcontroller verbaut und ich habe voll auf vom Cacher mitgebrachter Energie gesetzt - alle mussten also mindestens den handelsüblichen 9V-Block mitbringen. Die verbaute "Angst-Stromquelle" habe ich im nachhinein immer so verbaut, da die Cacher inzwischen so ziemlich alles mit viel Strom und Spannung an meine Stationen drangehalten haben; Verpol- und Überspannungsschutz sind also Pflicht.
Im Cache ging es darum, an mehreren Stationen Zahlenfolgen zu ergattern, welche man an einer zentralen Station eingeben musste. Es gab auch eine "Notfallstation", an der man alle max. 10 Minuten eine wählbare Lösung einer der abzuklappernden Stationen bekommen konnte.
Er hat sehr gut abgeschnitten und während seiner Laufzeit war der Wald ganz schön voll .....
Zum Aufbau:
Im Inneren befindet sich eine Streifenrasterplatine, die ich einfach frei nach Schaltplan aufbaue - in dem kleinen Kästchen ist immer genügend Platz. Für die Taster setze ich auf alle 5 verfügbaren Farben der Conrad-Taster (schwarz ist schwierig einzusetzen ) . Als Anzeige habe ich sowohl eine RGB-LED (die hinter einem "blind" gemachten Petlingkopf sitzt) gesetzt, als auch auf eine klassische 7-Segmentanzeige. Wie oben zu lesen, musste man eine Zahlenfolge bekommen. Wer da also eine Koordinate anzeigen möchte, muss an dem Sourcecode noch etwas ändern. (Finale Anzeige des Ergebnisses)
Die Station war mit einem Feuchtigkeitsbeutelchen in einer Lock-und-Lock-Dose verstaut. Ein einfaches Band hat es an dem Ort gehalten, wo es versteckt war.
Name der Station im Originalcache: "Der Professor" (Station 6)
Hier im Anfangspost auch direkt alle relevanten Dateien:
- Bild der Station von aussen:
- Eagle-Schaltbild:
- Bascom Sourcecode:
Jetzt freue ich mich auf (konstruktive) Kritik (ich weiß: das ist die grüne Hölle ) - und vom Lob lebt der Cacheowner ja bekanntlich ....
Wir bekommen hier wieder Schwung rein !!
Der Papa der Finckenbande
ich empfinde es genauso wie im Nachbarthread: es ist einfach zu ruhig geworden in diesem Bereich.
Ich habe von so manchem hier profitiert und sogar mit Bussard mal zu einem kleinen Projekt beigetragen - der 16-Segment-Anzeige; das ist aber schon ein andere Thread.
Hier trage ich hoffentlich etwas für alle dazu bei, bin sogar heute ganz neu in Eagle eingestiegen, um meine Bleistiftzeichnungen in etwas professionellerer Art für Euch alle Online stellen zu können.
Hinweise, was man dort noch besser machen kann, nehme ich gerne entgegen !
Ich bin das, was ich gerne als Handtaschen-Bastler bezeichne: ich habe es mir ganz einfach gemacht und verwende BASCOM (sogar gekauft) und baue die Station "oldshool" auf Streifenraster und voll bedrahtet-bestückt auf. Damit aber auch für wirklich jeden nachvollziehbar und nachzubauen.
Zum Hintergrund:
Diese Station war in meinem bisher aufwendigstem Cache - https://coord.info/GC2MKC2 verbaut. Dieser war jedoch so aufwendig zu pflegen, dass ich ihn nur eine sehr kurze Zeit online hatte. In ihm waren insgesamt 9 Microcontroller verbaut und ich habe voll auf vom Cacher mitgebrachter Energie gesetzt - alle mussten also mindestens den handelsüblichen 9V-Block mitbringen. Die verbaute "Angst-Stromquelle" habe ich im nachhinein immer so verbaut, da die Cacher inzwischen so ziemlich alles mit viel Strom und Spannung an meine Stationen drangehalten haben; Verpol- und Überspannungsschutz sind also Pflicht.
Im Cache ging es darum, an mehreren Stationen Zahlenfolgen zu ergattern, welche man an einer zentralen Station eingeben musste. Es gab auch eine "Notfallstation", an der man alle max. 10 Minuten eine wählbare Lösung einer der abzuklappernden Stationen bekommen konnte.
Er hat sehr gut abgeschnitten und während seiner Laufzeit war der Wald ganz schön voll .....
Zum Aufbau:
Im Inneren befindet sich eine Streifenrasterplatine, die ich einfach frei nach Schaltplan aufbaue - in dem kleinen Kästchen ist immer genügend Platz. Für die Taster setze ich auf alle 5 verfügbaren Farben der Conrad-Taster (schwarz ist schwierig einzusetzen ) . Als Anzeige habe ich sowohl eine RGB-LED (die hinter einem "blind" gemachten Petlingkopf sitzt) gesetzt, als auch auf eine klassische 7-Segmentanzeige. Wie oben zu lesen, musste man eine Zahlenfolge bekommen. Wer da also eine Koordinate anzeigen möchte, muss an dem Sourcecode noch etwas ändern. (Finale Anzeige des Ergebnisses)
Die Station war mit einem Feuchtigkeitsbeutelchen in einer Lock-und-Lock-Dose verstaut. Ein einfaches Band hat es an dem Ort gehalten, wo es versteckt war.
Name der Station im Originalcache: "Der Professor" (Station 6)
Hier im Anfangspost auch direkt alle relevanten Dateien:
- Bild der Station von aussen:
- Eagle-Schaltbild:
- Bascom Sourcecode:
Code:
'****************** GeoSenso*********************************
' Attiny 2313 mit RGB-LED und 5 Tastern sowie 7-Segmentanzeige
' frei nach dem bekannten SENSO
' war mal verbaut im Cache
' https://coord.info/GC2MKC2
' extra dokumentiert für den Geoclub.de
' letzte Änderung am 11.02.2017
' alles gebaut, geschrieben von [email protected]
' AKA Finckenbande im Geoclub
'**********************************************************
$regfile = "ATtiny2313.dat"
$crystal = 1000000 ' Fuses auf Standard Out of Box - Geschwindigkeit ist nicht wichtig ...
Config Portd.0 = Output 'rot LED
Config Portd.1 = Output 'grün LED
Config Portd.2 = Output 'blau LED
Config Portd.3 = Input 'Taster Rot
Config Portd.4 = Input 'Taster weiss
Config Portd.5 = Input 'Taster grün
Config Portd.6 = Input 'Taster gelb
Config Porta.0 = Input 'Taster blau
Portd.3 = 1 'und die pullups; taster ziehen nach grnd
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1
Porta.0 = 1
Config Portb = Output 'hier kommt die 7-Seg-Anzeige dran
Portd.0 = 1 'rote LED aus
Portd.1 = 1 'grüne LED aus
Portd.2 = 1 'blaue Led aus
Rot Alias Portd.0
Grün Alias Portd.1
Blau Alias Portd.2
Dim Level As Byte
Dim Schleifenzähler As Byte
Dim Hilfsvariable As Byte
Dim Farbfolge(11) As Byte
Config Timer1 = Timer , Prescale = 1 'Timer für Zufallszahlen
Dim ___rseed As Word
Enable Timer1
Start Timer1
Falscheingabe:
Schleifenzähler = 1
Do 'Auf Tastendruck warten
Portb = Lookup(schleifenzähler , Kreisen)
Debounce Pind.3 , 0 , Start_game 'Taste "rot" gedrückt
Debounce Pind.4 , 0 , Start_game 'Taste "weiss" gedrückt
Debounce Pind.5 , 0 , Start_game 'Taste "grün" gedrückt
Debounce Pind.6 , 0 , Start_game 'Taste "gelb" gedrückt
Debounce Pina.0 , 0 , Start_game 'Taste "blau" gedrückt
Incr Schleifenzähler
If Schleifenzähler > 6 Then Schleifenzähler = 1
Waitms 50
Loop
Portb = 0
Start_game:
___rseed = Timer1 ' Rseed setzen, damit Zufallszahlen abhängig vom ersten Tastendruck
For Schleifenzähler = 1 To 11 'Array mit Zufallszahlen füllen
Farbfolge(schleifenzähler) = Rnd(50) + 10 'Zufallszahl von 1-5 generieren
Farbfolge(schleifenzähler) = Farbfolge(schleifenzähler) / 10
Next Schleifenzähler
Level = 1 'es wird mit stufe 0 begonnen (heisst: 1 Ziffer)
Do
Decr Level 'anstatt hilfsvariable zum darstellen auf der 7-Segmentanzeige 0-9, dann Punkt benutzen
If Level < 10 Then
Portb = Lookup(level , Zahlen) 'aktuelles a darstellen
Else
Portb = 1 'bei 10 soll auf der 7-Segmentanzeige der Punkt an sein
End If
Incr Level 'und hier das decrease für die Anzeige auf der 7-Segmentanzeige wieder zurückdrehen
Wait 1 'dies ist die wartezeit vor jedem abspielen, um den Spieler nicht zu "verwirren" - sonst würde direkt nach vorangegangenem Tastendruck abgespielt
Gosub Darstellen 'es werden soviele farben "abgespielt" wie gerade in "level" ist
For Schleifenzähler = 1 To Level
Gosub Tastendruckeinlesen 'in hilfsvariable wird die gedrückte taste gespeichert
If Farbfolge(schleifenzähler) <> Hilfsvariable Then 'es wurde falsch gedrückt
Gosub Beep_error
Goto Falscheingabe
Else
Gosub Beep_ok
End If
Next Schleifenzähler
Incr Level 'mit Level "eins höher" geht es weiter
Loop Until Level = 11 'bis x-1 in Folge richtig gedrückt wurden (es wird ja mit 0 begonnen) / maximal 12 (=11 Stellen)
'jetzt gehts weiter
Portb = 0 '7-Segment aus
Schleifenzähler = 1
Do 'wildes geblinke
Gosub Rotan
Waitms 50
Gosub Aus
Waitms 50
Gosub Grünan
Waitms 50
Gosub Aus
Waitms 50
Gosub Blauan
Waitms 50
Gosub Aus
Waitms 50
Gosub Gelban
Waitms 50
Gosub Aus
Waitms 50
Gosub Weissan
Waitms 50
Gosub Aus
Waitms 50
Incr Schleifenzähler
Loop Until Schleifenzähler = 10 '10 mal wildes geblinke
'so die arbeit ist getan, nun muss noch dargestellt werden
Do 'erstmal kreisen zum abgrenzen
For Hilfsvariable = 1 To 5
For Schleifenzähler = 1 To 6
Portb = Lookup(schleifenzähler , Kreisen)
Waitms 50
Next Schleifenzähler
Next Hilfsvariable
For Schleifenzähler = 1 To 10 'die 9 Ziffern des Zielcoodes ausgeben
Hilfsvariable = Lookup(schleifenzähler , Code)
Portb = Lookup(hilfsvariable , Zahlen)
Waitms 400
Portb = 0
Waitms 400
Next Schleifenzähler
Loop 'und endlos ausgeben ...
Darstellen:
For Schleifenzähler = 1 To Level
Hilfsvariable = Farbfolge(schleifenzähler)
Select Case Hilfsvariable
Case 1 : Gosub Rotan
Case 2 : Gosub Weissan
Case 3 : Gosub Grünan
Case 4 : Gosub Gelban
Case 5 : Gosub Blauan
End Select
Waitms 500
Gosub Aus
Waitms 500
Next Schleifenzähler
Return
Tastendruckeinlesen:
Do
Hilfsvariable = 1
Debounce Pind.3 , 0 , Tastendruck 'Taste "rot" gedrückt
Hilfsvariable = 2
Debounce Pind.4 , 0 , Tastendruck 'Taste "weiss" gedrückt
Hilfsvariable = 3
Debounce Pind.5 , 0 , Tastendruck 'Taste "grün" gedrückt
Hilfsvariable = 4
Debounce Pind.6 , 0 , Tastendruck 'Taste "gelb" gedrückt
Hilfsvariable = 5
Debounce Pina.0 , 0 , Tastendruck 'Taste "blau" gedrückt
Loop
Tastendruck:
Return
Beep_error:
Sound , Porta.1 , 20 , 1200
Sound , Porta.1 , 50 , 1800
Return
Beep_ok:
Sound , Porta.1 , 150 , 50
Return
Rotan:
Rot = 0
Grün = 1
Blau = 1
Return
Grünan:
Rot = 1
Grün = 0
Blau = 1
Return
Blauan:
Rot = 1
Grün = 1
Blau = 0
Return
Gelban:
Rot = 0
Grün = 0
Blau = 1
Return
Weissan:
Rot = 0
Grün = 0
Blau = 0
Return
Aus:
Rot = 1
Grün = 1
Blau = 1
Return
Zahlen:
'---------abcdefg.
Data &B11111100 '0
Data &B01100000 '1
Data &B11011010 '2
Data &B11110010 '3
Data &B01100110 '4
Data &B10110110 '5
Data &B10111110 '6
Data &B11100000 '7
Data &B11111110 '8
Data &B11110110 '9
Kreisen:
Data &B10000000 ' fängt oben an
Data &B01000000
Data &B00100000
Data &B00010000
Data &B00001000
Data &B00000100
Data &B10000000 ' und hört oben wieder auf
Code:
Data 0 , 6 , 5 , 3 , 7 , 8 , 4 , 3 , 3 , 9 , 1 'die erste Ziffer ist ein dummy !!
Jetzt freue ich mich auf (konstruktive) Kritik (ich weiß: das ist die grüne Hölle ) - und vom Lob lebt der Cacheowner ja bekanntlich ....
Wir bekommen hier wieder Schwung rein !!
Der Papa der Finckenbande