- Labornetzteil AliExpress         
Seite 8 von 14 ErsteErste ... 678910 ... LetzteLetzte
Ergebnis 71 bis 80 von 137

Thema: Minimallösung: Kamera für den RP6

  1. #71
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Da wird wohl ein Pointer ausbüchsen und in irgendwelche anderen Speicherbereiche schreiben die für die Motorsteuerung zuständig sind.
    Und die position dieser Speicherbereiche kann sich sogar von avr-gcc zu avr-gcc Version unterscheide.

    Dein PC schmeisst Dir bei sowas ne Schutzverletzung um die Ohren - auf dem RP6 gibts aber kein Betriebssystem


    *pixelzeiger=ADCH; // letzten ADC-Wert auslesen und wegwerfen
    *pixelzeiger++=ADCH; // aktuellsten ADC-Werte speichern
    }
    sei();

    pixelzeiger=&pixel[0];
    bildzeiger=&bildspeicher[32*rows];
    for (i=0; i<32; i++) *bildzeiger++ = *pixelzeiger++;
    ich wette hier bei den ganzen Zeiger operationen liegt irgendwo der Fehler begraben - aber ich habe keine Zeit das selbst zu testen.

    MfG,
    SlyD

  2. #72
    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

    Ich vermute, weil ich es im Moment nicht testen kann, dass hier der Fehler liegt:

    }while (rows++ <zeilen);

    Die innere while(lines--)-Schleife wird 32 mal durchlaufen, aber die Spaltenschleife 33 mal! row startet zwar mit 0 im ersten Durchgang, beendet aber nicht nach row==31 sondern führt noch einen Durchgang mit row==32 aus. Somit werden 32*33 Bytes eingelesen und die Zeiger schiessen aus dem 1K-Array. Warum ich das nicht selbst bemerkte ist mir schleierhaft, vielleicht liegt das wirklich am unterschiedlichen Speicheraufbau der GCC-Versionen. Oder an einem anderen Unterschied der meine Motorvariablen ausserhalb des Gefahrenbereichs anlegt. Lösung wäre einfach:

    }while (++rows <zeilen);

    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!

  3. #73
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    39
    Beiträge
    211
    also ich habe das direkt mal getestet... nun giebt mir das Terminal nur noch die Zahlenkolone aus, die linke Kette ist nun ruhig.

    Aber ein "bild" bekomme ich noch nicht.
    Code:
                                    0
    
                                    1
    
                                    2
    
                                    3
    
                                    4
    
                                    5
    
                                    6
    
                                    7
    
                                    8
    
                                    9
    
                                    10
    
                                    11
    
                                    12
    
                                    13
    
                                    14
    
                                    15
    
                                    16
    
                                    17
    
                                    18
    
                                    19
    
                                    20
    
                                    21
    
                                    22
    
                                    23
    
                                    24
    
                                    25
    
                                    26
    
                                    27
    
                                    28
    
                                    29
    
                                    30
    
                                    31
    carlitoco

  4. #74
    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

    Das sieht doch nicht schlecht aus. Scheinbar hängt er sich nicht mehr auf und die Einlesefunktion wird komplett ausgeführt sonst würde er wohl nicht zur Ausgabe gelangen. Die noch fehlenden Sternchen sollten nach dem Anpassen des Schwellwerts (90) erscheinen. Da bei der Zeilensuche im Wechsel auf >20 und <30 geprüft wird scheint das Signal der Kamera anzukommen. Abhängig vom Objekt (dicker schwarzer Strich auf weisem Papier wäre günstig) sollte nun der Schwellwert irgendwo zwischen 30 und 90 liegen. Am einfachsten vielleicht in einer Schleife ausprobieren:

    Code:
       uint16_t i, j, k;
    
    ...
    
       while(1)
       {
          bild_einlesen();
          
          for (k=30; k<90; k+=10)
          {
             writeString_P("Schwelle ");
             writeInteger(k,DEC);
             writeString_P(":\n\r");
    
          	for (i=0; i<32; i++)
          	{
             	for (j=0; j<32; j++)
             	{
                	if (bildspeicher[j+32*i] >k) writeString_P("*");
                   	else writeString_P(" ");
             	}
             	writeInteger(i,DEC);
             	writeString_P("\n\r");
          	}
          
          }
       	mSleep(200);
    	}
    Natürlich auch wieder nicht geteset, ich hoffe, es funzt so.

    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!

  5. #75
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    39
    Beiträge
    211
    Nun spuckt er das aus, nehme mal an das meine Cam andere Werte hat, was die licht sensorik angeht ?

    Code:
    [READY]
    Schwelle 30:
    
    *********************** ********0
    
    ********************************1
    
    ********************************2
    
    ********************************3
    
    ********************************4
    
    ********************************5
    
    ********************************6
    
    ********************************7
    
    ********************************8
    
    ********************************9
    
    ********************************10
    
    ********************************11
    
    ********************************12
    
    ********************************13
    
    ********************************14
    
    ********************************15
    
    ********************************16
    
    ********************************17
    
    ********************************18
    
    ********************************19
    
    ********************************20
    
    ********************************21
    
    ********************************22
    
    ********************************23
    
    ********************************24
    
    *************************** ****25
    
    ********************************26
    
    ********************************27
    
    ********************************28
    
    ********************************29
    
    ********************************30
    
    ********************************31
    
    Schwelle 40:
    
    *********************** ****** *0
    
    ********************************1
    
    ********************************2
    
    ********************************3
    
    ********************************4
    
    ********************************5
    
    ********************************6
    
    ********************************7
    
    ********************************8
    
    ********************************9
    
     ****** ****** *****************10
    
    ********************************11
    
    ********************************12
    
    ****** ****** ******************13
    
    ********************************14
    
    ********************************15
    
    ************** ****** ****** ***16
    
    ********************************17
    
    ********************************18
    
    ************* ****** ****** ****19
    
    ********************************20
    
    ********************************21
    
    ********************************22
    
    ********************************23
    
    ***** **************************24
    
    *************************** ****25
    
    ********************************26
    
    ********************************27
    
    ********************************28
    
    ********************************29
    
    ***** ****** ****** ************30
    
    ********************************31
    
    Schwelle 50:
    
    *********************** ****** *0
    
    ********************************1
    
    ********************************2
    
    ********************************3
    
     ****** ****** *****************4
    
    ********************************5
    
    ********************************6
    
    ****** ****** ******************7
    
    ********************************8
    
    ********************************9
    
     ****** ****** ****** ****** ***10
    
    ********************************11
    
    ********************************12
    
    ****** ****** ****** ****** ****13
    
    ********************************14
    
    ********************************15
    
    ************** ****** ****** ***16
    
    ********************************17
    
    ***** ****** ****** ************18
    
    ************* ****** ****** ****19
    
    ********************************20
    
    **** ****** ********************21
    
    ********************************22
    
    ********************************23
    
    ***** ****** ****** ****** *****24
    
    *************************** ****25
    
    ***** ****** *******************26
    
    **** ****** ****** ****** ******27
    
    ********************************28
    
    **** ***************************29
    
    ***** ****** ****** ****** *****30
    
    ********************************31
    
    Schwelle 60:
    
     ***  ****** ** ******  **  ** *0
    
    ****   *****  **  ** ***  * * **1
    
     ******  ******** ** ********  *2
    
    **** **  ******  **  ** ***  ***3
    
     ****   *  **  **  ** *** ** * *4
    
     ******  *** ******  * ******  *5
    
      **  **  ** *** ** * **** * ** 6
    
    ** **  **  ** ***  * * **** *  *7
    
      * * **** * ** ******  *** **  8
    
      ** ***  *   **   *  *** ** * *9
    
     *  *** **  *  *****  * * ** ***10
    
     * * ****** **  ******  **  ** *11
    
    *  ** *****  * * ** ***  * **** 12
    
    **  ** *** ** * **** * *  * ****13
    
     **   *  **  **  ** *** ** * ***14
    
    * ** * **** * ** * ****   ** ** 15
    
    *****  ******  **  ** ***  * * *16
    
     **  **  **  **  *   **** *  * *17
    
    * **  **  ** ***  * * ** * *  **18
    
    ***** ***  ** ***  * * **   *  *19
    
      *** ** *   *****  **  ** ***  20
    
      ** ***  * * **   *  *** ** ***21
    
    **  ** ***  ******** ** ********22
    
     *** *****  *** ** ***  * * **  23
    
    *  ** *****  * **** ***  * **** 24
    
    **  ****** **** ********  * ****25
    
    ***   *  *** **  ** ****** * ***26
    
    ***  * **** ***  * ****   *  ** 27
    
    *****  *** ** ***  ******  *** *28
    
     **  **  ** *** ** * **** * *  *29
    
    * **  **  ** ***  * * **** * ** 30
    
    ** ** ***  ******  *** ******  *31
    
    Schwelle 70:
    
                                    0
    
                                    1
    
                                    2
    
                                    3
    
                                    4
    
                                    5
    
                                    6
    
                                    7
    
                                    8
    
                                    9
    
                                    10
    
                                    11
    
                                    12
    
                                    13
    
                                    14
    
                                    15
    
                                    16
    
                                    17
    
                                    18
    
                                    19
    
                                    20
    
                                    21
    
                                    22
    
                                    23
    
                                    24
    
                                    25
    
                                    26
    
                                    27
    
                                    28
    
                                    29
    
                                    30
    
                                    31
    
    Schwelle 80:
    
                                    0
    
                                    1
    
                                    2
    
                                    3
    
                                    4
    
                                    5
    
                                    6
    
                                    7
    
                                    8
    
                                    9
    
                                    10
    
                                    11
    
                                    12
    
                                    13
    
                                    14
    
                                    15
    
                                    16
    
                                    17
    
                                    18
    
             
    [RP6BOOT]
    habe jetzt die werte auf

    danke und gruss
    Code:
     for (k=60; k<70; k+=10)
    verändert um mal eine "Essenz" des Ganzen zu erhalten

    [edit]
    spannend zu beobachten ist, dass die schwell-werte sich verändern bei anschluss der cammera an ein TV. D.h. sie leigen ohne TV ca. bei 60 mit TV angeschlossen darunter.
    carlitoco

  6. #76
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    for (k=60; k<70; k++)

    Was wird da eigentlich fotografiert?
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #77
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    39
    Beiträge
    211
    schwarzer balken auf hellem untergrund
    carlitoco

  8. #78
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Seltsam, der Balken lässt sich nicht mal erahnen. Irgendwas stimmt noch nicht. Ein paar Ausreisser sind normal, aber deine Werte scheinen mir fast zufällig zu sein. Versuche mal eine halb schwarze, halb weise Fläche, Kante waagrecht oder senkrecht. Oder versuche das 256-Bytes-am-Stück mit schwarzer und mit weiser Fläche:
    Code:
      // Liest ab der 100. Zeile 256 Werte am Stück ein
    // und sendet die Daten als Tabellenvorlage zum PC.
    
    #include "RP6RobotBaseLib.h"
    
    int main(void)
    {
    uint8_t pixel[256],*pixelzeiger, *endezeiger;
    uint8_t vsync, lines;
    
       initRobotBase();
       extIntOFF();
       //powerON();
    // interne Referenz 2,56V, linksbündig, Kanal ADC4
       ADMUX = (1<<REFS1) | (1<<REFS0)  | (1<<ADLAR) | 4;
    // free running triggern
       SFIOR = (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
    // kein interupt, einschalten, prescaller /2
       ADCSRA = (0<<ADIE) | (1<<ADEN) | (0<<ADPS2) | (0<<ADPS1)  | (1<<ADPS0);
    // free running aktivieren, altes Flag löschen
       ADCSRA |= (1<<ADATE) | (1<<ADIF);
    // Initialisierung starten
       ADCSRA |= (1<<ADSC);
    
       while (!(ADCSRA & (1<<ADIF)));
       ADCSRA |= (1<<ADIF);
    
       pixelzeiger=&pixel[0];
       endezeiger=&pixel[255];
       lines=100;
       cli();
    
       do // vsync abwarten
       {
          vsync=0;
          while (ADCH > 20);
          while (ADCH < 30) vsync++;
       }while (vsync < 40);
       
       while (lines) // zeile abwarten
       {
          while (ADCH > 20);
          while (ADCH < 30);
          lines--;
       }
    
    // 256 Werte am Stück einlesen und als Basis für ein Diagramm senden
       do *pixelzeiger=ADCH; while (pixelzeiger++ < endezeiger);
       sei();
    
       writeString("------------------------\n\r");
        lines=0;
        do
       {
          writeInteger(lines, DEC);
          writeString_P("; ");
          writeInteger(pixel[lines], DEC);
          writeString_P("; ");
          writeString("\n\r");
       }while (++lines);
    
       while (1); // ;)
       return(0);
    }
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #79
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    39
    Beiträge
    211
    folgende ausgabe:
    [code]
    carlitoco

  10. #80
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.03.2010
    Ort
    Hamburg
    Beiträge
    333
    Erstmal Sorry das ich diesen alten Beitrag ausgrabe.

    Aber ich habe mal ne Frage undzwar habe ich das Kamera Modul 1 vom großem C wie auch im ersten beitrag beschrieben und möchte es direkt an meinen RP6 anschließen nun finde ich den E_INT1 nicht warscheinlich mein Fehler und nun noch eine Frage undzwar brauche ich dafür noch etwas außer dem Code oder klapt das dan so?

Seite 8 von 14 ErsteErste ... 678910 ... LetzteLetzte

Stichworte

Berechtigungen

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

Labornetzteil AliExpress