-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Ortungspieper mit ATtiny13 für Modell-Elektrosegler

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61

    Ortungspieper mit ATtiny13 für Modell-Elektrosegler

    Anzeige

    Hallo an alle Modellflieger,
    habe mit Pic 12Cxxx etwa 10 Stück von den Ortungspiepern erstellt. Nun dachte ich, dieses Thema
    mit einem 8 poligen tiny13 aufzubauen. Bin noch Anfänger und sags gleich vorraus "meine Englischkenntnisse=0".
    Bitte nicht mit dem Hinweis "ins Datenblatt schauen"! habe mir Bücher in Deutsch zugelegt.
    Angefangen mit den AVR hats mit einem Lernpacket vom Franzis-Verlag, hinzugekommen ist eine
    Programmiereinheit von myAVR, die ich über die ISP Schnittstelle erweitert habe.
    Über die Funktionsweise des Ortungspiepers (OP) werde ich später berichten, es würde jetzt zu weit führen.

    Als ersten Test habe ich mit Bascom eine IF / ELSE / ENDIF Routiene aufgebaut und komme hier nicht weiter.
    Sofort nach Zugeben der Versorgung blinkt die LED an PortB.0 obwohl keine Taste betätigt ist.
    Ich meinte zu wissen, das:
    wenn keine Taste gedrückt, wird zwischen Else und Endif abgearbeitet, (Input=High / Pullupp aktiviert)
    wenn Taste gedrückt, wird zwischen If und Else abgearbeitet.
    Rein vom logischen dürfte die LED doch nicht blinken, wo hab ich nur einen Denkfehler!

    'Datei-Name: tinypieper00.bas

    'Datum: 03.09.2011

    'Zielsetzung:Ortungspieper für 20/30/40 Minuten

    'Taste "Test" für Testbetrieb an PB3 Pin 2
    'Schalter "Sw1" für 20 Min. an PB4 Pin 3
    'Schalter "Sw2" für 30 Min. an PB1 Pin 6
    'Schalter "Sw3" für 40 Min. an PB2 Pin 7
    'Ausgang an PB0 Pin 5

    'System-Einstellungen
    '================================================= =====
    'Definition für ATtiny13
    $regfile "attiny13.dat"

    'Angabe der Taktfrequenz
    $crystal = 1000000


    'Konfiguration Ausgang / Eingänge:
    '================================================= =====
    'PORTB.0 als Output
    Piep Alias Portb.0
    Config Piep = Output


    Test Alias Pinb.3
    Config Test = Input
    Portb.3 = 1


    Sw1 Alias Pinb.4
    Config Sw1 = Input
    Portb.4 = 1

    Sw2 Alias Pinb.1
    Config Sw2 = Input
    Portb.1 = 1

    Sw3 Alias Pinb.2
    Config Sw3 = Input
    Portb.2 = 1

    'Hauptprogramm-Schleife

    Do
    Abfrage:
    If Test = 0 Then
    Goto Piepen
    Else
    Goto Zeit1
    End If

    Zeit1:
    If Sw1 = 0 Then
    Goto Piepen
    Else
    Goto Zeit2
    End If

    Zeit2:
    If Sw2 = 0 Then
    Goto Piepen
    Else
    Goto Zeit3
    End If

    Zeit3:
    If Sw3 = 0 Then
    Goto Piepen
    Else
    Goto Abfrage
    End If

    Loop

    Piepen:
    Piep = 1
    Wait 1
    Piep = 0
    Wait 1
    Goto Piepen

    Grüße

    Rolf

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Moin Rolf,

    vom reinen Code her würde ich auf den ersten Blick auch sagen, dass das Programm eigentlich in der "Piepen"-Schleife landen müsste, wenn keiner der vier Taster geschlossen wird. Auch wenn man den Code hier & da noch etwas verschlanken könnte - aber darum geht´s im Moment ja (noch) nicht

    Ich hatte einmal ein ähnliches Problem, als ganz am Anfang des Programms (noch vor der Do-Loop-Schleife) ein komplettes Byte mittels DIP-Schalter eingestellt und eingelesen werden sollte. Dabei kamen auch ganz andere Werte heraus, als mit dem Schalter eingestellt wurden.

    Das Problem ließ sich beheben, indem ich nach der Aktivierung der PullUp-Widerstände eine kurze Wartezeit programmiert habe (waitms 50). Irgendwie scheinen sich diese High-Pegel nicht unmittelbar sofort einzustellen, warum weiß ich auch nicht genau, denn die Zeitkonstante aus dem PullUp-Widerstand und der Eingangskapazität ist schon sehr kurz. Aber nach dieser kleinen initialen Pause ging´s einwandfrei: Taster offen = 1, Taster geschlossen = 0.

    Versuch´s einfach mal!


    Gruß,

    Daniel

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Daniel,
    danke für Deine Antwort!

    Habe Waitms 50 hinzu gefügt, leider nichts...es blinkt und blinkt.
    Das Ganze sieht jetzt in der Konfiguration der Eingänge so aus:

    Test Alias Pinb.3
    Config Test = Input
    Portb.3 = 1
    Waitms 50

    Sw1 Alias Pinb.4
    Config Sw1 = Input
    Portb.4 = 1
    Waitms 50

    Sw2 Alias Pinb.1
    Config Sw2 = Input
    Portb.1 = 1
    Waitms 50

    Sw3 Alias Pinb.2
    Config Sw3 = Input
    Portb.2 = 1
    Waitms 50

    Grüße

    Rolf

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Wie seltsam... dann hilft es wohl nur noch, das Problem etwas systematischer "einzukreisen".

    Dazu würde ich mal als erstes überprüfen, ob das Zusammenspiel zwischen Tastern und Eingangspegeln auch ordentlich funktioniert:

    Code:
    $regfile "attiny13.dat"
    $crystal = 1000000
    
    Piep Alias Portb.0
    Config Piep = Output
    
    Test Alias Pinb.3
    Config Test = Input
    Portb.3 = 1
    
    Do
    Piep = Test
    Loop
    Das ganze prüft natürlich nur einen Eingang, müsste also ggf. noch mit den anderen 3 Eingängen wiederholt werden. Aber dann weißt Du schon mal ob´s gleich schon an den Eingängen scheitert, oder doch noch ein Problem im Code steckt (das ich aber nach wie vor nicht sehe).

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Daniel,
    hab mich gleich ran gemacht und die Pegel an den Eingängen gemessen.
    Siehe da, Deine Vermutung lag richtig!
    an Portb.1 (definiert als Sw2) lagen etwa 1,xx Volt!
    Der Grund ist nicht der Taster noch der Pin-Eingang...sondern:
    Hier muß ich nochmal zurück greifen, um das Ganze zu verstehen.
    Ich legte mir eine myAVR zu. Der Sockel ist aber nur gedacht für Atmega8 (28 pol.)
    da sich hier eine 10 pol. ISP Schnittstelle befand, habe ich auf einer Lochrasterkarte
    einen Sockel für tiny13 aufgelötet und die Steuerleitungen (MISO/MOSI/SCK mit Vers.) rüber geführt.
    Damit haute die Programm. hin. Im Betrieb dann aber das Kabel von der myAVR dran gelassen. Hier muß
    mir die myAVR das High-Signal runter gezogen haben.
    Das kabel abgenommen und der Pegel lag sauber bei 5 Volt.
    Aber jetzt geht es erst richtig ins Eingemachte, denn ich benötige 3 Zeiten (20/30/40 Minuten)
    Und die sollte ich mit Timer 0 und Interrupt realisieren.
    Bevor es aber weiter geht, werde ich den Ortungspieper näher erklären.

    Danke nochmal

    Grüße
    Rolf

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Na, das ist doch schon mal ein guter Anfang!
    Dann bin ich mal gespannt auf Details zum Ortungspiepser - aber die genannten Aufgaben müssten sich mit einem Tiny13 problemlos realisieren lassen!

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Daniel,
    vorab gezielte Frage, bevor ich ins Eingemachte gehe.

    "Kennst Du Dich mit Timer vom ATmega8 aus?"

    Wenn ja komme ich drauf zurück.

    Grüße

    Rolf

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Bei 4 MHZ (Mega32) reichen bei meiner Multiplextastatur 3 NOPS aus, damit sie zuverlässig läuft.

    Code:
    reset portb.3
    config portb.3=output
    nop
    nop
    nop
    
    if pinb.4=0 then 'Taste gedrückt
    endif
    
    if pinb.5=0 then 'Taste gedrückt
    endif
    
    config portb.3 = input
    set portb.3
    ... mit nächsten Pin von vorn...
    Läuft zuverlässig. Ohne die Nops werden die ersten Tasten nicht zuverlässig erkannt

    Timer sind sehr gut in der Hilfe erklärt. Ich nutze gern einen 1ms oder für längere Zeiträume 10ms Timerdurchläufe. Diese dann einfach zählen und so die Zeitdifferenz ermitteln. Englischkenntnisse sind klar von Vorteil.

    Ich habe grad leider kein Bascom für Codeschnipsel hier.... Wenn Du die Bascom internen Uhrroutinen nutzt, kannst Du mit Sectic=... eine Sub angeben, welche jede Sekunde aufgerufen wird.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    43
    Beiträge
    379
    Hi,

    schau mal im Forum und in der Hilfe nach dem Befehl: debounce nach. Dieser Befehl ist sehr gut zum Tastendruck mit Entprellung gedacht.

    Gruß MAT

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61

    Thema: Ortungspieper

    Hallo an alle Modellflieger,
    bevor ich das Thema "Timer" anspreche ein paar Worte zum Ortungspieper.
    Seit Jahren haben wir auf dem Platz immer wieder Abstürze, wo Modelle in Maisfelder, im Wald, oder auf Bäumen
    hängen bleiben. Letztere sind oft schwer auszumachen, da man sie in Bäumen schwer findet.
    Die Käuflichen Pieper arbeiten nach dem Prinziep "Sender ausstellen, es ertönt ein Ton im Intervall.
    (Mit PCM-Empfängern geht das schon garnicht, mit 2,4 GHz Anlage auch nicht). Es kommt oft vor, daß trotz
    Sender ausmachen von dem Ton nichts zu hören ist, das Modell ist weit weg vom Standort gelandet, es liegt
    also ausserhalb der Tonreichweite. Man fährt gefrustet nach Hause.
    Das brachte mich vor 3 Jahren auf die Idee, das Prinziep "Sender ausmachen" anders zu gestalten.
    Mit einem Controller PIC der 12 Reihe baute ich eine neue Gangart auf.
    Auf der Lochrasterkarte befindet sich eine Taste "Reset" / eine Taste "Test" / 3 Dip-Schalter / der PIC
    und diverse SMD-Bauteile. Der Pieper wird an der Aussenwand des Modells montiert.
    Die Funktion im einzelnen:
    alle 3 DIP-Schalter stehen zu Beginn auf OPEN...
    das Modul wird an einen freien Empfängerkanal angesteckt, um mit ca. 5 Volt versorgt zu werden....
    Modell scharf machen....der Piper bleibt ruhig....
    Nur einmalig die Taste "Test" betätigen, der Intervallton beginnt zu piepen, d.h. alles ist ok, Taste "Reset"
    der Ton erlischt. (Dieser Ablauf wird nur getätigt, um alles zu kontrollieren).
    Modell wieder entschärfen....
    Jetzt kommt die Wahl des DIP-Schalters Sw1 oder Sw2 oder Sw3
    Sw1 ist gedacht für 20 Minuten (zu empfehlen für Hotliner oder auch Motormodelle).
    Sw2 ist gedacht für 30 Minuten (zu empfehlen für Segler mittlere Spannweite).
    Sw3 ist gedacht für 40 Minuten (für Segler größerer Spannweite).
    2 St. habe ich für Leute an der Wasserkuppe erstellt mit 60 Minuten.
    Also, d.h. man entscheitet sich, welcher Swx auf ON gestellt wird.
    Modell scharf machen und jetzt läuft die gewählte Zeit x ab, danach beginnt der Pieper im Intervall.
    Ich habe Modelle nach 14 Tagen wieder bekommen, da Pilzsammler oder Reiter dem Ton nachgegangen
    sind und das Telefon klingelte.
    Ist der Absturz so stark, daß die Batt. zerstört wird, dann hilft natürlich kein Pieper mehr.
    Aber wie ich schon schrieb, haben wir oder andere Leute in Bäumen das Modell gefunden.
    Nun wollte ich das Ganze mit einem Tiny13 aufbauen. Das Proplem sind die Zeiten 20, 30, 40 Minuten
    Bzw. besitzt der Tiny13 einen Timer1 oder würdet Ihr lieber einen anderen 8 Beiner nehmen.
    Mein Englisch ist Null und habe jetzt mit über 70 Jahren keine Lust mehr zum lernen.

    Ich hoffe, ich hab es verständlich geschildert

    Viele Grüße

    Rolf

    Hallo Daniel, meine Frage an Dich hätte ich mir sparen können, wenn ich sehe welche Hilfe Du
    anderen anbietest!

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Was ist das für ein Modell?
    Von mcrene im Forum Staubsaugerroboter / Reinigungs- und Rasenmähroboter
    Antworten: 1
    Letzter Beitrag: 09.12.2007, 19:10
  2. Farbsteuerung im HSV modell
    Von Jörn Arne im Forum Assembler-Programmierung
    Antworten: 5
    Letzter Beitrag: 06.10.2007, 00:40
  3. Funk Modell
    Von Nr. 5 im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 26.02.2007, 21:47
  4. NS5 als Modell?
    Von nemro im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 4
    Letzter Beitrag: 01.08.2006, 20:14
  5. 3D-Modell aus Sensorwerten???
    Von Papa Schlumpf im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 9
    Letzter Beitrag: 08.06.2006, 23:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •