Jump to content
elektro-skateboard.de

Wii Nunchuck mit Ardruino


benediktsamuel

Empfohlene Beiträge

Wie installiere ich die Arduino Umgebung:

 

1. Software Download:

Externe Links nur für Mitglieder sichtbar

2. Unzip z.B. c:\arduino oder c:\programme\arduino

3. Link auf Desktop herstellen

4. Arduino starten und in das leere sketch folgende Eingabe /* bla */

5. Als Test speichern. Die Datei sollte in: c:\Users\barney\Documents\Arduino\test\test.ino landen

6. In das Verzeichnis c:\Users\barney\Documents\Arduino\libraries\ die Nunchuk.zip hineinkopieren.

-> c:\Users\barney\Documents\Arduino\libraries\Nunchuk

7. Arduino schließen und wieder öffnen.

8. Unter Beispiele sollte jetzt Nunchuk zu sehen sein. Auswählen und kompilieren (heißt "Überprüfen" als Haken!)

9. Arduino Uno anschließen und unter:

-> Tools -> Board -> Arduino UNO auswählen

9a. Es wird ein Treiber für den USB-Port Arduino UNO verlangt. Diesen findet ihr:

-> c:\Program Files (x86)\arduino-1.0.3\drivers\

Die Installation sollte von selbst ablaufen. Achtung bei Windows 8 müsst ihr gookeln!

10. COM-Port des Arduino UNO Boards auswählen. Ggf. in dem Geräte-Manager unter Schnittstellen nachsehen, dort seht ihr den COM-Port.

11. Das Nunchuk Programm auf das Arduino-Board laden. (Pfeil nach Rechts "Upload")

12. Nach erfolgreichen Upload: <Strg> + <Shift> + M drücken. Dann erscheint der Serielle Monitor (-> Tools -> Serieller Monitor)

13. Serieller Monitor auf 19200Baud einstellen. Es sollten jetzt Zahlenkollonen erscheinen.

13a. Falls Nunchuk schon angelötet, dann Pairing durchführen, ggf Reset am Arduino Board durchführen. Es sollten jetzt sich die Axhse X,Y Accel X und Button -Werte verändern.

14. Das Programm von mir in das Verzeichnis:

c:\Users\barney\Documents\Arduino\ Auspacken

c:\Users\barney\Documents\Arduino\Elektroskate_N_ISR_T_S_27022013\Elektroskate_N_ISR_T_S_27022013.ino

15. Arduino schließen und öffnen.

16. Sketch: Elektroskate_N_ISR_T_S_27022013.ino auswählen.

17. Kompilieren

18. Upload

19. freuen oder fluchen

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow hört sich ja cool an.

 

Sag mal ist es eventuel auch noch möglich ne Überwachunf eines 12S Lipos mit einzubauen?. Ich dachte da an Einzelzellen Überwachung, die dann direkt auf die PWM eingreift, und die Leistung zurück nimmt, wenn ein Lipo einbicht. Ähnlich wie beil Liposaver von Robbe. (Leider hat der nur 7 S)

Aber sonst echt coole Sache.

 

Dr. B

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow hört sich ja cool an.

Sag mal ist es eventuel auch noch möglich ne Überwachunf eines 12S Lipos mit einzubauen?. Ich dachte da an Einzelzellen Überwachung, die dann direkt auf die PWM eingreift, und die Leistung zurück nimmt, wenn ein Lipo einbicht. Ähnlich wie beil Liposaver von Robbe. (Leider hat der nur 7 S)

Aber sonst echt coole Sache.

Dr. B

 

Hatte Sonni schon gefragt.

 

Leider so erst mal jein:

Die Schaltung müsste um 12 analoge Messstellen erweitert werden.

->

Externe Links nur für Mitglieder sichtbar

Mittels Mux-Shield wäre die Messtellenanzahl hinzubekommen! Dann müsste jede Messtelle eine Anpassung für die entsprechende Zellenspannung bekommen. Einfach aufgebaut 12 Spannungsteiler.

 

Ich habe aber immer noch das Nunchuk Ausfallerkennungsproblem. Ich bin einer Lösung sehr nahe. Sollte das, was ich bis jetzt umgesetzt habe funktionieren, würde das Android App an nächster Stelle stehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

74HC4067

 

Mit zwei Mux-ICs und einen Differenzverstärker könnte eine Messschaltung aufgebaut werden, die eine ausreichende Genauigkeit bringen würde. Die Schaltung würde unter € 10 liegen.

 

Der Aufbau wäre trivial, Sollte aber auf einer Leiterplatte mit SMD erfolgen. Schutzbeschaltung auch noch dazu.

 

Der Pin für die Spannungsmessung und der letzte Analogpin könnte dafür verwendet werden. Für die beide Mux-ICx benötigt man noch vier Digitalanschlüsse.

 

Das wäre aber spätestens der Punkt wo ein Leiterplattenprojekt gestartet werden müsste.

 

Ich kann die benötigte Rechenzeit für den verwendetet Prozessor noch nicht abschätzen. Das müsste dann erst mal erprobt werden.

 

Grüße

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Cool,

 

ich hatte ne andere Lösung mit den Digitaleingängen (da waren doch 16 oder ?) im Kopf und pro Lipo nen Widerstand ne Z Diode mit 2,6 V und einen Eingang eine Oktokoplers zur galvanischen Trennung. Prinziep Spannung über Schwellenwert 1 da Strom fließt, unter 0 da die Zdiode sperrt. direkt an die Digi I/Os fertig.

 

klappt das ??

 

Dr. B

Link zu diesem Kommentar
Auf anderen Seiten teilen

Cool,

 

ich hatte ne andere Lösung mit den Digitaleingängen (da waren doch 16 oder ?) im Kopf und pro Lipo nen Widerstand ne Z Diode mit 2,6 V und einen Eingang eine Oktokoplers zur galvanischen Trennung. Prinziep Spannung über Schwellenwert 1 da Strom fließt, unter 0 da die Zdiode sperrt. direkt an die Digi I/Os fertig.

 

klappt das ??

 

Dr. B

 

Ich ahne was du vorhast, du willst nur die Unterspannung einer Zelle detektieren.

Ich habe keine Digital IOs in dieser Anzahl frei. Da ist es einfacher mit einem MUX-Baustein und 12 Spannungsteiler die Zellspannung direkt zu messen.

Diese Schaltung hätte den Nachteil, dass die Messgenauigkeit mit jeder Zelle Abnimmt. Als Beispiel zwei Extrema;

 

Meßbereich 0..5V mit 10 Bit -> 0..1023 Stufen -> 5mV/Bit

 

Zelle 1 -> 3.3V Spannungsteiler Teilverhältnis 1 -> Genauigkeit ca. 5mV auf die Zelle bezogen

.

.

.

Zelle 12 -> 39.6V Spannungsteiler Teilverhältnis 1:12 -> Genauigkeit ca. 60mv auf die Zelle Bezogen. Die Spannung der Zelle muss als Differenz zur Vorzelle errechnet werden.

 

Wenns dir reicht 0.06V als Messgenauigkeit im Worst Case auf die Zelle bezogen.

 

 

Hierfür benötigst du einen Analog- und vier digitale Anschlüsse!

 

Bauteile:

1 * MUX-16

23 Widerstände (12 Spannungsteiler)

12 Zenerdioden 5V (Schutzschaltung)

12 Germanium Dioden mit 0.2V (Schutzschaltung)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

 

Habe mein Board heute bekommen. Leider wollte sich nur der Nunchuck der hier noch rumflog nicht mit dem Empfänger verbinden. Das ist ja aber ein Systeminternes Problem ?!

 

Ich habe jetzt auf jeden Fall deinen Nunchuck bestellt. Sollte morgen ankommen.

Dann schreibe ich euch ob alles Funktioniert.

 

 

Zur Spannungsversorgung: Mein BEC liefert exact 6V.

 

Das Board hat doch auch einen Eingang mit 6-20V.

 

sollte es nicht dann auch damit funktionieren? Eine Externe Versorgung würde ich gern umgehen, weil damit ja ein weiterer dauerhafter Verbraucher oder ein weiterer Schalter verbunden wär.

 

Oder gibt es andere Ideen?

 

"The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts."

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi benne,

 

die Fragen hast du dir schon selbst beantwortet. :D

6V sind zuwenig. Kannst du dein BEC nicht umstellen?

Ansonsten 1W Diode kaufen und aus den 6V 5.3V machen.

 

Nunchuk

Hast du den Nunchuk Empfänger mit 3.3V versorgt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

 

Nunchuck war mit 3 V versorgt (via Ardruino)

 

 

Wie funktioniert das mit der Diode ? BEC Kann ich leider nicht umstellen

 

 

LG Bene

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie wäre es mit diesem teil:

 

E_B_ay Artikelnummer: 320926185942

 

Das ans BEC und dann an den 7-12V eingang vom Ardruino.

EDIT:

 

Hallo,

 

habe gerade noch mal nachgesehen. Ich habe noch einen 2. Port am Schalter frei und kann damit problemlos Akkuspannung abgreifen.

 

Nun brauch ich nurnoch einen Festspannungsregler der die 5V Spanung liefert und die ~26V max. Eingangsspannung aushält. Darum kümmer ich mich aber wenn der Rest funktioniert.

bearbeitet von benediktsamuel
Link zu diesem Kommentar
Auf anderen Seiten teilen

DC/DC-Wandler - Serie R-78xx - SIP 3 Recom International R-78B5.0-1.0 Ausgangsspannung 5 V/DC Ausgangsstrom 1 A

 

von 6.3V bis 34V Eingangsspannung. € 10 bei Unrad.

 

oder

 

DC/DC-Wandler - Serie R-78xx - SIP 3 Recom International R-7812-0.5 Ausgangsspannung 12 V/DC Ausgangsstrom 0.5 A

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank, fasse das mal ins Auge.

 

Ich habe den neuen Controller jetzt angelötet. Pairing klappt jetzt!

 

habe auch alles entpackt und Kompiliert usw.

 

Aber ab Schritt 13 klappt nichts mehr. Die Zahlenwerte verändern sich nicht. Verwende das Ardruino Micro.

 

Außerdem werden Fehler angezeigt wenn ich die Elektroskate_N_ISR_T_S_27022013.ino kompiliere.

 

HILFEEE!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nach Schritt 13:

 

Am Arduino Board sollte ein Reset Taster sein, wie ich auf den Bildern sehe. Nach dem Pairing Reset auf den Arduino Board ausführen.

Sind die Zahlenkollonen logisch sauber aufgebaut? Kopiere einfach zwei-drei Zeilen ins Forum.

 

Außerdem werden Fehler angezeigt wenn ich die Elektroskate_N_ISR_T_S_27022013.ino kompiliere.

Du musst mir schon die Fehleranzeige zukommen lassen, ich habe keine Telepathischen Fähigkeiten, ich arbeite aber daran!

 

Mit den Mikrocontroller hatte ich die gewarnt. Deiner ist anders.

 

VG

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich sehe ein verschwommenes Bild: Ah, dir fehlt die OneWire LIB.....

Externe Links nur für Mitglieder sichtbar

 

Diese Lib in das c:/... lib.../ Verzeichnis kopieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

 

mit Nunchuck wird folgendes ausgegeben:

 

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

0 8500 0 1

 

 

Es gibt keine Änderungen wenn ich irgendwelche Tasten drücke oder den Nunchuck bewege.

 

