Jump to content
elektro-skateboard.de

Wii Nunchuck mit Ardruino


benediktsamuel

Empfohlene Beiträge

Mir ist noch was allgemeines aufgefallen:

 

Seit der Version 2.6 wird bei Überstrom gedrosselt und bei Kurzschluss abgeschaltet. Diejenigen, die keinen Stromsensor einsetzen, müssen den Messeingang Pin A0 mit einem Widerstand (1-10K Ohm) auf Masse legen. Es besteht sonst die Möglichkeit, dass durch das Floaten den Eingangspin die Überstromroutine ausgelöst wird. Der Pin A1 für die Spannungsmessung kann, muss aber nicht auf Masse gelegt werden.

 

VG

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Barney

Ich habs gerade erfolgreich an meinem Baord testen können.

Und es funktioniert einwandfrei. :D

Mir ist aufgefallen das sich die Neutralstellung bei gedrückter Z Taste ein bisschen verschiebt.

Wenn man die Z Taste gedrückt hält bremst das Board leicht erst wenn ich sie loslasse ist der Freilauf drin.

Das stört mich allerdings nicht und kann so bleiben.

 

Den Igel habe ich trotz dem noch nicht aktivieren können. Stick nach links und dreimal die Z Taste drücken hat bei mir nicht funktioniert.

 

Den Widerstand auf A0 habe ich auch schon eingelötet (5kOhm)

 

Danke!

Gruß Gerald

Link zu diesem Kommentar
Auf anderen Seiten teilen

Den Igel habe ich trotz dem noch nicht aktivieren können. Stick nach links und dreimal die Z Taste drücken hat bei mir nicht funktioniert.

 

Links dabei festgehalten? Es kann sein, dass dein Stick keine X-Werte unter 30 liefert. Ändere mal im Quelltext die <30 auf <40. Kannst du den das Licht auf Pin 11 ein- und ausschalten?

 

// Geschwindingkeitsumschaltung per X-Joystick und dreimal Z-Taste druecken

if (nunchuk.zButton == HIGH && nunchuk.analogX < 30) {

// wenn Z-Knopf getastet und Nunchuk X < 3 -> Counter für Geschwindigkeitsumschaltung hochzaehlen

ObererStellWertMotorUmschaltCounter ++; // Es muss dreimal die Z-Taste und der X-Joystick ausgeloest werden

digitalWrite(Pin_Hupe, HIGH); // Zur Bestaetigung 200ms hupen

delay (200);

digitalWrite(Pin_Hupe, LOW);

if (ObererStellWertMotorUmschaltCounter == 3) { // Wenn dreimal gedrueckt

// Umschalten der maximalen Geschwindigkeit

if (ObererStellWertMotor == ObererStellWertMotorHase) ObererStellWertMotor = ObererStellWertMotorIgel;

else if (ObererStellWertMotor == ObererStellWertMotorIgel) ObererStellWertMotor = ObererStellWertMotorHase;

ObererStellWertMotorUmschaltCounter = 0; // Counter zurücksetzen

digitalWrite(Pin_Hupe, HIGH); // Zur Bestaetigung der Umschaltung 500ms hupen

delay (500);

digitalWrite(Pin_Hupe, LOW);

}

}

zButtonZero = HIGH; // Routine gegen Festhalten des Z-Tasters sperren

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Den Abschnitt vom Programm den du gerade geschrieben hast ist in meinem Programm noch gar nicht enthalten.:o

Wo soll ich den hineinkopieren?

Gruß Gerald

 

Whatn, kann nicht sein. habe ich dir gestern keine neue Version 2.9 zugesendet? Per E-Mail? ähhhh. Mache ich gleich mal. Diese lautet 2.9_Test!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist per E-Mail raus. Bitte die Integrationssteuerung löschen oder auskommentieren. Deine Steuerung "direct drive" aus dem Kommentar rausholen! /* */ löschen!

 

VG

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry ich versteh gerad nicht was ich ändern oder löschen soll?

 

Gruß Gerald

 

Ab:

// Subroutine fuer die Motorsteuerung und Integrationssteuerung

 

Bis einschließlich :

