Hallo
Willkommen im RN-Forum. :)
Serielle IR-Kommunikation mit Bordmitteln:
https://www.roboternetz.de/community...C3%BCr-den-RP6
(Bitte auch die Warnhinweise beachten.)
Viel Spaß mit dem RP6.
Gruß
mic
Hey
Ich bin neu hier und habe noch 0 erfahrung mit dem Rp6
Beispielprogramme usw kann ich alles hochladen das klappt.
jetzt will ich ein Vorhandens Programm ändern.
Was ich im großen und ganzen vor habe ist:
2 Roboter fahren umher, der eine Sendet ein Infrarot signal aus und der andere sucht es.
wie ich dir IR's ansteuer sollte ich noch hinbekommen aber wie schaffe ich es das er etwas bestimmtes Sendet und der andere Roboter dieses auch erkennt??
Danke schonmal
Mfg
Hallo
Willkommen im RN-Forum. :)
Serielle IR-Kommunikation mit Bordmitteln:
https://www.roboternetz.de/community...C3%BCr-den-RP6
(Bitte auch die Warnhinweise beachten.)
Viel Spaß mit dem RP6.
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!
Hey
soweit versteh ich deinen Ansatz einigermaßen. Danke
Aber da ich vom Rechner aus keinen IR-Adapter habe kann ich wenn ich dein Progamm auf meinen RP6 laden würde ja nicht viel damit anfangen.
Der RP6 auf den ich dein Programm laden würde, würde ja dauerhaft senden, er muss ja aber auch teilweise zuhören.
den 2. RP6 müsste ich dann so programmieren, das er empfängt und bei einem bestimmten signal selbst etwas sendet.
Hallo,
die RP6Lib hat für das IR COMM schon fertige und funktionierende Routinen wo man nichts weiter umändern oder beachten muss.
Da kann man einfach RC5 Codes (IR Fernbedienung) senden und empfangen - das stört so auch insbesondere das ACS nicht.
Wie das geht steht in der Anleitung. Zum Empfang der Daten gibts ein Beispielprogramm (TV REMOTE).
Senden ist ja recht einfach.
Zitat aus der RP6Lib:
/**
* This function initiates a RC5 transmission with the IRCOMM.
* You need to call the "task_ACS()" function (s. below) frequently
* out of the main loop - otherwise it will not work! (this is required
* because it needs to be synchronized with the ACS...)
* The transmission itself is interrupt based and takes about 20ms.
* Warning: The IRCOMM_sendRC5 function blocks ACS operation until
* transmission is finished!
*
* The address byte contains the device address and the togglebit.
* Address is 5 bit + 1 toggle bit, data is 6 bit.
* You can use some of the address bits for data if you need 8 bit
* data!
*
* Example:
* IRCOMM_sendRC5(10 | TOGGLEBIT, 40);
* // This transmits 40 to the device with address 10.
* // The togglebit is set.
*
* IRCOMM_sendRC5(10, 40);
* // This is nearly the same but the Togglebit is NOT set.
*
* IRCOMM_sendRC5(30, 60);
* // This is another transmission with device address 30 and 60 as data
* // with togglebit NOT set.
*
*/
void IRCOMM_sendRC5(uint8_t adr, uint8_t data)
Mit einer Übetragung sendest du da also 12 Bit. Wenn die 6 Bit Daten nicht reichen kannst
Du die Bits ein bisschen >> hin und her << shiften um die da passend in Adressbits und Daten rein zu zwängen
MfG,
SlyD
PS:
Achja etwas vorsicht mit den Adressbits, sonst schaltest Du evtl. versehentlich irgendwelche TV / Radio Geräte an/aus
Geändert von SlyD (16.04.2012 um 14:27 Uhr)
Hey
Danke
die RP6-Lib für die IR comm kann ich mit dem AVR-Studio einfügen oder?
Das Beichspielprogramm kenn ich, habe da auch schon etwas rumgespielt
schon mal danke, ich werde mich mal daran versuchen
MfG,
Kannst Du in jede IDE einfügen.
Oder Du nimmst das fertige Makefile was mit dabei ist und einen beliebigen Text Editor wie PN2 - wird bei WinAVR mitinstalliert.
Lesezeichen