nette idee mit dem asuro modul =D> =D>
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
Bild hier
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) :
Die Platine wird an den untersten Pins an die 5V RP6 Stromversorgung angeschlossen.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 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:
Bild hier
Dann müssen noch beide Dioden auf der Platine mit einem Stückchen Draht überbrückt werden:
Bild hier
Nun kann der RP6 die Daten auswerten
Gruß Thund3r
Dein Gott sei mein Zeuge!
Hallo
Danke
Gruß Thund3r
Dein Gott sei mein Zeuge!
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
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
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!
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
Hallo, Mein Problem hat sich geklärt. Jetzt funktioniert alles.
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?
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
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
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen