PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 Fernsteuern



phenom
15.12.2009, 10:59
Hallo,

ich würde meinen RP6 gerne Fernsteuern. Es gibt hier zwar schon viele Themen darüber aber ich versteh es nicht ganz.

Also wo muss ich denn die 8Kabel von CH1, CH2 und Batt anschließen?

Und könnt mir jemand noch tipps für den Quellcode geben ? ;D

Danke

](*,) ](*,) ](*,) ](*,) ](*,)

Virus
15.12.2009, 15:28
willkommen im forum!

Bei mir kommt die Frage auf
wie du ihn fernsteuern willst, dein Beitrag geht so in dir Richtung
"ey, mach mir ma funk am RP6, man!"


Soll es RC sein, also wie bei Modellautos,
oder willst du funkmodule benutzen, oder was hast du vor?

Ein paar informationen braucht man schon,

wo sollen denn die 8 Kabel hin
ist einfach zu allgemein.

phenom
15.12.2009, 16:05
danke für die antwort erstmal ;D

also ich habe vor es über RC zu machen. Ich habe folgenden Empfänger (http://image2.gundamshop.co.kr/goods_IMG/sub19/19_3409_M.gif).
Dort sind folgende Anschlüsse: CH.1(3Kabel) CH.2(3Kabel) und BATT(2Kabel). Und das meinte ich mit den 8 kabeln ;) Und ich wollte wissen wie diese angeschlossen werden. :D

Danke ;D

Virus
15.12.2009, 16:43
also BATT kannst du an eine spannung zwischen 5und 6volt anschliesen,
wenn du eine EXP benutzt kannst du die 5volt an VDD (+) und GND (-) anschliesen.

An den Anschlüssen CH.1 und CH.3 sind drei anschlüsse, zwei dafon brauchst du nicht, weil diese nur die angeschlossenen servos mit strom versorgen würden.


Welcher der drei jeweils der Signalpin ist, hängt dafon ab, welchem stecksystem der empfänger zugehörig ist. http://www.marc-schaffer.ch/Elektronik/ServoStecker.jpg

den pin mit der welle brauchst du. diese schließt du dann getrennt an den mikroprozessor an.

Deine Frage wurde aber schon einmal von W-Lan kabel gestellt, und von Radbruch gut beantwortet.
https://www.roboternetz.de/phpBB2/viewtopic.php?t=50039

phenom
15.12.2009, 17:30
danke..

ja das hatte ich auch gesehen aber nicht verstanden...

kannst du mir eventuell die namen der anschlüsse sagen wo ich den empfänger reinlöte. vdd und gnd ist es egal welchen ich davon nehme?
sorry aber ich hab kein plan :D
kann ich den quelltext von radbruch nehmen?

shedepe
15.12.2009, 17:34
wenn du kein plan davon hast solltest du dich vllt erst mal in die Grundbegriffe reinlesen bevor du den RC Empfänger oder den RP6 schrottest.
VDD ist die positive versorgungsspannung GND steht für Ground

phenom
15.12.2009, 17:37
ja ich hatte mich schon darein gelesen ;D nur ich will unbedingt mein rp6 über rc steuern :D

Virus
15.12.2009, 19:00
also wie ich bereits schrieb ist der +pol mit VDD und der Minuspol mit GND gekennzeichnet.

willst du den I²C-Bus nutzen?
sonnst kannst du wie von radbruch beschrieben die zwei Signalpins an SDA und SCL anschließen. Hast du denn wenigstens ahnung vom programmieren?

weil einfach nur den code von radbruch übernehmen kannste zwar, wenn du aber trotzdem kein plan hast was rradbruch da geschrieben hat, wirst du das programm niemals erweitern können.
damit meine ich wenn du zB später mal den ACS und die bumper miteinbeziehen möchtest wirds dann für dich schwer.

phenom
15.12.2009, 19:04
hast du msn oder so? wär echt besser ;D

Virus
15.12.2009, 19:06
wieso?

Das nachfolgende dient um 15 zeichen zu erreichen.

phenom
15.12.2009, 19:08
egal ;D kommt ch1 oder ch2 in sda?

Virus
15.12.2009, 19:10
timok95@live.de

welchen du an sda und welchen du an slc hängst ist egel, weil du beide nur als verbindung zum atmega32 benutzt, und der dann das PWM signal wieder in befehle umwandelt.

phenom
15.12.2009, 19:12
wärst so freundlich un könntest mir den richtigen quell code posten... will mir das mal genauer angucken... wär echt genial :D

Virus
15.12.2009, 19:21
warum nimmst du nicht die von radbruch?

ein bischen eigenarbeit ist schon nötig, und den code aus den drei schnipseln zusammenzubasteln solltest du können, wenn nicht kauf dir ein ferngesteuertes auto oder fang erstmal an leds am rp6 an und aus zu schalten. wenn du in einem halben jahr nochmal fragst, und dann schonmal einen lösungsansatzs hast, werden dir schicherlich auch RN user weiterhelfen.

ansonsten Frag doch einfach Radbruch in einer PN, der beisst nicht!

radbruch
15.12.2009, 20:30
Hallo

Du benötigst neben dem eigentlichen Programm (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=328824#328824) auch die zwei Lib-Dateien (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=329255#329255) um es kompilieren zu können. Die Libs sind nötig, weil wir einen freien Timer für die 100000kHz/10us brauchen. PC0/SCL ist die Richtung, PC1/SDA die Geschwindigkeit. Ich kann dir auch die fertige Hex-Datei raussuchen (btw. war das vor über 2 Jahren), aber dann geht der Lerneffekt für dich noch mehr gegen null.


ansonsten Frag doch einfach Radbruch in einer PN, der beisst nicht!Naja, beissen tu ich natürlich nicht, aber persönlichen Support per PN/Mail lehne ich normalerweise ab, denn der Sinn des Forums ist doch die Öffentlichkeit der Beiträge.

Gruß

mic

[Edit] Bei der Suche nach dem Hex-File habe ich noch was nettes gefunden:

// Auswerten eines 2-Kanal RC-Empfängers an PortC0 und PortA4 31.12.2007 mic

// Mit der RP6-Library, blockierend wie sleep(), ohne timeout!!!
// Besser ist ein Anschluß an ADC0/ADC1 (PortA0 und PortA1)

#include "RP6RobotBaseLib.h" // Library einbinden
#include "RP6uart.h" // Zum Debuggen, wir wollen ja was sehen,
#include "RP6uart.c" // auch wenn wir kein LCD besitzen

uint8_t read_rc(uint8_t kanal)
{
extern uint8_t delay_timer; // der sleep()-Timer aus RP6RobotBaseLib.c

if (kanal == 1) // Eingang Kanal 1 der RC-Fernbedienung (SCL xBus Pin10)
{
while (!(PINC & 1)); // Warten auf aufsteigende Flanke
sleep(0); // setzt den delay_timer auf 0
while (PINC & 1); // Warten auf absteigende Flanke
return (delay_timer); // Fertig, Rückgabewert in 0.1ms
}
if (kanal == 2) // Eingang Kanal 2 der RC-Fernbedienung (E_INT1 xBus Pin8)
{
while (!(PINA & E_INT1)); // Warten auf aufsteigende Flanke
sleep(0); // setzt den delay_timer auf 0
while (PINA & E_INT1); // Warten auf absteigende Flanke
return (delay_timer); // Fertig, Rückgabewert in 0.1ms
}
return(0); // ungültiger Parameter übergeben
}


int main(void)
{
initRobotBase();
DDRC &= ~1; // Ports auf Eingang (SCL)
PORTC &= ~1; // und PullUps aus
extIntOFF(); // E_INT1 auf Eingang
setLEDs(1); // Anzeige Programm gestartet

writeString_P("\n\n\r2-Kanal RC-Empfänger einlesen 31.12.07 mic\n\r");

while(1)
{
writeString_P("\n\r");
writeString_P("Kanal 1: ");
writeInteger(read_rc(1), 10);
writeString_P(" Kanal 2: ");
writeInteger(read_rc(2), 10);
mSleep(300);
}
return 0;
} :)
Ich bin nicht sicher ob es das richtige Hex-File ist..

phenom
15.12.2009, 20:34
wärst du so nett und schickst mir bitte die hex. ich hab hier noch nichts eingerichtet.. grad auf win7 umgestiegen...
dankeschön..