/* Direkt Drive

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt hab ich es kapiert. :thumbsup:

Beim test mit dem Servo verschiebt sich durch den Igel die Neutralstellung ein bisschen.

Werde das gleich am Baord testen

 

Gruß Gerald

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt hab ich es kapiert. :thumbsup:

Beim test mit dem Servo verschiebt sich durch den Igel die Neutralstellung ein bisschen.

Gruß Gerald

 

Sieht nur so aus! Ich habe als Igel den Wert die 3200 genommen. Die Neutralstellung ist die 3000! Daher sieht das so geringfügig aus. Am Motor hat der Wert 3200 eine ganz andere Auswirkung!

bearbeitet von barney
Link zu diesem Kommentar
Auf anderen Seiten teilen

Beim mir funkt das nicht.

Wenn ich den Igel aktiviere verschiebt sich die Neutralstellung so stark das der Regler auf bremse geht.

Bei Vollgas bin ich dann in der Neutrallstellung.

 

Gruß Grald

Link zu diesem Kommentar
Auf anderen Seiten teilen

Beim mir funkt das nicht.

Wenn ich den Igel aktiviere verschiebt sich die Neutralstellung so stark das der Regler auf bremse geht.

Bei Vollgas bin ich dann in der Neutrallstellung.

Gruß Grald

 

Du kannst den Wert für Igel ändern. Suche mal die Konstante:

ObererStellWertMotorIgel = 3200 und verändere ihn auf 3500!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Beim mir funkt das nicht.

Wenn ich den Igel aktiviere verschiebt sich die Neutralstellung so stark das der Regler auf bremse geht.

Bei Vollgas bin ich dann in der Neutrallstellung.

Gruß Grald

 

Du hast hier den Effekt, das der Motorregler richtig angelernt sein muss. Du solltest die drei verschiedenen Stellungen Vollgas, Neutral und Bremsen max. richtig anlernen, sonst wirst Du immer wieder Probleme mit meinem Programm bekommen. Ich habe das einmal richtig gemacht und seit dem keine Probleme dieser Art gehabt. Ich habe Hase Igel getestet und es geht bei mir wie erwartet. Jeder Regler hat seine Tücken. Ich habe extra alles in Konstanten am Anfang des Programms definiert, damit man die, zu ein passenden Parameter, leicht einstellen kann. Die Werte anpassen muss schon Du, da kann ich Dir kaum helfen.:thumbsup:

 

VG

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab den Igel auf auf 3400 erhöht und es funktioniert wirklich gut.

 

Das hat mit dem Anlernen nichts zu tun.

Wenn ich beim Regler die Nullposition ohne drücken der Z Taste anlerne da habe ich später auch den Leerlauf bei losgelassener Taste.

Dafür ein leichtes bremsen bei gedrückter Taste. Bei igel ist das noch stärker.

 

Wenn ich den Regler sage das die Nullposition mit gedrückter Z Taste ist.

Kann ich die Z Taste später nicht loslassen da sonst das board von selber davon fährt. :P

 

Aber ich bin trotz der leichten bremse glücklich. Da ich so immer weis das, das board eine verbindung mit dem Controller hat und ich jeder Zeit brems bereit bin.

 

Bein meiner Hupe habe ich irgend wo noch einen Murks drin.

Wenn ich fahre geht öfter die Hupe kurz an.

 

Eine Diode habe ich auch eingebaut. Ich hab sie zwischen Transistor Collector Ausgang und Reilai gehängt.

Stimmt das so?

 

Und zwischen Arduino und Transistor (Basis) einen 5kOhm Widerstand gelötet. Kann es sein das der zu klein ist und dadurch die Hupe öfters angeht.

 

 

Gruß Gerald

20130905_115204.thumb.jpg.a9278b562e5c0ec07f49c0d2a48c2d4c.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab den Igel auf auf 3400 erhöht und es funktioniert wirklich gut.

 

Das hat mit dem Anlernen nichts zu tun.

Wenn ich beim Regler die Nullposition ohne drücken der Z Taste anlerne da habe ich später auch den Leerlauf bei losgelassener Taste.

Dafür ein leichtes bremsen bei gedrückter Taste. Bei igel ist das noch stärker.

 

Wenn ich den Regler sage das die Nullposition mit gedrückter Z Taste ist.

Kann ich die Z Taste später nicht loslassen da sonst das board von selber davon fährt. :P

 

Aber ich bin trotz der leichten bremse glücklich. Da ich so immer weis das, das board eine verbindung mit dem Controller hat und ich jeder Zeit brems bereit bin.

Leider haben die Nunchuks in der Neutralstellung keine perfekte 127 als Wert. Genauso wenig wie das Minimum keine 0 und das Maximum keine 255 liefert. Ich hatte bewusst die Integrationsroutine gewählt, um diese Fertigungstoleranzen zu umgehen. Du kannst nachprüfen, welchen Wert dein Nunchuk in der Mittelstellung liefert und nachrechnen welchen Konstantenwert Du für den Motorleerlauf benötigst. Jede Einheit Abweichung vom Idealwert hat eine Wertigkeit von ca. 8 Werten Motorleerlauf. D.h. anstatt 127 z.b. 137 -> Motorleerlauf=3080! So wirst Du dich leider ranarbeiten dürfen.

 

Ich würde auf "direct drive"verzichten und lieber den Dämpfungswert von 30 auf 10 verringern. Ist aber wie gesagt Geschmackssache.

 

 

Bein meiner Hupe habe ich irgend wo noch einen Murks drin.

Wenn ich fahre geht öfter die Hupe kurz an.

 

Eine Diode habe ich auch eingebaut. Ich hab sie zwischen Transistor Collector Ausgang und Reilai gehängt.

Stimmt das so?

Nein, ich hatte Dir einen Wikipedia Link gesendet, der aufzeigt, wo die Diode hinkommt. Leider habe ich auch keinen Röntgen-Blick und kann durch die Leiterplatte durchsehen, um die Verschaltung der Unterseite zu sehen.:D

 

Und zwischen Arduino und Transistor (Basis) einen 5kOhm Widerstand gelötet. Kann es sein das der zu klein ist und dadurch die Hupe öfters angeht.

Benutzt Du einen Transistor oder MOSFET?
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das mit den Röntgenaugen dachte ich mir schon. :P

 

Mit der Wikipedia Zeichnung konnte ich nicht nichts anfangen.

Auch mit der Beschreibung nicht.

Dann habe ich bei Google gesucht und bin auf etliche verschiedene Schaltungen gestoßen. Was eine Freilaufdiode angeht.

 

Ich habe gerade ein bisschen gezeichnet um es verständlicher zu machen.

Unbenannt.png.e9027f0680f13c74910f9768564b8266.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das mit den Röntgenaugen dachte ich mir schon. :P

 

Mit der Wikipedia Zeichnung konnte ich nicht nichts anfangen.

Auch mit der Beschreibung nicht.

Dann habe ich bei Google gesucht und bin auf etliche verschiedene Schaltungen gestoßen. Was eine Freilaufdiode angeht.

 

Ich habe gerade ein bisschen gezeichnet um es verständlicher zu machen.

 

Ich bin der Meinung Beatbuzzer hat...

 

Nee, leider falsch:

und goggle mal nach Freilaufdiode und siehe dir die Bilder an.

Externe Links nur für Mitglieder sichtbar

ganz unten!

VG

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Gerald,

 

ich habe gestern die Version 3.0 abends fertiggestellt. Folgendes wurde verändert:

 

1. Umschaltung Hase- Igel -> Funktioniert jetzt, wie beim Licht mit Verriegelung der ggf. festgehaltenen Z-Taste. Die Umschaltung ist aus meiner Sicht damit fertig und abgeschlossen.

2. Umschaltung DirectDrive/ Integrationssteuerung -> Es ist jetzt möglich, durch ein #define DirectDrive TRUE/FALSE Flag den Compiler anzuweisen, die entsprechende Routine zu kompilieren. Die Pflege des Quelltextes wird deutlich leichter.

3. Intern: zentrale Abfrage der Nunchukwerte (7/Sekunde) zur Reduktion der Nunchukkommunikation. Tastenprellen wird dadurch besser gefiltert.

4. Kommentare Erweitert.

 

Und ich habe alles selbst getestet. Es funktioniert (bei mir*,**,***)!

:peace:****

VG

 

Barney

 

* Bei Abweichungen kann die Adresse meines Rechtsbeistandes angefragt werden

** Keine Garantie!

*** Macht doch was ihr wollt, ist doch euer Ding

**** Ich habe damit nichts zu tun!

bearbeitet von barney
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke barney

Ich hatte heute wegen der Arbeit leider nicht Zeit.

Morgen werde ich das neue Programm von dir ausprobieren.

 

Gestern ist es mir wider passiert das ich nicht mehr stehen bleiben konnte.

Das arduino dürfte sich beim anfahren durch ein kurzes hupen aufgehängt haben. Ich hab dann den wii controlle ausgeschaltet. Nach ca 10sec ist dann der Motor ausgegangen. Es muss etwas mit der Stromversorgung zu tun haben. Passiert wenn dann nur beim wegfahren.

Der wii Controller schaltet bei mir während dem fahren leider öfters in den sleep Modus.

 

Gruß Gerald

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

Auf meinem Transistor steht C546B, W82.

Bei der Hupe handelt es sich um diese hier:

Externe Links nur für Mitglieder sichtbar

 

Geschaltet wird die Hupe von einem Relai.

 

Gruß Gerald

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Gerald,

ich muss dir sagen, dass aus meiner Sicht der Aufbau keinen Sinn macht. Du schaltest mit einen Transistor ein Relais an mit viel mehr mA Strombedarf, als die eigendliche Hupe. Lass das Relais weg und mache die Hupe dafür dazwischen. Für 8mA Hupenstrom brauchst Du kein Relais!

 

Kannst Du die Beschaltung des Transistors noch in das Forum stellen?

 

VG

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tritt dem Gespräch bei

Du kannst jetzt posten und dich später registrieren. Wenn du bereits einen Account hast kannst du dich hier anmelden.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...