Liste der Anhänge anzeigen (Anzahl: 1)
Lichtsensormodifikation
Hallo Leute,
da ich beim RP6 die Lichtsensoreinheit vermisse, dachte ich mir ich gucke mal in den ASURO Schaltplan und übernehme dies für den RP6.
Soweit ich in der Anleitung gelesen habe stehen ja noch 2 AD-Wandler zur freien Verfügung und für die Beleuchtung habe ich mich einfach an eine Statusled dazu gehängt (wie die Bumper).
Seht euch bitte mal die Skizze an und sagt mir ob das so funktionieren kann. Habe Null Ahnung von Schaltungsbau und Dimensionierung.
Habe bei der Skizze einige Teile des RP6 weggelassen um auf die Modifikation aufmerksam zu machen, also nicht wundern falls da einiges fehlt.
Riesen Dank im Voraus.
PS: Da der RP6 wahrscheinlich andere Spannungen an den eingezeichneten Potenzialen anliegen hat als der ASURO, werden wohl andere Vorwiderstände nötig sein, oder was meint ihr?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo wiedermal,
hab die Schaltungen jetzt nach Euren Empfehlungen bearbeitet, würde mich über eine kurze Reaktion freuen.
Achja, noch eine Frage... VDD ist 5V?
Danke im Voraus und gute Nacht.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Dirk und Danke für die Antwort,
auch wenn ich jeden Plan als eine Platine ansehe blicke ich nicht so ganz durch. Was ich nämlich nicht verstehe ist 1) was soll dieses "Y" sein? und 2) wie kann der RP6 unterscheiden ob der linke oder der rechte Bumper gedrückt wurde, wenn doch alles am selben Potential hängt Immerhin ist Com ja mit Com1 und Com2 verbunden? Ich habe mal einen kleinen Plan gezeichnet (habe die echten Schaltpläne übernommen und einen Gedankengang dazu gezeichnet), würde die Verkabelung so stimmen? Wenn ja, warum heisst der Anschluss BPL/BPR auf der anderen Platine plötzlich COM/COM2? COM1 ist ja schätze ich mal VDD?
Sorry, aber ich kapiers einfach nicht :( Bitte um Hilfe! Danke.
PS: Bitte nicht verwirren lassen, ich habe bei meinem selbstgezeichneten Plan schon IO2 und IO4 verwendet, anstatt BPL und BPR. Das habe ich gemacht um die Widerstände mit am Plan zu haben.
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank Dirk und SlyD, ohne Euch wäre ich wirklich aufgeschmissen. Habt ihr eigentlich bei der Entwicklung des RP6 mitgeholfen? Ihr wisst ja auf alles ne Antwort :)
Ein paar Fragen hätte ich noch:
1) Warum brauche ich 3 Verbindungen zu 5V? (COM/1/2), würde nur eine Verbindung nicht ausreichen, immerhin liegen sowieso nicht mehr als 5V an den Bumpern an?
2) WO bitte erkennt man im Schaltplan, dass eine Verbindung von NOR/NOL zu BPR/BPL besteht? Genau nirgends! :(
Danke für den Tipp SlyD, wenn meine "neue" Schaltung so passt, werde ich das so realisieren.
Liste der Anhänge anzeigen (Anzahl: 2)
So, wieder ist ein bisschen Zeit vergangen und ich habe die Schaltung nun mittlerweile endlich fertig aufgebaut.
Zum Testen kam ich allerdings noch nicht, da mir gestern die Sicherung gegangen ist, als ich ein Kabel der Schaltung um einen Kondensator gelegt habe. Seltsam war jedoch, dass der RP6 zu diesem Zeitpunkt ausgeschalten war, und das Kabel schon lang dort liegt. Erst als ich die Kabel nochmal "verfolgt" habe ist das passiert.
Da ich beim Aufbau äußerst gewissenhaft vorgegangen bin, denke ich nicht das es sich um einen Kurzschluss handelt. (Den Übeltäter sieht man unten dann noch besser (im 2. Bild))
Jedenfalls will ich euch die Schaltung nicht vorenthalten, deshalb hier ein paar Bilder:
Anbei noch eine Frage:
Die Funktionen für ADC0 und ADC1 sind, soweit ich das aus der RP6Lib gelesen habe ja schon integriert. Ich brauche nur noch mit task_ADC(); die Variablen adc0 und adc1 abfragen, richtig?
Und die Funktion der Taster wollte ich in die RP6 Lib so integrieren, hoffe ihr könnt mir sagen ob das so passt, oder ob etwas fehlt.
Zur Information: In Rückwärtsfahrtrichtung hängt der hintere rechte Bumper auf IO4. Der linke Bumper auf IO2
Code:
uint8_t getBackBumperLeft(void)
{
PORTC &= ~SL2;
DDRC &= ~SL2;
nop();
uint8_t tmp = PINC & SL2;
if(statusLEDs.LED2) {
DDRC |= SL2;
PORTC |= SL2;
}
return tmp;
}
uint8_t getBackBumperRight(void)
{
PORTB &= ~SL5;
DDRB &= ~SL5;
nop();
uint8_t tmp = PINB & SL5;
if(statusLEDs.LED5) {
DDRB |= SL5;
PORTB |= SL5;
}
return tmp;
}
und die task_Bumpers() wird so erweitert:
Code:
volatile uint8_t bumper_timer;
uint8_t bumper_left;
uint8_t bumper_right;
uint8_t bumper_back_left;
uint8_t bumper_back_right;
void task_Bumpers(void)
{
if(bumper_timer > 50) { // 50ms
uint8_t left = getBumperLeft();
uint8_t right = getBumperRight();
uint8_t backleft = getBackBumperLeft(); //NEW
uint8_t backright = getBackBumperRight(); //NEW
if(bumper_left != left || bumper_right != right || bumper_back_left != backleft ||bumper_back_right != backright) {
bumper_left = left;
bumper_right = right;
bumper_back_left = backleft;
bumper_back_right = backright;
BUMPERS_stateChangedHandler();
}
bumper_timer = 0;
}
}
PS: Auf dem Foto erkennt man das schuldige Sicherungstöterkabel recht gut: Ganz links das VDD Kabel welches um den Kondensator gewickelt ist.
Liste der Anhänge anzeigen (Anzahl: 2)
*push*
Habe jetzt neue Sicherungen, kann mir bitte nur jemand sagen ob meine Lib Anpassung so stimmt?
Danke :)
//edit: Ich habe gerade die FrontLED zur Linienverfolgung getestet und mir ist dabei aufgefallen, dass sie um einiges schwächer leuchtet, als die des Asuros. Kann mir jemand sagen warum das so ist? Laut Asuro Schaltplan wird die LED direkt über einen uC Pin (PD6) über einen 220 Ohm Widerstand angesteuert.
Bei meiner RP6 Schaltung ist es fast genauso. VDD zu 220 Ohm Widerstand zu 5mm LED rot (genauso wie beim Asuro, genauere Bezeichnungen finde ich da nicht). Einziger Unterschied, beim RP6 hab ich noch nen Transistor geschalten dessen Basis an einen IO Port angeschlossen ist, aber daran wirds wohl kaum liegen, oder?
Hoffe ihr könnt mir helfen, danke!
//edit2: Habe mal zwei Bilder zur Veranschaulichung hinzugefügt.
//edit3: Laut Multimeter fließen in beiden Fällen gute 20mA durch die rote LED. Könnte es vielleicht an diesem kleinen Zusatz "LEDs 5mm rot hell diffus" aus der Ausro Beschreibung liegen? Auf das habe ich beim Kauf der RP6 roten LED nicht geachtet :/