Liste der Anhänge anzeigen (Anzahl: 4)
Hi Dirk,
es gibt neuigkeiten:
- ich habe einige bauteile "gesockelt" um flexibler beim beuteiletausch zu sein
- reflektoren an den IR dioden angebracht
Anhang 26875
und eine zweite platine "huckepack" , steckbar draufgesetzt mit einer zweiten blinkschaltung, die die IR bake ein und ausschaltet:
Anhang 26876
mit den beiden potis kann ich fast beliebige schaltintervalle einstellen...
Anhang 26877
Anhang 26878
allein durch die reflektoren und das "blinken" der IR-LEDs ist jetzt die reichweite bis auf ca. einen meter gestiegen...
Nächste woche werde ich andere vorwiderstände an den dioden testen und andere transistoren...
Liste der Anhänge anzeigen (Anzahl: 3)
hallo,
habe jetzt die ganze schaltung gezeichnet:
Anhang 26915
Anhang 26912
kann man hier auch pdf als bild (und nicht als anhang) hochladen?
ich habe auch ein paar fotos:
Anhang 26913Anhang 26914
der zweiter USB-stecker war notwendig, weil beim neuen netzteil (zwei USB-ausgänge, weil ja auch die ladestation von dort versorgt werden soll) die orientierung des USB-steckers anders war, die dioden hätten gegen die wand gesendet :-(
das ganze funktioniert jetzt auf die entfernung von einem meter. Immer noch viel zu wenig und gefühlt mehr oder weniger vom zufall abhängig, ob der RP6 empfängt, oder nicht.
die blinkfrequenz kann ich "nach dem gefühl" auf ca. 2x/sec, 5x/sec und 10x/sec einstellen, das wäre jetzt erstmal genau genug, es geht mir ja hier nur darum, dass die IR-dioden ein bischen abkühlen können und ich den strom, der dort durchfließt erhöhen kann. Die vorwiderstände sind momentan 22 ohm und - da ich das schlecht messen kann - gefühlt ist die "lichtleistung" der blinkenden IR-dioden (in einer kamera beabachtet) dreimal so hoch, als mit den 47 ohm...
die abfrage (und die ausgabe im LCD display) des empfangs wird durch den aufruf dieser funktion in der main-schleife realisiert:
Code:
void read_IR_value(void)
{
I2CTWI_transmitByte(I2C_RP6_BASE_ADR, 30); // Start with register 30
I2CTWI_readBytes(I2C_RP6_BASE_ADR, ir_value, 1);
clearLCD();
setCursorPosLCD(0, 2);
writeStringLCD_P("pb2_value: ");
setCursorPosLCD(0, 13);
writeIntegerLengthLCD(ir_value[0], DEC, 4);
setCursorPosLCD(2, 1);
writeStringLCD_P("0000 = IR bake OK");
// setCursorPosLCD(2, 2);
// writeIntegerLengthLCD(ir_value[0], DEC, 4);
}
die ausgabe übers display ist m.e. nach viel zu langsam. Ich glaube auch, dass der sender und der RP6 sich gegenseitig austricksen, weil wenn der einer sendet, empfängt der andere gerade nicht und umgekehrt. Ich möchte folgenermassen vorgehen:
der IR- empfänger "füllt" ein array von der größe von 30-50 bytes(?) in seiner eigenen geschwindigkeit und überschreibt die werte wenn der platz voll ist. Die abfragefunktion sollte auf das array zugreifen und den inhalt auswerten. Das kann durchaus langsammer als das empfangen der IR-signale geschehen. Wenn die abfrage - das ist jetzt einfach nur eine hausnummer - 10 "ok" zeichen hintereinander als bestätigung eines IR-empfangs findet macht der RP6 irgendwas. Blebt stehen, piepst die ode an die freude oder was auch immer...
wie gehe ich das jetzt an? Mit arrays habe ich noch nichts gemacht :-(
Liste der Anhänge anzeigen (Anzahl: 1)
hi Dirk,
wieder ein paar tests gemacht:
die vorwiderstände auf 10 ohm verringert, die blinkfrequenz der bake auf ca. 1/sec eingestellt und bei der abfrage im RP6 es so eingerichtet, dass er keine pausen beim messen macht, die reichweite ist nun bei 2m! Ansonsten die erfahrungen im text:
Zitat:
Zitat von
Dirk
Die direkte Abfrage von PB2 beißt sich auf jeden Fall mit dem ACS. Das sollte also nicht parallel genutzt werden.
klar, läuft auch nicht mit...
Zitat:
Zitat von
Dirk
1. Der IR-Empfänger müßte in einer Röhre sitzen wegen der nötigen Richtwirkung.
die 5 IR-dioden sind ja in einer art kranz, bzw. halbkreis mit lücken angeordnet. Bereits bei einer entfernung von 2 metern reicht eine sehr kleine verdrehung des RP6 (1 - 2 °) um das IR signal der empfangenen diode zu verlieren...
Zitat:
Zitat von
Dirk
2. Es muss einen erkennbaren Zusammenhang zwischen der gemittelten Bakenposition und der "Drehposition" des RP6 geben, damit er in die richtige Richtung fahren kann. Wenn man nicht rein nach Versuch und Irrtum vorgehen will, braucht man evtl. einen Kompasssensor oder Gyro.
bei zwischenmessungen auf dem weg zu der bake verringert sich ja die entfernung, das signal wird besser, aber evtl. hast du recht...
Zitat:
Zitat von
Dirk
3. Es macht wenig Sinn, einen sehr breiten IR-Licht-Fächer im Raum zu haben (so dass er fast den ganzen Raum füllt), sondern ein schmaleres IR-Licht-Feld wäre wohl besser.
der fächer ist ja in vertikaler richtung ziemlich flach, und es ist in horizontaler richtung kein geschlossener kreis/halbkreis, die lücken zwischen den einzelnen IR-kegeln werden ja mit der entfernung zwischen sender und empfänger immer größer...
Ich habe noch verschiedene temperaturen gemessen:
die 10 ohm vorwiderstände - 55°
die IR-dioden selbst - 36°
der Q2 - 89°, mit kühlkörper (siehe foto) immer noch 60°
Anhang 26923
ich habe beobachtet, dass, wenn die bake länger blinkt die leistung nachlässt, das signal wird offensichtlich mit wärmer werden des 2N222 immer schlechter. Durch welchen transistor könnte ich den ersetzen?