Der-Fricklers Arduino Simu TX

Status
Nicht offen für weitere Antworten.

m@rkus

Erfahrener Benutzer
#1
Hallo zusammen ,

Neulich bin ich über Der-Fricklers projekt gestoßen ,wo man alten ,,Schrott'' Fernbedienung neues Leben einhauchen kann und das nur mit wenigen Teilen .

So kann man sich einen kleinen Sender aufbauen ,welcher mit einer Lipo Zelle versorgt wird und ein Frsky Module beinhaltet .

Der Umbau einer alten 4Kanal Jamara Fernsteuerung hat Super Funktioniert , doch leider kann ich nierges erlesen wo ich die Sticks Kalibrieren kann .


Kann mir da jemand helfen ?

http://der-frickler.net/technik/9xown#xown1
 
#2
Hi M@rkus,

Hier nochmal der Arduino Schaltplan zur veranschaulichung:



Im Code gibts die Zeilen:

g_aPins[0].setCalibration(35, 502, 948); // Right horizontal, aileron

dort müssen die richtigen Analog Werte für Knüppel Min/Mitte/Max eingetragen werden.

Diese Werte ermittelst du am einfachsten in dem du den AnalogInOutSerial Sketch unter den Arduino Samples aufspielst und dann in der seriellen Arduino Konsole die Werte für deine Knüppelstellung ausliest, aufschreibst und im Funkensketch einträgst.
Das ganze dann eben für Analog Pin A0-A3.

Dann sollten die Knüppel sauber funktionieren.
Wenn die Min/Max der Weege noch nicht passen kannst du noch mit

rc::setCenter(1500); // servo center point
rc::setTravel(700); // max servo travel from center point

Spielen um das Servomitte und den Weg nach oben und unten zu setzten.

Noch was zur Erklärung, der 3-wege Schalter schaltet Kanal 5 auf low/mid/high und gleichzeitig die Flugphasen 1-3.
Ich nutze das um beim Kopterfliegen die Flightmodes der FC zu schalten und dabei gleichzeitig verschiedene Expos und Dualrates oben im Sketch definieren zu können.

#define EXPO_1 -30
#define EXPO_2 -30
#define EXPO_3 -30
#define DR_1 60
#define DR_2 60
#define DR_3 100

Viel Spass damit und poste mal ein paar Bilder vom Umbau

Johannes
 

m@rkus

Erfahrener Benutzer
#3
Super danke!

Der Umbau sieht noch etwas wüst aus .
Bis jetzt sind nur die Potis der Knüppel angeschlossen ,da ich keine 10Kohm rumliegen habe für die Schalter .

Das ermitteln der Werte hat funktioniert .

Habe die werte rausbekommen

A0 65-130-185
A1 67-129-177
A2 72-135-180
A3 64-131-185

Doch wenn ich die Werte eintrage und es überspiele , bekomme ich auf Kanal 1-4 1998ms und nichts tut sich mehr .
Habe ich irgendwas nicht beachtet ? Sonnst habe ich nichts verändert in deinem Sketch bis auf die Expo + DR werte .


Markus
 

Anhänge

Zuletzt bearbeitet:
#4
Die Widerstände sind nur zum Schutz der Ports gedacht.
Funktioniert auch mit anderen Werten, oder sogar ohne Widerstände.
Nur ohne oder mit zu kleinen hast du die Gefahr das du die Ports zerstörst. (falls du einen kurzen baust)
GRuß Boris
 
#5
Du musst beim Aulesen mit dem Beispiel Sketch die Werte nehmen die bei "sensor = " stehen.
Und, aufpassen beim anlöten der Poti von den Knüppeln, der mittlere Pin muss an den Eingang am Arduino, die Äußeren an Masse und 5V.
Nicht von den Kabelfarben täuschen lassen, die sind oft anders (u.a. auch bei der 5x).
 

OpaMichi

Erfahrener Benutzer
#8
Hi Freunde,

will mich grad mit Arduino beschäftigen und da habe ich dies gefunden, was mir schon sehr entgegen kommt.
Ich möchte eine einfache Steuerung die ein Gimbal + Cam ansteuert. (Joystickknöpfe und Jeti TU2)
Nun habe ich mal diesen Sketch aufgerufen und wenn ich versuche ihn in mein Aduino Nano zu laden bekomme ich eine Fehlermeldung. Auch wenn ich den Sketch überprüfe bekomme ich eine Fehlermeldung.
Ich habe noch keinen Aufbau, nur in der Aduino-IDE den Sketch geladen und auf überprüfen geklickt.

