- 3D-Druck Einstieg und Tipps         
Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 72

Thema: Probleme mit 22er-Lochscheiben

  1. #21
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    Anzeige

    Praxistest und DIY Projekte
    oh oh das habe ich übersehen - sorry.

    die takterhöhung (die sich ja damit erübrigt hat) bedeutet folgendes:
    der adc braucht einen takt, am besten zwischen 50 und 200 kHz. dazu wird aus dem systemtakt mithilfe eines prescalers ein takt generiert, der prescaler ist wählbar. gwht die frequenz über 200 khz raus, wird die messung schneller, aber eben auch ungenauer.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  2. #22
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    @sterthaler,
    ok, im sommer ist ja vieles anders

    wie mache ich es aber jetzt mit der ermittlung der werte aus den tests 2-5? Mit deinem tollen programm geht es ja nun nicht, wobei beim go es ja noch zu funktionieren scheint...
    gibt es eine möglichkeit die werte aus der myasuro.h bei der verwendung der lib 2.7 zu umgehen? Oder schiesse ich hier wieder mal übers ziel hinaus?
    gruß inka

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo inka,
    im Moment wüsste ich auch nicht, wie du an sinnvolle Werte kommst. (Ich krame mal bei mir nach einem schnellen Messprogramm)
    Du hast ja schon den Ansatz gewählt, dass du einfach versucht hast irgendwelche Werte einzutragen in der myasuro.h.

    Ich habe gerade nochmal deine Messwerte aus diesem Post von dir nach Excel geholt. Sie sehen meiner Meinung nach nicht besonders gut aus.
    Deine Daten von hier sehen da viel besser aus.

    Über ein Ziel hinausschiessen ist beim Asuro nicht möglich . Pech gehabt, du must weiter am Ball bleiben und nach Lösung dieses Problems, für alle die an diesem Thread beteiligt sind, rote Zahnräder mit 22 Löchern machen.

    Kannst du mal von deinem letzten Programm (von hier) mal die Datei *.lss posten.
    Darin ist dann das komplette Programm in Assembler zu finden. Ich will mal sehen, was für eine Mathematik (char, int, float) in der Funktion Turn() und auch Go() vom Compiler eingesetzt werden. Hier scheint es ja irgendwie Unterschiede zu geben.


    @damaltor
    irgendwie bringst du mich jetzt aber auf eine Idee.
    In der Encoder_Init() ist der Prescaler ja (warum auch immer) auf 128 gesetzt worden. Da die INT-Funktion für den ADC aber in der LIB nur die oberen 8 Bit nutzt, sollte es auf alle Fälle möglich sein den Prescaler zu ändern.
    Mindestens 64 ist möglich. Wie oben angegeben ist der ADC-Takt dann ja erst bei 125 kHz
    Und da die Genauigkeit ja nur mit 8 Bit genutzt wird, kann man bestimmt auch auf einen Prescaler von 16 mit einer Frequenz von 500 kHz runter-/hochgehen. inka, du kannst nochmal 22 Löcher dazubohren.

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  4. #24
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    ist nen versuch wert denk ich... zumindest mal testen. und genau genug denke ich sollte das sien, oder?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #25
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    @sternthaler
    also auf die schnelle - die anderen sachen dauern ein bischen - nochmal 22 löcher an dem umfang bohren, da bricht mir - dem feinwerktechniker - der kalter schweis aus
    @damaltor
    das thema hat sich etwas vom sterthalers schönem programm entfernt - sollte/könnte man nicht daraus einen getrennten thread machen?
    gruß inka

  6. #26
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    so, jetzt habe ich ein paar daten zusammen. mit diesem programm aus dem asuro band II habe ich die daten aufgenommen:
    Code:
    //* -------- Programm zum Loggen der Odometriedaten ----*/
    
    #include "asuro.h"
    #include "inka.h"
    #include <string.h>
    #include<stdio.h>
    
    int main(void) {
    unsigned int data[200][2];
    char c[12];
    int i;
    
    Init();
    WaitforStart();
    
    //motoren vorwärts
    MotorDir(FWD,FWD);
    MotorSpeed(160,160);
    //warten bis motoren drehzahl erreicht haben
    Msleep (1000);
    //odo-werte einlesen
    for (i=0; i<200;i++) {
    	OdometrieData(data[i]);
    }
    	//motoren stop
    	MotorSpeed(0,0);
    	//formatiert ausgabe odo-werte
    	for (i=0;i<200;i++){
    	sprintf(c,"%4d\t%4d\n\r",data[i][0],data[i][1]);
    	SerWrite(c,12);
    }
    while(1);
    return 0;
    }
    so sehen die daten der 22er scheiben aus:
    Code:
      35	  22
      25	  21
      31	  26
      20	  24
      19	  31
      20	  32
      21	  71
      28	 407
      29	 617
      43	 643
     313	 624
     599	 501
     646	 273
     644	  43
     485	  28
     125	  37
      33	  22
      24	  23
      27	  21
      20	  22
      31	  27
      21	  25
      27	  31
      28	  32
      32	  86
     111	 438
     478	 628
     626	 649
     635	 626
     637	 490
     475	 237
     135	  39
      32	  28
      26	  33
      27	  22
      21	  23
      25	  22
      21	  22
      35	  29
      28	  28
      39	  39
     224	 222
     546	 586
     631	 673
     632	 648
     530	 500
     194	 252
      41	  38
      26	  27
      30	  28
      22	  21
      21	  31
      26	  21
      26	  30
      35	  25
      58	  27
     428	  35
     600	  62
     632	 409
     626	 637
     518	 659
     198	 549
      32	 351
      31	  66
      24	  30
      27	  29
      24	  22
      31	  26
      28	  21
      34	  33
     172	  22
     500	  31
     634	  26
     647	  29
     588	  39
     311	 164
      39	 501
      28	 641
      24	 655
      26	 596
      21	 470
      27	 230
      24	  36
      35	  32
      36	  25
     244	  27
     536	  21
     652	  30
     653	  22
     633	  29
     427	  25
      48	  28
      39	  38
      24	 174
      23	 536
      20	 643
      20	 658
      25	 639
      24	 564
      31	 366
      38	  86
     301	  34
     575	  25
     669	  27
     656	  21
     492	  34
      82	  23
      29	  31
      29	  28
      22	  33
      30	 102
      20	 476
      28	 628
      24	 623
      26	 493
      36	 227
     128	  39
     496	  28
     642	  24
     647	  26
     518	  21
     167	  26
      32	  23
      25	  33
      25	  26
      20	  38
      24	  48
      20	 401
      35	 625
      28	 634
      46	 507
     314	 280
     586	  50
     638	  29
     601	  31
     330	  23
      34	  21
      31	  24
      24	  21
      23	  27
      21	  24
      20	  36
      25	  32
      24	  71
      34	 386
      48	 630
     437	 685
     634	 696
     597	 645
     303	 503
      34	 289
      30	  38
      22	  31
      24	  25
      18	  22
      24	  24
      20	  20
      23	  26
      26	  22
      36	  30
     250	  28
     571	  39
     625	  76
     417	 452
      44	 641
      28	 655
      31	 578
      20	 400
      20	 161
      22	  32
      20	  31
      27	  24
      26	  22
      38	  24
     165	  22
     547	  27
     653	  24
     649	  32
     455	  34
      57	 212
      33	 535
      24	 648
      27	 646
      20	 587
      27	 423
      22	 160
      24	  42
      30	  27
      34	  29
     217	  21
     561	  20
     648	  24
     495	  22
     93	  29
      28	  27
      24	  37
      24	  70
      19	 447
      23	 597
    das ist der letzter code des versuches mit go und turn. Mit der 3fachen ausführung des turn erreiche ich fast 90°, wie ihr sehen könnt, experimentiere ich weiter
    Code:
    #include "asuro.h"
    #include "inka.h"
    int i;
    
    int main (void)
    
    {
    
    Init();
    WaitforStart();
    
    EncoderInit ();
    
    for (i = 0; i < 4; i++)
    {
    StatusLED(YELLOW);
    Go(100,150);
    StatusLED(GREEN);
    Msleep(500);
    
    Turn(75,150);
    
    Turn(75,150);
    
    Turn(75,150);
    
    StatusLED(RED);
    Msleep(500);
    }
    return 0;
    }
    Kannst du mal von deinem letzten Programm (von hier) mal die Datei *.lss posten.
    Darin ist dann das komplette Programm in Assembler zu finden. Ich will mal sehen, was für eine Mathematik (char, int, float) in der Funktion Turn() und auch Go() vom Compiler eingesetzt werden. Hier scheint es ja irgendwie Unterschiede zu geben.
    *.lss habe ich leider nicht gefunden, arbeite mit avr-studio: eep, elf, hex, o, o.d, zumindest i projektverzeichnis...

    ansonsten, rote zahnräder habe ich genug, wer möchte ein paar? ein problem wird die lichtschranke...
    gruß inka

  7. #27
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    thread getrennt; 28.10.07; 22:20h

    gute idee =)

    Inka: wenn du den Titel des Threads ändern möchtest, dann klicke bei deinem ersten Beitrag auf edit.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  8. #28
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Die maximale Wandlungsgeschwindigkeit für den ATMega-ADC habe ich auch schon gesucht und gefunden:

    https://www.roboternetz.de/phpBB2/viewtopic.php?t=33070

    Hier die Anwendung:

    https://www.roboternetz.de/phpBB2/viewtopic.php?t=33228

    Schneller als der bas-Bildaufbau werden die Löcher der Codescheibe wohl nicht rotieren...

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo radbruch,
    na da soll mich doch der Schlag treffen, dass die Genauigkeit so gut ist, wie du in deinen Messungen rausbekommen hast:
    Bei der Schrittweisen Erhöhung der Abtast- und Auslesegeschwindigkeit habe ich übrigens keine nennenswerten Fehllesungen festgestellt. Bei der verwendeten linksbündigen Darstellung des Ergebnisses betrug die Abweichung bei der Messung einer 1,5V-Batterie nur 0,02V gegenüber einer langsamen Messung mit prescaler /64.
    Das hätte ich nie erwartet, dass dann noch immer ein Ergebnis rauskommt, bei dem man dann ja ca. 75 (1,5V Batterie / 0,02V Fehler = 75) verschiedene Werte bekommen würde.

    Als Konsequenz für inka, ist dann ja ein Bohrer zu finden, der ungefähr einen Durchmesser von 0,031415 mm hat, damit er ca. 2613 Löcher bohren kann

    Gruß Sternthaler

    P.S.: Da hast du aber wieder eine klasse Anwendung zusammengebaut.
    Lieber Asuro programieren als arbeiten gehen.

  10. #30
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    ROFL.. =) inka, viel spaß! da haste dann nach 16 umdrehungen des zahnrades einen überlauf in der ticks-zähl-variable... aber an sich hätte ich das nicht gedacht, muss ich ehrlich sagen!
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen