Servo und Receiver PWM Tester - Arduino LCD 4884 shield

Airpac

I'll be watching you ...
#1
Hallo,

eigentlich sollte im Karton meiner letzten Bestellung Material für einen Funktionsgenerator zu meinem Oscilloskop sein. Beim Öffnen waren aber zwei Sainsmart Uno und zwei LCD 4884 Displays dabei.

Da das LCD 4884 Shield sehr schick aussieht und auch noch einen 5 Wege mini analog Joystick bereit hält, dachte ich mir, da kann man bestimmt etwas Unnützes anstellen.

So entstand ein kleines digitales Servo, ESC- und Empfänger PWM-Test-und Anzeigegerät.

Über den Joystick kann man die Schrittweite, Delay und PWM Wert bestimmen, mit dem Servo oder ESC getestet werden .

In einem weiteren Fenster können bis zu 8 Empfängersignale als PWM dargestellt, oder mit
dem Code v.1.1 z.B an einer FC wie Ardupilot etc. 4 ESC-Signale ohne Oszilloskop grafisch dargestellt werden.

Im dritten Modus kann ein Servo an einen beliebigen RX Ausgang gelegt und mit dem analogen
Joystickwert übersteuert / gemischt werden.



Software:

- LDC 4884 librarie :

http://fpv-community.de/attachment.php?attachmentid=78905&d=1388163650

- arduino code:

v.1.0 http://fpv-community.de/attachment.php?attachmentid=78906&d=1388163650
v.1.1 http://fpv-community.de/attachment.php?attachmentid=78974&d=1388241641

Dokumentation:

- http://fpv-community.de/attachment.php?attachmentid=78907&d=1388163650

Hardware:

1. Arduino uno (a cheap saintmart uno will do it also)

http://www.amazon.de/Arduino-Uno-Bo...F8&qid=1388160686&sr=8-3&keywords=arduino+uno
http://www.amazon.de/SainSmart-Komp...&qid=1388160510&sr=8-1&keywords=sainsmart+uno

2. sainmart lcd 4884 shield

http://www.amazon.de/SainSmart-Grap...qid=1388160651&sr=8-1&keywords=sainsmart+4884

oder komplett Kit

http://www.amazon.de/SainSmart-Entw...qid=1388160613&sr=8-2&keywords=sainsmart+4884

3. Patch Kabel (3 Patch und +1 single Wire).

http://www.ebay.de/itm/x-5-Servo-Pa...293036972?pt=RC_Modellbau&hash=item338617c5ac
 

Anhänge

Zuletzt bearbeitet:

der_tom

Erfahrener Benutzer
#3
Hallo,

ich wollte mir heute mal den servotester nachbauen,
Hardware Arduino Mega, Nokia LCD 5110, und sechs taster,

ich habe das joystick mit 6 tastern nachgebaut laut schema, http://www.dfrobot.com.cn/image/data/DFR0092/CN/LCD4884 Shield V1_1 SCH.pdf

mein problem ist das jetzt der sketch zwischen den menüpunkten hin und her springt. benötige ich da noch irgendwo ein pulldown??? wenn ja wie und wo???


gruss Tom
 

Airpac

I'll be watching you ...
#4
Hi Tom,

da diese Taster eigentlich eine Spannungsteilerdekade darstellen, brauchst du keine extra pull up oder pull down Widerstände. Auf meinem Board schaltet der Joystick in vier Richtungen und im center. Also 5 Taster. Wenn alles richtig funktioniert, wird mit center bestätigt und mit den Richtungen gescrollt. Du könntest also einen Taster und ein Widerstand weglassen.


Im Sketch auf der letzen Seite ist die Referenz zu dem auf meinem Board verbauten Joystick:

/* Joystick positions
if (z==0) {} // left
if (z>0 && z < 150){} // ok
if (z>150 && z < 350){} // down
if (z>350 && z < 510){} // right
if (z>510 && z < 750){} // up
if (z>750) {} // 1023 idle
*/

schreib dir ein kleines sketch mit dem du deine Werte bei jeder Tasterstellung erhälst (angezeigt bekommst).
Dann musst du damit 0,150,350,510,750 ersetzen.
1023 ist der Wert, wenn kein Taster gedrückt ist; also in Ruhe.
Da die Werte pro Tastenstellung minimal driften, muss man Ihnen ein Fenster programmieren.

unten nochmal ein Beispiel mit einem normalen Dreistellungsschalter:
 

Anhänge

Zuletzt bearbeitet:

der_tom

Erfahrener Benutzer
#5
Hallo Airpac,

danke für deine umfangreicher erklärung...
ich habe mir jetzt den sketch mal angeschaut, und mir ein joystick besorgt..
link: http://www.conrad.de/ce/de/product/...mm-mit-Schalter10-k-60-W-20-?ref=searchDetail

jetzt habe ich aber in deinem sketch gesehen das unter z_reference, dieser teil ja auskommentiert ist

/* Joystick positions
if (z==0) {} // left
if (z>0 && z <150) {} // ok
if (z>150 && z<50){} // down
if (z>350 && z<510){} // right
if (z>510 && z<750){} // up
if (z>750) {} // 1023 idle
*/




//pwm out Pins: 3 5 6 9 10 11
gruss
 

quicksilver

Erfahrener Benutzer
#7
Hey ich will mir gerade den Servotester bauen :) ... Frage hast du nochmal Details wie und wo welche Kabel Hingehen MÜSSEN um lediglich einen einzelnen Servo zu testen?
 

Airpac

I'll be watching you ...
#8
Hi,
zur Stromversorgung: Du kannst den UNO normal per 230V AC Steckernetzteil versorgen; ca 7-12V DC sind ok (besser nochmal in den UNO Spezifikationen nachlesen. Meist schließe ich einen 2 S LiPo an. Direkt mit +-5 Volt von einem kurzschlusssicheren Netzgerät an einem freien Port mit Servostecker angeschlossen geht auch. Du kannst aber auch 5V von einem Receiver holen.
Das eigentliche Servo schließt du dann wie auf dem Foto an Ausgang 9 an.
Im Anhang nochmal eine Software, bei der man die obere und untere ms Grenze frei einstellen kann.
 

Anhänge

Zuletzt bearbeitet:

CaTiO

Neuer Benutzer
#10
Gute Arbeit, Airpac. Wenn das Display kommt (vermutlich Samstag) wird das nachgebaut.
Schön, wie du alles auch noch so ausführlich dokumentiert hast!
 

kalle123

Jugend forscht ....
#11
Klasse Sache Lars!! Hab es mit nem normale NOKIA 5110 nach gebaut.

Mit nem aktuellen Display (z.B. 12864 LCD) und richtigen Tasten wäre das der Hammer!

Gruß KH

PS. Frage: Wie aufwändig wäre es, den Sketch auf ein anderes (besseres ;)) Display umzuschreiben?
 

Anhänge

Zuletzt bearbeitet:

Airpac

I'll be watching you ...
#12
Der Reiz für mich in dem Projekt lag in der Kompaktheit des LCD Shields, des Minijoysticks und der fertigen Servo-und Channelanschlüsse.
Mit nur zwei Servo-Patchkabeln kann man das Shield und UNO von einem Receiver aus mit Strom versorgen und sich vier Channels anzeigen lassen.
Das gleiche wenn man es an die Motorausgänge einer NAZA hängt.

Natürlich kann man ein anderes Display verwenden, aber ich bin damit total zufrieden. Bei Amazon bekommt man das Shield für einen guten Preis.
 
Zuletzt bearbeitet:

flying_pit

Geht nicht..gibt´s nicht!
#13
moin lars

mal ne ganz dumme Frage, mit welcher Version hast Du kompiliert? Ich hab das auf nem MEGA2560 drauf, komme aber über das Fenster PWM Tester...Servo Test...RX Test...RX&Servo nicht raus. Es wird keine Auswahl angezeigt und per Stick kann ich nix machen. Hab schon die LCD4884 LIB ausgetauscht, aber es tut sich nix. Hast DU ne Idee???

Grüße
 

Airpac

I'll be watching you ...
#14
Bei mir läuft Arduino 1.5.7 . Die Sache steht und fällt mit der Joystick-Abfrage.
Auf der Start-Seite PWM Tester...Servo Test...RX Test navigiert man mit up & down und mit dem Center-Button bestätigt man.
Links und rechts der aktiven Zeile sieht es so aus > ........Text ........ < .

Was für ein Shield benutzt du ? mach doch mal nen Bild ...
 

flying_pit

Geht nicht..gibt´s nicht!
#15
ok, ich hab Arduino 1.0.6 mit Teensyduino 1.20. ich denke auch das die Joy-Abfrage nicht geht, die zeichen links und rechts neben dem Text hab ich erst garnicht. Hab das original Mega-Board von Saintsmart..
 

Anhänge

Zuletzt bearbeitet:

Airpac

I'll be watching you ...
#16
Suche mal den Codeteil im Setup und aktiviere alle drei Zeilen einmalig ( // löschen ), dann uploaden und danach // wieder setzten und nochmal uploaden.


//EEPROM.write(1, 1 ); //beim ersten Upload aKtivieren damit der EEPROM auf 1 gesetzt wird
//EEPROM.write(2, 50 );
//EEPROM.write(3, 20 );



die erste Zeile speichert im EEPROM den Cursor. Man muss nur einmal den Wert in das EEPROM schreiben. Wert 2 und 3 sind für die Millisekunden und Step-Weite verantwortlich.

Danach unbedingt wieder // davor, sonst startet es immer auf Zeile 1.
 
Zuletzt bearbeitet:

flying_pit

Geht nicht..gibt´s nicht!
#17
danke, habs gemacht und es funktioniert, hab aber auch gesehen, daß der Joystick ziemlich zittrige werte bringt, evtl. isser verdreckt..(der lag nämlich schon gefühlte Jahrhunderte in der Ecke..grins)..nun gehts aber! Danke!! Super Arbeit!

Grüße Klaus
 
FPV1

Banggood

Oben Unten