beim Kompilieren der .ino treten nacheinander folgende Fehler auf:

 

'OneWire' does not have name a type :

OneWire ds(Pin_Temperaturanschluss); // Pin zuweisen

 

'TCCR2A' was not declared in this scope

TCCR2A = 0; // Alle Timer1 Werte zurücksetzen und abschalten

 

 

 

Und noch weitere änhliche.

 

LG Bene

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

 

mit Nunchuck wird folgendes ausgegeben:

 

0 8500 0 1

0 8500 0 1

-> zwei Zeilen hätten gereicht :)

-> Da du daten bekommst, stimmen die Anschlüsse! :D

 

Bitte Reihenfolge einhalten:

1. Spannung an

2. Pairing durchführen.

3. Programm herunterladen

4. ggf Reset Taster drücken

 

 

Es gibt keine Änderungen wenn ich irgendwelche Tasten drücke oder den Nunchuck bewege.

 

beim Kompilieren der .ino treten nacheinander folgende Fehler auf:

 

'OneWire' does not have name a type :

OneWire ds(Pin_Temperaturanschluss); // Pin zuweisen

-> hier fehlt die LIB! OneWire

 

 

'TCCR2A' was not declared in this scope

TCCR2A = 0; // Alle Timer1 Werte zurücksetzen und abschalten

Und noch weitere änhliche.

LG Bene

-> kann der falsche Mikrocontroller sein, da muss ich länger suchen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Benne,

 

du hast leider auf den falschen Mikrocontroller gesetzt. Ich habe gerade den Kompiler auf dein Arduino umgestellt. Deinen MC fehlt der Timer02.

Mit den Arduino NANO 328!!!! geht das.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da es ab dieser Stelle müßig ist, den Fehler mit den Nunchuk zu finden, hole dir bitte den:

Arduino UNO Rev3

oder

Arduino NANO ATmega328 (Arduino Nano 3.0)

 

Viele Grüße

 

Barney

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

 

E_B_A_Y Artikelnummer 200899667231

 

Kann ich den nehmen? Dann bestell ich gleich. Beim großen C gibts den leider nicht, sonst hätte ich den Spannungsregler gleich mitbestellen können.

 

Der UNO kostet ja gleich 10 € mehr. und dann auch noch größer....

 

Bitte kurz überprüfen.

 

LG Bene

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

 

Habe heute mein neues Board bekommen. leider funktioniert irgendwie alles immernoch nicht so ganz. :confused5::confused5:

 

Alles Verkabelt und die Verbindungen nochmals überprüft.

 

Controller Pairing durchgeführt -> erfolgreich. NunchuckElektroskate draufgeladen. Board resetet.

 

serieller Monitor gibt folgende Zahlen aus (punkte = teile ausgelassen):

 

16 8424 0 1

16 8424 0 1

0 8424 0 1

16 8424 0 1

16 8424 0 1

16 8424 0 1

 

......

 

16 8424 0 1

16 8424 0 1

178 8424 0 1

16 8424 0 1

16 8424 0 1

16 8424 0 1

......

 

16 8424 0 1

2 32772 1 1

16 8424 0 1

16 8424 0 1

16 8424 0 1

16 8424 0 1

 

 

Danach das andere Programm kompiliert. mehrere Fehler treten auf! z.B wieder 'one wire doesn't have a name'

 

probiere es doch mal selber. Werden bei dir auch fehler ausgegeben ?

 

 

 

LG Bene

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Benne,

 

Nach meiner Anleitung:

 

1. Punkt 9 -> Du musst natürlich den Arduino Nano Atmega 328 auswählen!

2. Hast du, wie nachträglich beschrieben, die One Wire Lib installiert?

 

Ich versende nur Dateien, die ich selber kompilieren konnte. Ich habe es auch für den Nano getestet! :P

 

Mach mal ein Foto von deiner Schaltung

 

Viele Grüße

 

Barney

bearbeitet von 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...