Wenn ich diese Problem mit Eurer Hilfe gelöst habe, möchte ich den Sketch noch ändern, sodass er folgendes bewirkt. Mode 2
Nick und Roll soll die Cam steuern, wobei Roll das Gierservo steuert.
Wobei der Stick ja nach loslassen immer wieder mittig steht, aber die Cam die Position beibehalten soll.
Je grösser der Stickweg je schneller die Servoansteuerung, bis Entanschlag erreicht wird.
Gas soll die Zoomfunktion besitzen.
Gier einmal nach links Video Ein, noch einmal nach links Video Aus
Gier nach rechts Foto schiessen.

Aber erstmal den ersten Schritt
 

OpaMichi

Erfahrener Benutzer
#12
Danke Christian,

bin genau nach deiner Anweisung vorgegangen und es klappt.
Kein Fehler bei überprüfen und reinladen ins Nano.
Morgen mal die Potis und Schalter und das TU2 drangebastelt und sehen ob es klappt.
Kann sein das ich den PPM Ausgang noch negieren muss, hab leider kein Skop zum überprüfen.
 

OpaMichi

Erfahrener Benutzer
#14
@der -Frickler
Danke für den Link, hatte ich noch nicht gefunden.
Man muss das Rad ja nicht immer wieder selbst erfinden. ;)
Der erste Schritt ist mir gelungen, heute ist basteln angesagt und dann wollen wir mal weiter sehen.
Auch das Projekt mit der Nunchuksteuerung ist nicht schlecht. ;)
 

OpaMichi

Erfahrener Benutzer
#15
Hi Freunde,
nach dem ich meine alte Funke Robbe Terra 6Ch mit dem Aduino bestückt habe und die Potis + 1 Schalter fliiegend Verdrahtung.
Am Ausgang eine Jeti-Box-Profi, die liefert gleich eine Übersicht der Kanalausschläge.
Zuerst habe ich die Werte der Potis ermittelt, mit dem AnalogInOutSerial Sketch
Werte liegen so bei 172, 284, 391
Nach dem ein paar Anfangsproblemme beseitigt wurden funktioniert es.
Aber es bleiben noch Fragen offen.
1. Mit einen Soundcard Oszi habe ich diese Aufnahme gemacht.


Hier sehe zähle ich 7 Impulse in der Jetibox werden 6Ch angezeigt.
Warum 7 Impulse?
Warum sind die Impulse erst Negativ und dann Positiv? Damit man alle Tx Module ansteuern kann. Positiv als auch Negativ angesteuerte?

2. Welche Aufgabe hat die LED Diode? und wenn die Anode hier an Masse liegt muss dann nicht die Katode negativer als die Masse sein, damit sie leuchtet?

Der Kanal 4 (Gier) stand immer auf 50% Plus und hat sich nicht verändert, bis ich hier in der letzten Zeile
g_aPins[3].setReverse(true); durch g_aPins[3].setReverse(false); ersetzte habe.

// set calibration values, these depend on hardware configurations
g_aPins[0].setCalibration(172, 284, 391); // Right horizontal, aileron
g_aPins[1].setCalibration(161, 268, 375); // Right vertical, elevator
g_aPins[2].setCalibration(170, 273, 375); // Left vertical, throttle
g_aPins[3].setCalibration(171, 277, 376); // Left horizontal, rudder
g_aPins[0].setReverse(false); // potentiometer mounted upside down?
g_aPins[1].setReverse(false);
g_aPins[2].setReverse(false);
g_aPins[3].setReverse(false);

Ich habe nur einen Schalter TR.Cat angeschlossen und der macht was er soll.
Die Widerstände an den Eingängen habe ich gesteckt.

Wenn ich das 5. Poti verwenden möchte und dies an Pin(5) anklemme.
Dann muss ich doch die Zeile g_aPins[0].setReverse(false); // potentiometer mounted upside down?
in g_aPins[5].setCalibration(151, 282, 380); // 5.Poti ändern richtig?
Aber dann muss ich doch noch irgendwo einen Kanal einfügen, oder?

3. Der CH 5 DR/Expo wird doch schon in der Funke ausgewertet und begrenzt hier meine Steuerausschläge.
Warum wird er dann noch als Ch5 übertragen?
Der TR.Cat wird doch auch nicht übertragen.
 
Zuletzt bearbeitet:
#16
Hallo zusammen,
ich versuche gerade die Simu TX nachzubauen.
Arduino technisch scheitere ich daran das eine riesige Fehlermeldung kommt?
Soweit ich das verstehe scheint die Lib nicht genutzt werden zu können.
Hat jemand eine Idee woran das liegen könnte?

"Arduino: 1.6.6 (Windows 7), Board: "Arduino Nano, ATmega328"

C:\Users\xxx\Downloads\nano\simutx\SimuTX\SimuTX.ino: In function 'void setup()':

C:\Users\xxx\Downloads\nano\simutx\SimuTX\SimuTX.ino:145:36: warning: large integer implicitly truncated to unsigned type [-Woverflow]

rc::g_Buzzer.beep(600, 0, 0);

^

In file included from C:\Program Files (x86)\Arduino\libraries\RC/rc_debug_lib.h:36:0,

from C:\Program Files (x86)\Arduino\libraries\RC\AIPin.cpp:17:

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:105:18: error: 'prog_char' does not name a type

void halt(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:105:29: error: ISO C++ forbids declaration of 'p_file' with no type [-fpermissive]

void halt(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:105:60: error: 'prog_char' does not name a type

void halt(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:105:71: error: ISO C++ forbids declaration of 'p_fmt' with no type [-fpermissive]

void halt(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:106:19: error: 'prog_char' does not name a type

void error(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:106:30: error: ISO C++ forbids declaration of 'p_file' with no type [-fpermissive]

void error(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:106:61: error: 'prog_char' does not name a type

void error(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:106:72: error: ISO C++ forbids declaration of 'p_fmt' with no type [-fpermissive]

void error(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:107:18: error: 'prog_char' does not name a type

void warn(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:107:29: error: ISO C++ forbids declaration of 'p_file' with no type [-fpermissive]

void warn(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:107:60: error: 'prog_char' does not name a type

void warn(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:107:71: error: ISO C++ forbids declaration of 'p_fmt' with no type [-fpermissive]

void warn(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:108:18: error: 'prog_char' does not name a type

void info(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:108:29: error: ISO C++ forbids declaration of 'p_file' with no type [-fpermissive]

void info(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:108:60: error: 'prog_char' does not name a type

void info(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:108:71: error: ISO C++ forbids declaration of 'p_fmt' with no type [-fpermissive]

void info(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:109:19: error: 'prog_char' does not name a type

void debug(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:109:30: error: ISO C++ forbids declaration of 'p_file' with no type [-fpermissive]

void debug(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:109:61: error: 'prog_char' does not name a type

void debug(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:109:72: error: ISO C++ forbids declaration of 'p_fmt' with no type [-fpermissive]

void debug(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:110:19: error: 'prog_char' does not name a type

void trace(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:110:30: error: ISO C++ forbids declaration of 'p_file' with no type [-fpermissive]

void trace(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:110:61: error: 'prog_char' does not name a type

void trace(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

C:\Program Files (x86)\Arduino\libraries\RC/rc_debug.h:110:72: error: ISO C++ forbids declaration of 'p_fmt' with no type [-fpermissive]

void trace(const prog_char* p_file, uint16_t p_line, const prog_char* p_fmt, ...);

^

exit status 1
Fehler beim Kompilieren.

Dieser Report hätte mehr Informationen mit
"Ausführliche Ausgabe während der Kompilierung"
aktiviert in Datei > Einstellungen.
"
 

dominik124

Neuer Benutzer
#20
Hallo nochmals. Habe den Sketch installiert und die Werte des Servos angepasst. Ich befürchte nur die Kombination aus sender empfännger funktioniert nicht. Der Sender ist der Frsky DHT DIY der Empfänger der V8R4 II. Letzterer läst sich zwar binden aber das Signal scheint er nicht verarbeiten zu können.
Gibt der Empfänger PPM aus, wie es der Arduino in den Sender schickt?
Falls ja wird das wohl das Problem sein. Ein servo wird es kaum nutzen können, oder?
Wie habt ihr die Empfänger konfiguriert, da steht leider nix in der Anleitung.

Viele Grüße Dominik
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten