-
        

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

Thema: Projekt: RP6 mit Snake Vision

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561

    Projekt: RP6 mit Snake Vision

    Anzeige

    Hallo

    Ich wollte hier nochmal mein Projekt vorstellen in dem ich einen Asuro Snake Vision Sensor an den RP6 angeschlossen habe.
    Mit diesem ist er in der Lage zB Teelichter zu finden:

    Video 1: http://www.youtube.com/watch?v=t3B6QOD3lSI
    Video 2: http://www.youtube.com/watch?v=DYTQs0__HAI
    Video 3: http://www.youtube.com/watch?v=U5HgMhHF9DU
    Video 4: http://www.youtube.com/watch?v=Ytfs5m9FXbE





    Dieses Programm zeigt eine Wärmeveränderung in Abhängigkeit einer vorher ermittelten Umgebungstemperatur. Die Ausgabe erfolgt über das Display und über die LEDs an der M32 Platine. Somit ist er in der Lage die Wärmeveränderung einer Hand in über einem Meter Distanz zu registrieren (Der Sensor ist nun hinten am RP6 angebracht und nicht mehr wie in dem Video vorne) :

    Code:
    by Thund3r
    
    int main(void) // Hauptfunktion
    { 
    
    	initRP6Control(); // Microcontroller initialisieren
    DDRA &= ~ADC2;
    
    	  uint16_t adc2 = readADC(ADC_2); //1ten Wert einlesen
    		uint16_t sSnake = adc2; 
    		uint16_t adc3 = readADC(ADC_3);  // 2ten Wert einlesen
    		uint16_t sSnake2 = adc3; 
    int a;	
    
    a=(sSnake-sSnake2); //Differenzwert als Umgebungstemperatur festlegen
    	while(true) 
    	{
    	
           ...
    
     Snake(a);
    
    	...
    	}
    	
    	while(1);
    	return 0;
    }
    
    
    ...
    
    
    void Snake(int dif) 
        {
    		uint16_t adc2 = readADC(ADC_2); 
    		uint16_t sSnake = adc2; 
    		uint16_t adc3 = readADC(ADC_3);  
    		uint16_t sSnake2 = adc3; 
    int a,b;		
    a=(sSnake-sSnake2); //Neuen Wert einlesen
    b=0;
            if(a>dif+10) //Wenn neuer Wert abzüglich einem Tolleranzwert recht höher ist
    		{ setLEDs(0b0011);
    		
    		b=1;
    		}
    		
    		 if(a<dif-5) //Wenn neuer Wert abzüglich einem Tolleranzwert links höher ist
    		{ setLEDs(0b1100);
    	
    		b=1;
    		}
    		if(b==0) //Wenn keine relevante Temperaturveränderung erfolgte
    { setLEDs(0b0110);
    		
    		
    		}
    		clearLCD();
    		setCursorPosLCD(0, 0);
    		writeStringLCD("Rechts: ");
    		writeStringLCD(" ");
    		writeIntegerLCD(sSnake, DEC);	
    		writeStringLCD(" ");
    		writeIntegerLCD(a, DEC);
    		setCursorPosLCD(1, 0);
    		writeStringLCD("Links: ");
    		writeIntegerLCD(sSnake2, DEC);
    		writeStringLCD(" ");
    		writeIntegerLCD(b, DEC);
    		mSleep(200);
    	}
    Die Platine wird an den untersten Pins an die 5V RP6 Stromversorgung angeschlossen.

    Die ADC Anschlüsse kommen für den rechten Sensor an den äußersten Pin und für den linken an den mittleren und äußeren:



    Dann müssen noch beide Dioden auf der Platine mit einem Stückchen Draht überbrückt werden:



    Nun kann der RP6 die Daten auswerten

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    22
    Beiträge
    661
    nette idee mit dem asuro modul =D> =D>
    MfG Martinius

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Danke

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Ganz ehrlich: So wird das SnakeVision voll vergewaltigt.

    Es wird weder die eigene Spannungsstabilisierung verwendet, noch werden die Ausgänge asurolike beschaltet. Wenn es funktioniert ist es gut, aber optimal scheint mir das nicht.

    Gruß

    mic

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

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Nein optimal ist es sicher nicht. Es sind auch nur die erten Schritte zum Umgang mit der Snake Vision am RP6. Weitere Ergebnisse folgen wenn ich mich damit mehr auseinander gesetzt habe. Es ist quasi der einfachste Weg es zum laufen zu bringen wie eine Minimallösung

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    10.09.2010
    Beiträge
    74
    Hallo Thund3r!
    Ich habe mir eine Bauanleitung für diese Snake Vision rausgesucht.
    Quelle: http://www.arexx.com.cn/uploadfiles/...NAKE_SNK20.pdf
    Jetzt habe ich diese aufgebaut, aber irgendwie funktioniert die nicht. Ich habe auch genau die dort benutzten Bauteile verwendet. Ich möchte mal wissen, wie die Funktion grob ist? Was ich meine ist,hast du bei beiden ADCs einen Wert oder ist immer nur einer der ADCs aktiv. Ich habe nämlich das Problem, dass meine Schaltung sehr ungenau funktioniert. Bei mir ist nämlich entweder ADC0 (linker sensor) bei dem Integerwert 802 oder ADC1 (rechter Sensor) bei dem Integerwert 502 aktiv.
    Was ich auch gerne wissen möchte ist, ob R2 (7R5)und R4 (10R) und R6(15R) verbunden sind, und ob sie noch mit etwas anderes verbunden sind.

    Vielen Dank schon im voraus.
    Gruß RP6fahrer

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    10.09.2010
    Beiträge
    74
    Hallo, Mein Problem hat sich geklärt. Jetzt funktioniert alles.

  8. #8
    Hallo,

    eine sehr interesannte Geschichte!

    Könnte mir jemand das Anschließen der Snake Version näher erklären? Was muss ich wo genau anschließen? - SORRY!

    Kann man die ADC´s der Base verwenden?
    Wie schließt man die Pins der zwei Sensoren an die ADC´s an?

    Vielen Dank!

    Beste Grüße
    Crystal Eye
    Wer braucht Fenster, um an einem Rechner zu arbeiten?

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    755
    Altes Thema, aber neue Frage

    Ich wollte mir auch den Snake-Bausatz holen, wollte nur wissen, warum man wie Thund3r es beschrieben hat, die beiden Dioden überbrücken muss?! Die stören doch nicht weiter, oder???

    AUßerdem wollte ich fragen, ob es sonst noch was zu beachten gilt, oder nur GND, VCC, ADCx und ADCy ranhängen - fertig...
    Und wozu der Taster??? -> http://www.arexx.com.cn/uploadfiles/...NAKE_SNK20.pdf


    Danke Euch!
    Grüße,
    Fabian

  10. #10
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    [Aushol]Das SnakeVision sollte mit einer stabilen Spannung versorgt werden damit die Ausgangsspannungen des Sensors nicht zu sehr schwanken. Da der asuro aber nur Akkus/Batterien hat, wird ein kleiner Trick verwendet: Eine Ladungspumpe. Das sind D1, D2 und C3 und die 36kHz an OC2. Nach der Pumpe liegt an C2 und dem 5V-Spannungsregler IC2 (ein 78L05) eine ausreichend hohe Spannung an um daraus relativ stabile 5V zu erzeugen.[/Aushol].

    Da der RP6 mit einer stabilisierten 5V-Spannung betrieben wird, kann man das SnakeVision direkt damit betreiben. Die Bauteile D1, D2, C2, C3 und IC2 kann man weglassen und durch eine direkte Verbindung zwischen Eingang VCC und dem Lötpad für den IC2-Pin1 ersetzen. Die 36kHz braucht man natürlich dann auch nicht und es reicht deshalb, wenn man noch GND und die zwei Ausgänge mit den ADCs des RP6 verbindet.

    Der zusätzliche Taster dient ausschliesslich als Taster. Beim asuro wird bei erkannten Tastendruck eine Art Kalibrierung ausgeführt, auf dem RP6 kann man damit machen was man will.

    Gruß

    mic

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

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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