-
        

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

Thema: Attiny13 zur Servoansteuerung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.01.2012
    Beiträge
    30

    Attiny13 zur Servoansteuerung

    Anzeige

    Hallo,

    mein Name ist Jürgen und ich möchte mich in der Programmierung versuchen.
    Die üblichen "Spielchen" mit LED habe ich hinter mir. Es hat soweit auch alles geklappt.

    Nun wollte ich eine Modellbau-Servo ansteuern. Leider klapt das so ganz uns garnicht.

    Ich wollte ein Programm schreiben wo zwei Positionen im wechsel angefahren werden.

    Verwenden wollte ich einen ATTiny13. Beispiele habe ich einige gefunden. Nur alle funktionieren nicht.

    Daher hier nun mein Quelltext, den ich soweit wie möglich schon abgespeckt habe.

    $regfile = "ATtiny13.dat"
    $crystal = 9600000
    $hwstack = 10 ' default use 32 for the hardware stack
    $swstack = 10 ' default use 10 for the SW stack
    $framesize = 20 ' default use 40 for the frame space
    Config Servos = 1 , Servo1 = Portb.1 , Reload = 2
    Config Pinb.1 = Output
    Enable Interrupts
    Do
    Servo(1) = 70
    Waitms 10000
    Servo(1) = 100
    Waitms 10000
    Loop
    End


    Leider fährt das Servo nur in einen Endstellung und versucht noch weiter zu drehen.

    Mit dieer zeile "$crystal = 9600000" habe auch schon einwenig rumgespilet. Leider ohne Erfolg.

    Muß ich im Bascom auch noch was umstellen?

    Für jede Antwort Dankbar

    Jürgen

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Zitat Zitat von Juergen H. Beitrag anzeigen
    Mit dieer zeile "$crystal = 9600000" habe auch schon einwenig rumgespilet. Leider ohne Erfolg.
    $crystal MUSS nach dem tatsächlichen Systemtakt gesetzt werden. Dazu gibt es gerade ein Parallelthread: http://www.roboternetz.de/community/threads/59229-Tiny13(A)-PWM-crystal-Komisches-Verhalten


    Zitat Zitat von Juergen H.
    Config Servos = 1 , Servo1 = Portb.1 , Reload = 2
    Der Reload Wert ist zu klein. Hier auch dazu 'ne schöne Erklärung:
    http://www.roboternetz.de/community/...l=1#post312229

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    14.01.2012
    Beiträge
    30
    Hallo Searcher,

    vielen Dank für die Antwort.

    Ich bin zwar sicherlich nicht der Experte in Sachen Elektrotechnik, aber ganz so wie es mir hier passiert habe ich noch nicht gehabt. Mir macht das ganze hier(Bascom) irgendwie nicht den tollsten Eindruck.

    Von Vorn
    Eingentlich wollte ich nur eine Platine nachbauen http://sammler.blue-parrot.de/projek...ervo/index.php

    Weil ich aber gerne das mache was ich nicht so gut kann dachet ich mir, fängste das Tema mal von Vorne an.

    Also bei Reichelt bestellt "Programmer f. AVR,STK500,ATmega,ATtiny,AT90", gedacht, nimmste was fertiges, Problem kommen bestimmt noch. USB sollte es auch sein. Die anderen Port haben Ihre dienste getan, soll heißen sind veraltet.

    Bascom viel mir bei den Internet nachforschungen immer wieder auf, OK, nimmste, wenn das so viele haben.

    Also nach der Lieferung von Reichelt sammt einiger ATiiny13, lost geht's.

    Treiber und Bascom installiert und die LED`s sollten leuchten. Schade, so schnell schießen die Preußen nicht.

    Nach einwenig Internetsuche Atmel Studio 6.0 installiert, wollte ich schreiben. Erst Updates. (XP-Rechner SP2 war mal)

    Dabei sind leider andere Programme .... .

    Es geht so weiter.

    Seit zwei Woche/Vor zwei Woche habe ich dann endlich die ersten LED's leuchten gesehen.

    Ja dann kann es ja jetzt losgehen mit dem eigentlichen Thema Modellbau Servos. Das Programm geladen geflascht und dann,
    alle Programme die ich getestet haben gingen nicht Richtig. Aber wozu gibt es Internet.

    Da habe ich schnell, dank Dir, eine Antwort erhalten. Also das ganze gelesen, wieder mal nur, wenn überhaupt, die hälfte verstanden. Aber ich denke die Fusebits müssten, neben mir, als Übeltäter feststehen.

    Heute wollte ich dann frisch ans werk und, der Rechner hat sich aufgehangen, ganz. Also alles von Vorn.

    Tut mir leid wenn ich euch damit Langweile aber das ganze nervt mich ziemlich. So tief wollte ich eigentlich nicht einsteigen.
    Ein paar ideen aus dem internet für die eigenen zwecke "verfeinern" und gut ist.

    Ich schreibe übrigens wirklich icht oft solche langen Text. Bin gerade am deinstallieren der Programme...


    Gruß
    Jürgen


    PS. Nein, ich gebe nicht auf.

    Jetzt hats auch noch zu lange gedauert. Der Admin hat mich rausgekegelt.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.545
    Im Link habe ich eine Zip gefunden. Diese enthält 2 Softwäreversionen mit den C-Dateien, Makefiles, Hexfiles. Wenn du die Programme ohne Änerdung verwenden willst brauchst du nur die Hexfiles auswählen (je nachdem was du willst) und diese in den µC schreiben (flashen). Der µC sollte ab diesem Zeitpunkt einsatzbereit sein. Du musst aber noch die Fuses richtig einstellen bzw kontrollieren. Diese stehen in den C-Dateien.

    Wenn du etwas ändern willst öffnest du die C-Dateien (mit dem AVR Studio, nicht mit Bascom) und passt das Programm an. Du musst das Programm übersetzen und anschließend in den µC schreiben, da brauchst du noch die richtige makefile (die beim Download dabei ist).

    MfG Hannes

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    14.01.2012
    Beiträge
    30
    Hallo Hannes,

    das die Programme in C sind habe ich bemerkt.
    In meinen Größenwahn wollte ich die in Bascom "Neu" schreiben.
    Z.Z installiere ich die Programme wieder neu.
    Ich werde es auf jedenfall weiter versuchen, obwohl ich von den Fuses keine Ahnung habe.
    Von den möglichen Frequenzen habe ich immer 3 zur auswahl. Also spätesten im dritten Anlauf sollte es klappen, HOFFE ICH
    Dann noch die Wiederholrate, ... .


    Gruß

    Jürgen

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    14.01.2012
    Beiträge
    30
    Ganz so einfach ist es dann doch nicht.
    Kann mir jemand sagen ob das so passt.Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt.jpg
Hits:	30
Größe:	49,5 KB
ID:	23280


    Gruß

    Jürgen

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hi Jürgen,
    nach Deinem screenshot läuft Dein Tiny mit 1,2MHz weil das Fuse bit E (Divide by 8 ) auf ON steht und der Oszillatortakt auf 9,6Mhz.

    Um den Tiny auf 9,6MHz zu stellen müstest Du auf die Zeile mit dem Fusebit E klicken und auf OFF stellen. Danach müßte rechts der WRITE FS Button "bedienbar" werden. Mit dem schreibst Du die Änderung zum µC.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo Jürgen.
    hab mir jetzt mal Deinen Frust von oben in Ruhe durchgelesen. Ich glaub das hat jeder Anfänger mehr oder minder stark durchgemacht . Ich bin sicher, wenn Du da mal durch bist wirst Du viele Einsatzmöglichkeiten von µCs an der Modellbahn ??? finden und froh sein, daß Du nicht aufgegeben hast.

    Nochmal zum Programm: Weil ich gerade einen Testaufbau habe, hab ich den SERVO Befehl in Bascom auf einem anderen µC (Mega88A) ausprobiert - hab kein Tiny13. Sollte aber egal sein. Ich bin auch gefrustet , da ich mit unterschiedlichen Taktfrequenzen, Reload Werten und Werten im Servo Array, SERVO(1), die Pulsweite nicht wirklich vorher bestimmen kann. Außerdem bringt mir der Befehl die WAIT Statements anscheinend aus dem Tritt (Wartezeiten stimmen nicht mehr)

    Bei 8MHz Takt und Reload Wert von 5 gibt es eine Servosignalfrequenz von ca 50Hz.
    Für SERVO(1) tun es dann die Werte 100 bzw 200 für 1ms bzw 2ms Pulsweite.
    Für die 9,6MHz des Tiny13 würd ich auch mit den Werten beginnen zu probieren.

    Verändere ich nur den Reload Wert, ändert sich gleichzeitig Signalfrequenz und Pulsweite bei gleichen SERVO(1) Werten

    Wichtig ist eine gute starke, möglichst vom µC unabhängige Stromversorgung des Servos!

    Ich benutze den SERVO Befehl selbst normalerweise nicht, sondern schreibe mir meine eigenen Routinen in BASCOM. Dafür ist der Tiny13 aufgrund seines geringen Speichers und Abwesenheit eines 16Bit Timers nicht so gut geeignet - geht wohl aber eben umständlich.

    Welche BASOM Version benutzt Du? Meine ist die 2.0.5.0 Demo. Könnte sein, das der SERVO Befehl sich in unterschiedlichen Versionen anders verhält.

    Insgesamt bin ich mit Bascom zufrieden, trotz einiger Macken, die man umgehen kann.

    (Hoffentlich hab ich jetzt nicht nur Mist getestet)
    Viel Erfolg
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    14.01.2012
    Beiträge
    30
    Hallo Searcher,

    vielen Dank für Deine Hilfe. Durch Deine Hilfe habe ich es geschaft, mit folgenden Programm

    $regfile = "ATtiny13.dat"
    $crystal = 9600000
    $hwstack = 10 ' default use 32 for the hardware stack
    $swstack = 10 ' default use 10 for the SW stack
    $framesize = 20 ' default use 40 for the frame space
    Config Servos = 1 , Servo1 = Portb.1 , Reload = 5
    Config Pinb.1 = Output
    Enable Interrupts
    Do
    Servo(1) = 65
    Waitms 300
    Servo(1) = 230
    Waitms 200
    Loop
    End

    und diesen Fuseligen Fu..Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt2.jpg
Hits:	38
Größe:	49,4 KB
ID:	23287

    und dieser Version

    Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt3.JPG
Hits:	26
Größe:	40,3 KB
ID:	23289

    Schnell speichern bevor der Admin mich rauswirft

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    14.01.2012
    Beiträge
    30
    DAs Servo läuft wunderbar von links nach rechts. Nicht bis zum Ende, das Servo brauche ich ja noch.

    Jetzt werde ich versuchen eine Taste einzubauen.
    Dann dei Endwerte von Aussen zu manipulieren.
    Dann.... .

    Ich hoffe Du hast recht und ich habe noch einige Einsatzmöglichkeiten finde. Ideen hätte ich schon genug, nur sollte es dann nicht so früh so ..... ausehen.

    Nochmals Danke für Deine Hilfe.

    An den Admin: Im Vorherigen Betrag sollte ein Smilie stehen, sorry.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Servoansteuerung
    Von Gremlin im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 29.09.2011, 22:07
  2. Servoansteuerung...
    Von Quattro im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 24.09.2007, 20:50
  3. servoansteuerung mit ATTINY13
    Von stupsi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 25.02.2007, 20:21
  4. servoansteuerung
    Von zwerg1 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 21
    Letzter Beitrag: 26.07.2005, 00:38
  5. Servoansteuerung
    Von Gast6 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 21.01.2005, 09:11

Berechtigungen

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