Last Updated on 1. April 2022 by sfambach
Die Sunfounder Fernbedingung wird mit Hilfe eines Arduino Nano und einer nRF24101 Platine betrieben. Sie besitzt Schraubklemmen für die Stromversorgung, einen Einschalter und zwei Steckplätze für die genannten Module. Zur Steruerung verwendet sie einen Joystick mit zwei Freiheitsgraden wie er beispielsweise in der PS4 Fernsteuerung verbaut ist. Der Joystick ist analog. Zwei Potentiometer (Veränderliche Widerstände) verändern die Ausgangsspannung je nach Stellung des Joysticks.
Ansichten
Einsatzzwecke
- Fernbedienung
- Für weitere Einsatzwecke fehlt mir die Fantasie 😉
Stückliste
- Sunfounder Fernbedienungsplatine
- Arduino Nano
- nRF24L01 Platine
- Spannungsversorgung (USB Schnittstelle, Akku …)
- Einen Epfänger z.B. nRF Modul für die Serielle Schnittstelle od. an Arduino
Fernbedienung
Interner Schaltplan
Beschaltung des Joystick
Der Joystick ist mit dem Analogen Port 0 und 1 verbunden. Der Taster kann über den Digitalen Port 2 abgefragt werden.
Die Werte an den analogen Ports liegen zwischen 0 und 1023. Wobei sich bei rund 512 die Mittelstellung befindet (Kann je nach Potentiometer etwas abweichen).
Arduino | Joystick |
A0 | Y Richtung (hoch/runter) |
A1 | X Richtung (rechts/links) |
D2 | Schalter (Auf Joystick drücken) |
Beschaltung nRF
Arduino | nRF | Kommentar |
D9 | CE | Chick enable Rx od. TX mode |
D10 | CSN | Chip select |
D11 | MOSI | Data input |
D12 | MISO | Data output |
D13 | SCK | Clock |
– | IRQ | Interrupt |
Arduino Nano
nRF24 Modul
Bibliothek
Es gibt einige Implementierung für die nRF Module ich habe unter anderem diese von Sunfounder beworbene verwendet.
http://wiki.sunfounder.cc/images/7/76/Test_Code.zip
Sollte es hiermit probleme geben kann ich auch noch die folgende LIB empfehlen:
Das es immer etwas kritisch ist, ob die schon installierten libs und die neuen zusammenpassen habe ich für dieses Projekt die *.h und die *.cpp Dateien einfach in die Projektordner des Senders und Empfängers kopiert. Natürlich könnt ihr die RF24 auch einfach installieren.
Die Einbindung von Bibliotheken im generellen ist unter folgenden Link beschrieben, hier werde ich nicht mehr näher darauf eingehen.
https://fambach.net/arduino-ide#Bibliotheken
Programmierung
Ich bin bei diesem Projekt in zwei schritten vorgegangen.
- Schritt 1 mal die Platine Testen
- Schritt 2 das RF hinzufügen
Erster Schritt – Platine Testen
Der erste Test fragt den Joystick ab und gibt die Werte auf der Console aus.
Zweiter Schritt – RF hinzugefügt
Die Fernbedienung sendet ihre Werte direkt an den Empfänger,dieser gibt die Werte auf der Console aus.
Der sender soll 1:1 die Werte der analogen Ports und die Schalterstellung übermitteln. Hierfür habe ich den ersten Test um die RF Schnittstelle erweitert.
So sollte es dann aussehen:
Fazit
Sunfounder hat hier eine nette kleine und kostengünstige Fernbedienung im Angebot. Die Installation ist einfach, schade ist dass der Taster nicht funktioniert.
Probleme
Druckknopf funktioniert nicht
Bei meinem Board funktioniert der Druckknopf im Joystick leider nicht :(.
RF geht nicht
Nochmal die folgende Lib probieren, mit dieser hatte ich die meisten Erfolge.
http://tmrh20.github.io/RF24
Verwandte Beiträge
Quellen
https://www.sunfounder.com/mobile-robot-remote-controller.html
http://wiki.sunfounder.cc/index.php?title=Mobile_Robot_Remote_Controller