PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Projekt: RP6 mit Snake Vision



Thund3r
18.04.2010, 23:08
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



http://www.rn-wissen.de/images/d/d9/SVS.jpg

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) :




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:

http://www.rn-wissen.de/images/7/7f/Svb.JPG

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

http://www.rn-wissen.de/images/6/63/Svf.JPG

Nun kann der RP6 die Daten auswerten

Gruß Thund3r

Martinius11
19.04.2010, 22:07
nette idee mit dem asuro modul =D> =D>

Thund3r
19.04.2010, 22:16
Hallo

Danke ;)

Gruß Thund3r

radbruch
19.04.2010, 22:26
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

Thund3r
19.04.2010, 23:20
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

RP6fahrer
11.07.2011, 18:56
Hallo Thund3r!
Ich habe mir eine Bauanleitung für diese Snake Vision rausgesucht.
Quelle: http://www.arexx.com.cn/uploadfiles/ASURO_SNAKE_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

RP6fahrer
18.07.2011, 09:42
Hallo, Mein Problem hat sich geklärt. Jetzt funktioniert alles.

Crystal Eye
28.08.2011, 16:41
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

fabqu
21.09.2011, 18:52
Altes Thema, aber neue Frage :D

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/ASURO_SNAKE_SNK20.pdf


Danke Euch!
Grüße,
Fabian

radbruch
21.09.2011, 19:27
Hallo

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 (http://www.sprut.de/electronic/switch/schalt.html#pumpe). 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..

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

fabqu
21.09.2011, 19:58
Wow, sehr ausführlich und flott! :D
Vielen Dank, ich werds so machen.
Gleich mal bei Amazon bestellen ;)
Grüße