- 3D-Druck Einstieg und Tipps         
Seite 12 von 14 ErsteErste ... 21011121314 LetzteLetzte
Ergebnis 111 bis 120 von 134

Thema: ASURO emittelt Werte für Lib V2.70 myasuro.h selber

  1. #111
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Asko
    Registriert seit
    02.12.2011
    Ort
    Schildow
    Alter
    65
    Beiträge
    106
    Anzeige

    Praxistest und DIY Projekte
    Hallo Paul
    Ich hatte genau das selbe ergebnis wie Du, er fuhr nur rueckwarts im Kreis.
    Danke an Valen fuer den Hinweis der Initialisierung.
    so funktionierts:


    #include "asuro.h"


    int main(void)
    {

    Init();
    EncoderInit ();

    while (1)
    {

    Go(100,100);

    Turn(90,150);
    Msleep(200);
    Turn(120,250);
    Msleep(200);
    Go(300,100);
    Msleep(1000);


    }
    return 0;
    }

    Gruss Asko.
    Vorsicht !
    Auf einer Kugel ist es von jedem Punkt aus abschuessig !

  2. #112
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2012
    Beiträge
    13
    danke, ich werds morgen früh gleich ausprobieren

    eine frage noch eben,

    die parameter die an "go" übergeben werden, sind ja "distance" und "speed" , und was genau sagt das distance aus? wird der eingegebene wert von mir in mm oder cm gemessen? oder wie kann man das verstehen?

  3. #113
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Asko
    Registriert seit
    02.12.2011
    Ort
    Schildow
    Alter
    65
    Beiträge
    106
    Hallo Paul
    Das "distance" sind mm. Maximalwert ist +/- 360. Also kann er so max 36 cm fahren (pro ein befehl).
    Ich hab das jetzt mal mit GoTurn ausprobiert. Aber irgendwas haut bei mir mit den Werten noch nicht genau hin.
    Code:
    #include "asuro.h"
    
     int main(void)
     {
     
     Init();
     EncoderInit ();
     
     while (1)
     {
     GoTurn(100,0,160);
     GoTurn(0,90,160);
     Msleep(200);
     GoTurn(0,-180,160);
     Msleep(200);
     GoTurn(0,90,160);
     Msleep(200);
     GoTurn(200,0,160);
     Msleep(200);
     GoTurn(-300,0,160);
     Msleep(1000);
     }
     return 0;
     }
    kannst ja mal ausprobieren, was Dein Asuro dazu sagt.
    Auf jedenfall spielt hier schon der Schlupf der Raeder eine Rolle.
    Ich haette nicht gedacht, dass das so auffaellt.

    Gruss Asko.
    Vorsicht !
    Auf einer Kugel ist es von jedem Punkt aus abschuessig !

  4. #114
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Wann Asuro nicht die richtige abstand fahrt muss man MY_GO_ENC_COUNT_VALUE (in asuro.h) anpassen. Das ist die Abstand der Asuro fahrt pro Encoder Tick in mm, aber multipliziert mit Zehntausend. Die Einheit dieser Wert ist also ein Zehntel Mikrometer. Wenn er nur 18 cm fahrt wann er 20 cm fahren soll, muss man die wert mit den Fraktion 20/18 vergrössern.

    Aber diese wert wird auch gemessen mit das Programm das im ersten Bericht diese Thema beschrieben wird.

  5. #115
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Asko
    Registriert seit
    02.12.2011
    Ort
    Schildow
    Alter
    65
    Beiträge
    106
    Hallo Valen

    Danke fuer die genaue erklaerung der Werte.
    Das Programm hatte ich benutzt um die Werte zu ermitteln.
    Ich habe jedoch fuer die hell/dunkel-Werte erstaunlich niedrige Werte.
    Siehe mein Post vom 24.01.2012
    Ich werde den Test nochmal machen muessen.

    Gruss Asko.
    Vorsicht !
    Auf einer Kugel ist es von jedem Punkt aus abschuessig !

  6. #116
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2012
    Beiträge
    13
    so das programm hat nun funktioniert ! danke euch für eure hilfe.

    mein asuro macht zwar keine genauen 90° winkel aber kommt nah ran, das mag wohl hier an den anderen lichtverhältnissen liegen und evtl an meine groben zahnradeinteilung.

  7. #117
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Zitat Zitat von Asko Beitrag anzeigen
    Hallo zusammen

    Durch einen Link in einem anderen Beitrag bin ich erst hier drauf gestossen.
    Jetzt kapiere ich ein wenig was das mit der myasuro.h auf sich hat.
    Also nix wie Programm heruntergeladen und ausprobiert.
    Bloss jetzt macht mich einiges stutzig.
    Bei den Odometriewerten stehen ja default 160/140 (hell/dunkel) in der myasuro.h.
    Sterntaler schreibt sogar das seine Werte bei ca.300 liegen.
    Aber bei mir kommen keine Werte ueber 90 raus.
    Ob ich den Test bei Tageslicht mache, im halbdunkeln, mit Taschenlampe angeleuchtet
    oder sogar direkt unter der hellen Lupenleuchte.
    Es kommen immer aehnliche Werte raus: fuer hell 88-90 und fuer dunkel 56-57.
    Kann das normal sein ?? Sind die Exemplarstreuungen der ATmega8 so gross ??

    Das sich mein Asuro anders verhaelt als andere ist mir schon klar, ist js schliesslich meiner.

    Gruss Asko.
    Sind die richtige Widerstanden eingelötet (R18,R20= 4K7). Hast du schon versucht fuer die Odometriestelle ein kleine Gehause zu machen. Niedrige werten meinen die IR-fototransistoren sind Hell beleuchtet. Höhe Werten meinen die Transistoren bekommen kaum Licht. Also vermute ich das die Umgebungslicht zu gross ist das den Geberscheibe Konstrast vernichtet. Mit ein eingeschränkteres Sicht auf den Schwarz/Weis Ubergang, und absperren von Rücklicht, soll den Differenz verbessern. Ein vertikale Schlitz macht den ubergang von Schwarz und Weiss auch schneller. (nicht ein Sinus Kurve aber mehr ein Rechtecksignal )

    Oder die OdometrieLEDs sind einfach zu hell. Richtige Widerstand R22?
    Geändert von Valen (08.02.2012 um 17:08 Uhr)

  8. #118
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Asko
    Registriert seit
    02.12.2011
    Ort
    Schildow
    Alter
    65
    Beiträge
    106
    Hi Valan

    Die Widerstaende sind richtig, das hab ich x-mal nachgemessen.
    Das komische ist doch, das ich die Messung ja eigentlich mit anleuchten einer Taschenlampe zB. "aus dem Tritt" bringen muesste.
    Aber was ich auch anstelle, es kommen immer sinnvolle, wenn auch niedrige" Werte bei raus.
    Es ist mir schon klar, das, je groesser die differenz zwischen Hell und dunkel ist, die Sache besser funktioniert.
    Aber genau dies gross differenz kriege ich nicht hin.
    Nun habe ich schon ueberlegt, die Schwarzen Felder mit einem Edding nachzuzeichnen.
    Aber bei einem Test auf einem Stueck papier musste ich feststellen, das die oberflaeche dann "schillert", also auch reflektiert.
    Demzufolge hab ich das erst mal gelassen.
    Man koennte vielleicht noch die Weissen Felder mit einer speziellen reflektierenden Farbe bemalen, aber da faellt mir gerade
    nichts zu ein. Oder sagen wir´s mal besser, ich habe gerade nix brauchbares da.
    Hast Du Dir mein Programm von gestern mal angesehen ??
    Was mir naemlich nicht ganz klar ist, ist folgendes:
    Ich moechte die Werte aus der myasuro.h benutzen. Muss ich die explizit aufrufen ??
    also mit : #include myasuro.h oder wie geht das auch ohne.
    Ich verwende ja die befehle GoTurn usw. die stehen ja auch nicht in der asuro.h.
    Und trotzdem werden sie sauber abgearbeitet. Das Makefile sorgt dafuer, das asuro.c geladen wird.
    Und in der Asuro.c steht der aufruf zur mayasuro.h.
    Schreibe ich #include myasuro.h in mein programm, kommt kein fehler.
    Lass ich es weg, kommt auch kein Fehler, und es funktioniert genauso.
    Ich bin da ein wenig irritiert.
    Ich kann C nur lernen, indem ich beispiele verstehen lerne.
    Und das verstehe ich zZ. nicht .
    Es waere schoen, wenn Du mich "aufklaeren" koenntest....nicht sexuell...eher programmtechnisch...hi.

    Gruss Asko.
    Vorsicht !
    Auf einer Kugel ist es von jedem Punkt aus abschuessig !

  9. #119
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Zitat Zitat von Asko Beitrag anzeigen
    Hi Valan

    Die Widerstaende sind richtig, das hab ich x-mal nachgemessen.
    Das komische ist doch, das ich die Messung ja eigentlich mit anleuchten einer Taschenlampe zB. "aus dem Tritt" bringen muesste.
    Aber was ich auch anstelle, es kommen immer sinnvolle, wenn auch niedrige" Werte bei raus.
    Es ist mir schon klar, das, je groesser die differenz zwischen Hell und dunkel ist, die Sache besser funktioniert.
    Aber genau dies gross differenz kriege ich nicht hin.
    Nun habe ich schon ueberlegt, die Schwarzen Felder mit einem Edding nachzuzeichnen.
    Aber bei einem Test auf einem Stueck papier musste ich feststellen, das die oberflaeche dann "schillert", also auch reflektiert.
    Demzufolge hab ich das erst mal gelassen.
    Man koennte vielleicht noch die Weissen Felder mit einer speziellen reflektierenden Farbe bemalen, aber da faellt mir gerade
    nichts zu ein. Oder sagen wir´s mal besser, ich habe gerade nix brauchbares da.
    Das abdecken der Sensoren soll auch sicher helfen!

    (Wenn ich mit ein Scheinwerfer in deine Gesicht strahle wirst du mich auch nicht erkennen! )

    http://www.asurowiki.de/pmwiki/pmwik...ieModifikation

    Hast Du Dir mein Programm von gestern mal angesehen ??
    Was mir naemlich nicht ganz klar ist, ist folgendes:
    Ich moechte die Werte aus der myasuro.h benutzen. Muss ich die explizit aufrufen ??
    also mit : #include myasuro.h oder wie geht das auch ohne.
    Ich verwende ja die befehle GoTurn usw. die stehen ja auch nicht in der asuro.h.
    Und trotzdem werden sie sauber abgearbeitet. Das Makefile sorgt dafuer, das asuro.c geladen wird.
    Und in der Asuro.c steht der aufruf zur mayasuro.h.
    Schreibe ich #include myasuro.h in mein programm, kommt kein fehler.
    Lass ich es weg, kommt auch kein Fehler, und es funktioniert genauso.
    Ich bin da ein wenig irritiert.
    Ich kann C nur lernen, indem ich beispiele verstehen lerne.
    Und das verstehe ich zZ. nicht .
    Es waere schoen, wenn Du mich "aufklaeren" koenntest....nicht sexuell...eher programmtechnisch...hi.

    Gruss Asko.
    Die myasuro.h werten werden automatisch in dem Lib eingebaut wen du die Lib Compilierst. (Mit make-lib.bat) In zbs. encoder_low.c, das die "Low-level" Encoder Funktionen enthält (Tick-zahlung, EncoderStart/Stop usw.), steht schon das "#include myasuro.h"Befehl. Auch in switches.c das die Taster wert-Anpassungsfaktor benötigt. In dein Programm kannst du die definierte Werten wie Konstanten verwenden, aber ich sehe nicht wirklich das Vorteil davon. So von dir aus ist das nicht unbedingt nötig. Nur die Lib neu compilieren wann irgendwie die Odometrie-empfindlichkeit sich ändert wegen Hardware Modifikationen.

    Den Subroutine GoTurn steht am Anfang von den encoder.c Datei. In Asuro.c steht eigentlich sehr wenig, nur Init, und einiger Interrupt-Funktionen. Die verschiedene Funktionen sind in mehrere .c Dateien untergebracht. Dadurch ist das alles aber sehr übersichtlich. Und es ist auch gut Dokumentiert. Sehe die Dateien mal durch. .C Dateien enthalten die Code, .H Dateien haben meistens nur Beschreibungen von der Art von Funktionen, Variablen und Konstanten. Wie das genau in Assembler umgewandelt wird und/oder dann als Objekt-dateien zusammen gestellt wird (und zu dein Programm gelinkt wird) ist mir aber auch Abrakadabra.

  10. #120
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Asko
    Registriert seit
    02.12.2011
    Ort
    Schildow
    Alter
    65
    Beiträge
    106
    ...ist mir aber auch Abrakadabra....
    Prima Valen...besser kann man das nicht beschreiben....

    Gruss Asko.
    Vorsicht !
    Auf einer Kugel ist es von jedem Punkt aus abschuessig !

Seite 12 von 14 ErsteErste ... 21011121314 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress