Jump to content
elektro-skateboard.de

Wii Nunchuck mit Teensy 3.1


barney

Empfohlene Beiträge

Geschrieben
Juhu endlich darf die CPU auch mal aus ihrem endlosen geloope ausbrechen :cornut:

Aber es gibt doch bestimmt auch schon fertigen Code dafür oder?

 

So ein Fu.., ja es gibt pollende Beispiele, wenn du eine 96MHz CPU warten lassen willst. Seit Stunden versuche ich das Interrupt Handling des Teensys zu verstehen. Nicht so, wie ich es gehofft habe. Wahrscheinlich werde ich eine

while (Serial2.available() > 0) {
   Serial.write(Serial2.read());

 

Routine in der Main Loop unterbringen müssen. Nicht schön! Argh alles Mist.

Geschrieben

Viele Arduino / Teensy Routinen sind von Natur aus blockierend. Wenn du auf einen Event wartest, passiert in der Zwischenzeit nichts. Daher benutze ich drei ISR Zeitroutinen.

Geschrieben
Na dann kann ich mich ja doch noch nützlich machen wenn es daran geht alles was geht auf interrupt Routinen umzuschreiben :)

 

Hallo Kai,

 

wie sieht es bei dir mit FreeRTOS aus?

 

Externe Links nur für Mitglieder sichtbar

Geschrieben
Hallo Kai,

 

wie sieht es bei dir mit FreeRTOS aus?

 

Externe Links nur für Mitglieder sichtbar

 

Du weißt doch genau das ich noch überhaupt keine Erfahrung mit dem Arduino / Teensy habe und fragst mich sowas :noidea:

Ich nehme an du denkst darüber nach wegen Multitasking und ereignisgesteuerten Funktionen? Ich kann dir leider keine Vor/Nachteile gegenüber dem was sonst so mit Arduino geht nennen.

So aus dem Bauch raus vermute ich aber das der Umstieg auf Freertos als Unterbau bedeuten würde den komplette Code neu zu schreiben und einige Libs wie zb die Nunchuck auf freertos portiert werden muss.

 

Es gibt eine Lib für den Arduino Uno und Mega, also defacto auch für den Teensy

Na siehst, gibt doch ne Lib.

Kann man an das WLAN Modul einen Schalter und LED löten um den Betriebsmodus zu wählen?

HIGH: AP-Mode, wenn bereit LED blinkt / Anzahl verbundener clients > 0: LED leuchtet

LOW: Client-Mode: WLAN Modul verbindet sich mit voreingestellten WLAN als client.

Und noch einen an/aus Schalter

Geschrieben

Rtos bezog sich auf dein allgemeines Wissen. Noch ohne Teensy!

Mit dem WLAN bin ich noch zerrissen. Ein extra Board mit SD-Card und WLAN mit Linux wäre für dich leichter umzusetzen. Die Kosten liegen bei ca. € 50. Die Steuerung bekomme ich aber nicht damit hin.

Geschrieben

Wie gesagt, mit FreeRTOS habe ich auch noch keine Erfahrung.

Ich würde sagen wir machen das in der ersten Version erst mal mit dem WLAN Chip und nur um Daten abzufragen beziehungsweise zu exportieren.

Um den Webserver und die Anzeige der Daten kümmere ich mich dann ich muss nur wissen wie ich die Daten lesen kann.

Ein extra board mit debian Linux wär zwar richtig cool aber das zieht natürlich auch mehr Strom. Von daher wäre es meiner Meinung nach am sinnvollsten wenn das alles Modular aufgebaut ist.

Die Grundfunktionen und Hardwarenahen Sachen eben mit Teensy und alle Schnickschnack Erweiterungen plugabel.

Geschrieben
Wie gesagt, mit FreeRTOS habe ich auch noch keine Erfahrung.

Ich würde sagen wir machen das in der ersten Version erst mal mit dem WLAN Chip und nur um Daten abzufragen beziehungsweise zu exportieren.

Um den Webserver und die Anzeige der Daten kümmere ich mich dann ich muss nur wissen wie ich die Daten lesen kann.

Ein extra board mit debian Linux wär zwar richtig cool aber das zieht natürlich auch mehr Strom. Von daher wäre es meiner Meinung nach am sinnvollsten wenn das alles Modular aufgebaut ist.

Die Grundfunktionen und Hardwarenahen Sachen eben mit Teensy und alle Schnickschnack Erweiterungen plugabel.

 

Der bannana pro hat für € 44,- alles drauf, was du benötigst. SD-Card, WLAN, A7 Dual Core 1GHz (92 mm × 60mm). Durch die vielen I/O könnte ggf. später die Funktionen des Teensys migriert werden. Hier läuft ein mLinux drauf, mit den Paketen, wie du sie benötigst. Wie weit Timer für meine Anforderungen vorhanden sind, kann ich derzeit noch nicht sagen. Das Teensy Board ist 52 x 82 mm groß und unterscheidet sich nicht viel vom bannana pro. Bluetooth ist optional zu bekommen. Damit sind meine Wünsche gut abgedeckt.

 

Ich bin zerrissen.

Geschrieben

für die xxx pi Serien gibt es eine Nunchuk library. Es gibt aber keine Möglichkeit die ADC und PWMs abzubilden. Es müsste ein Breakout Board gebastelt werden mit einem ADC und Bausteine für die PWM.

 

Zurück zum Teensy:

Der ist für WLAN und Datenlogging nicht prädestiniert. Es müsste ein zweiter Teensy für diese Aufgabe verwendet werden. WLAN und Teensy - naja nicht wirklich.

 

Anders!

Was soll den über WLAN denn angezeigt werden? Welche Daten sollen geloggt werden. Ist das nicht eher eine Aufgabe für ein Handy App? Ja, mit einer App ist man an das Handy Betriebssystem gebunden, auch blöd.

 

Also Kai, was nun?

Einen Banana Pro kaufen und sehen, ob die Linux Timer Lib reicht?

 

PWM:

Externe Links nur für Mitglieder sichtbar

ADC:

 

????

Geschrieben

Schmeiß das fahren aus der Software raus, dann hasts einfacher. Das benutzt doch eh kaum jemand :skep:

 

Für Datensammlung oder Steuerung per Handy würde doch auch BT schon reichen. Wann bzw wohin bringt WLan aufem mobilen Board Vorteile? Wenn dann müsste auch noch ein GSM Modul mit rein, damit man das Board wenigstens auch noch anrufen kann. Und dann könnte man einen WiFi Hotspot machen...

 

Ja, so ist das... alle bekloppt hier...

Geschrieben
Schmeiß das fahren aus der Software raus, dann hasts einfacher. Das benutzt doch eh kaum jemand :skep:

:thumbsup:

 

Ja, so ist das... alle bekloppt hier...

Danke für den erfrischenden Hinweis. Ich wollte das nicht so direkt formulieren.

 

ZDF - Das sind die Zeichen der Zeit.

 

Werde mich mal wieder den BLDC zuwenden...

Geschrieben

Für Datensammlung oder Steuerung per Handy würde doch auch BT schon reichen. Wann bzw wohin bringt WLan aufem mobilen Board Vorteile? Wenn dann müsste auch noch ein GSM Modul mit rein, damit man das Board wenigstens...

 

Der Vorteil ist das du dich einfach mit einem Browser deiner Wahl auf dem Gerät deiner Wahl mit dem Board verbinden kannst. 100% kompatibel.

Es muss keine App für Endgeräte programmiert da die Applikation onBoard ist.

Es ist ausbaufähig.

Version 1.0

Einfach Anzeige der Daten.

Version 2.0

Konfigurationsparameter können geändert werden

Version x.0

Das Board wird ein Teil der IoT (Internet of Things)

Meldet zb auf dein Handy wenn der Akku voll ist, oder schaltet selbst die Funksteckdose in dem das Ladegerät steckt aus und geht auf Standby.

 

GSM als Addon, als Ortung und zur Fernsteuerung wenn das Board geklaut wurde. Ich würde das auch noch auf den Wunschzettel vom Weihnachtsmann schreiben wenn noch platz ist - logisch :)

 

 

Zurück zum Teensy:

Der ist für WLAN und Datenlogging nicht prädestiniert. Es müsste ein zweiter Teensy für diese Aufgabe verwendet werden. WLAN und Teensy - naja nicht wirklich.

So wie ich das verstanden hab läuft der ESP8266 doch quasi Autark und wird über AT-Befehle nur konfiguriert (WLAN Mode etc.).

Irgendwie müssen die Telemetriedaten aus dem Teensy in den ESP8266. Über die serielle Schnittstelle oder so ein GPIO port? Keine Ahnung.

Das ganzen WLAN und HTTP Zeug macht der ESP8266 selbst. Dazu muss man den mit seiner angepassten FW flashen, was über die Arduino IDE geht. Richtig?

 

Der Teensy muss die Telemetriedaten nur FIFOmäßig flüstern.

Das Loggin kann dann machen wer will. Entweder der ESP8266 oder irgendwas anderes, von mir aus auch eine App über Bluetooth. Das eine schließt das andere ja nicht aus.

 

 

Also Kai, was nun?

Einen Banana Pro kaufen und sehen, ob die Linux Timer Lib reicht?

 

PWM:

Externe Links nur für Mitglieder sichtbar

ADC:

 

????

 

Ich brauch erstmal die aktuelle Hardware hier damit ich mir ein besseres Bild machen kann.

So ist mir das alles zu theoretisch :)

Geschrieben

War ja auch nicht böse gemeint. Barney versteht meinen smileylosen Humor :P

 

Werde mich mal wieder den BLDC zuwenden...

Hört sich gut an. Leistungselektronik, da bin ich dann auch wieder mit am Start. Du musst mir ja noch meine Bürstenmotoren austreiben :P

Geschrieben (bearbeitet)

So wie ich das verstanden hab läuft der ESP8266 doch quasi Autark und wird über AT-Befehle nur konfiguriert (WLAN Mode etc.).

Irgendwie müssen die Telemetriedaten aus dem Teensy in den ESP8266. Über die serielle Schnittstelle oder so ein GPIO port? Keine Ahnung.

Das ganzen WLAN und HTTP Zeug macht der ESP8266 selbst. Dazu muss man den mit seiner angepassten FW flashen, was über die Arduino IDE geht. Richtig?

Fast!

Die Firmware für den ESP musst du vorher flashen. Ja, er kommuniziert über AT-Kommands, wie das BT-Modul. Der DHCP und der Crypto-Kram werden im ESP durchgeführt. Du musst nur noch die Seite zusammenbasteln und per AT versenden.

 

Beispiel aus der Lib, hier werden 6 ADCs ausgelesen und angezeigt.

cmd = "HTTP/1.1 200 OK\r\n";
   cmd += "Content-Type: text/html\r\n";
   cmd += "Connection: close\r\n";
   cmd += "Refresh: 8\r\n";
   cmd += "\r\n";
   cmd += "<!DOCTYPE HTML>\r\n";
   cmd += "<html>\r\n";
    for(int analogChannel = 0; analogChannel < 6; analogChannel++)
   {
     int sensorReading = analogRead(analogChannel);
     cmd += "analog input ";
     cmd += String(analogChannel);
     cmd += " is ";
     cmd += String(sensorReading);
     cmd += "<br />\r\n";
   }     
   cmd += "</html>\r\n";

Und Absenden:

   wifi.Send(chlID,cmd);
   delay(300);
   wifi.closeMux(chlID);
   delay(1000);

Sieht doch harmlos aus? Ja, auf dem ersten Blick, wenn da nicht diese vielen delay() währen.

 

Und wenn du in die Lib hineinsiehst:

while (millis()-start<5000) {

Alles das, was im ersten Angriff funktioniert, aber im Real Time Bereich nicht akzeptabel ist. Dies ist der Tatsache geschuldet, das die Libs auf andere Libs basieren. Hier wird die Serial.write() verwendet. Diese wartet auch, bis ein Timeout greift.

Serial.setTimeout(3000);

Welches in der Lib auf 3 Sekunden umgestellt wird.

 

Die Serial.xxxx() Funktionen arbeiten nicht für uns nutzbar mit ISR (intern schon irgendwie ja). Ich kann per Serial.xxx() kein Kommando absenden und den Teensy sagen: "mach in der Zwischenzeit, was du so tun musst, bis die Serielle Schnittstelle ein IRQ auslöst". Das wäre super, gibt es aber so nicht. Und so frickelt jeder mit delay() und while sich so durch die Welt.

Lösung: FreeRTOS

Nur wer von uns ist in der Lage das Programm zu portieren? Ich nicht Und die Libs?

 

Der Teensy muss die Telemetriedaten nur FIFOmäßig flüstern.

Wenn die Kommunikation steht, ist die Sendung von Telemetriedaten kein Thema. Der Teensy kann nur nicht viel Historie speichern. Da müsste ein externer Speicher ran. Die Anschlüsse für eine SD-Card sind schon belegt. Daher die Idee mit einem zweiten Teensy. Dieser würde auch nicht den Real Time Teensy stören. Wenn ich aber den Einfachen Bauteile Preise zusammen addiere komme ich auch den Preis eines fertigen Banana Pro (nicht Pi!) Boards. Wo bringe ich solch ein Teil aber unter? Der Teensy ist viel kleiner, es gibt einen SD-Card adapter zum Auflöten und das WLAN-Modul kann auf der Unterseite angeklebt werden. Von der Stromaufnahme mal ganz abgesehen.

 

 

@Kai

Daher meine Frage! Nicht erst mal Schritt eins und dann sehen wir mal. Ich habe mir hier schon öfters damit eine Falle gestellt und musste deswegen eine neue Platine machen.

 

Ich möchte jetzt eine saubere Anforderungsspezifikation, die man Punkt für Punkt abarbeiten kann. Dann enstehen auch weniger Fehler oder Blockaden.

 

Edit:

Die ESP-Lib will nicht richtig mit dem Teensy arbeiten. Es wird in der Lib aufgezeigt, dass man die Seriellen Buffer in den Basis Libs umstellen muss. Das sind so viele Anpassungen, die ich hier keinen zumuten kann. Da ist noch viel Arbeit nötig.

bearbeitet von barney
Geschrieben

Moinsen Barney,

 

als Forum-Newby habe gleich mal zwei Fragen an Dich.

Bist Du Anfang März in Bremen auch da (So) und hast Du eventuell 1-2 Platinen und etwas sonstige Elektronik dabei?

 

Beides würde mich SEHR freuen !!!

 

Gruss

Toni Gadget

Geschrieben
Moinsen Barney,

 

als Forum-Newby habe gleich mal zwei Fragen an Dich.

Bist Du Anfang März in Bremen auch da (So) und hast Du eventuell 1-2 Platinen und etwas sonstige Elektronik dabei?

 

Beides würde mich SEHR freuen !!!

 

Gruss

Toni Gadget

 

März ist eher schwierig für mich.

Ich habe keine Platinen mehr übrig. Aber warum die Frage? Zum Ansehen oder haben?

 

VG

 

Barney

Geschrieben (bearbeitet)

Von wegen "nur" ansehen wollen....

 

HABEN WOLLEN !!!!!!!

 

Bin selber den 60zigern entsprungen. Ich habe mir damals auch schon ein E-Board gebastelt. Hat aber mit den heutigen Hitech-Krams nichts mehr gemein...

 

Robbe EF76II (Motor) und nem 8.4V Akku mit 1.2Ah. Einem Car-Fahrtenregler der an einem selbstgebauten Servotester geleint war wurde "gefahren"...

 

Irgendwie bin ich vollends auf den Retrotrip. SNES, E-Board, C64...

Und beim rumstöbern im Netz bin ich auf Dein Tread gestossen und wurde SOFORT angefixt... :peace:

 

Longboard inkl. ADS & APS Sets und 83er ABEC 11 Flywheels liegen zur Vereinigung bereit. ;)

Möchte aber mit 5S fahren. Sollte aber ja kein Problem sein - oder ?

 

Also von nur ansehen wollen ist das wohl schon SEHR weit weg - oder ?! :D

 

Hier einmal die ausgeweideten Überbleibsel von damals...

image.thumb.jpg.3d35c7f2a0ca98ed5f4dc942ee70c370.jpg

bearbeitet von ToniGadget
Geschrieben (bearbeitet)

ChibiOS

Externe Links nur für Mitglieder sichtbar

 

FreeRTOS

 

Hallo Kai

Es fehlt beiden Versionen für Arduino die native Hardwareunterstützung, wenn ich es richtig verstanden habe? Bei ChibiOS hat sich eine kleine Gruppe auf den Teensy 3.1 gestürzt, die Erweiterungen sind aber nicht oben eingepflegt.

 

 

Does it work? Yes, millions of small embedded systems are in use with an RTOS.

Two kinds of RTOSes: preemptive scheduling and cooperative scheduling. For a beginner, the latter should be used to avoid races, deadlocks, etc.

A finite state machine can be used for most "tasking" and "threading", and is simpler.

 

FreeRTOS scheint mir die bessere Wahl zu sein.

 

Edit:

@Kai

Das Toshiba Sigma BLDC Projekt wurde mit FreeRTOS geschrieben. Dort benutzte ich den Kostenfreien IAR-Kompiler, der in der Programmgröße beschränkt ist. Der Sigma ist da deutlich umfangreicher. Die IDE ist gut zu verstehen.

bearbeitet von barney
Geschrieben
Von wegen "nur" ansehen wollen....

 

HABEN WOLLEN !!!!!!!

 

Bin selber den 60zigern entsprungen. Ich habe mir damals auch schon ein E-Board gebastelt. Hat aber mit den heutigen Hitech-Krams nichts mehr gemein...

 

Robbe EF76II (Motor) und nem 8.4V Akku mit 1.2Ah. Einem Car-Fahrtenregler der an einem selbstgebauten Servotester geleint war wurde "gefahren"...

 

Irgendwie bin ich vollends auf den Retrotrip. SNES, E-Board, C64...

Und beim rumstöbern im Netz bin ich auf Dein Tread gestossen und wurde SOFORT angefixt... :peace:

 

Longboard inkl. ADS & APS Sets und 83er ABEC 11 Flywheels liegen zur Vereinigung bereit. ;)

Möchte aber mit 5S fahren. Sollte aber ja kein Problem sein - oder ?

 

Also von nur ansehen wollen ist das wohl schon SEHR weit weg - oder ?! :D

 

Hier einmal die ausgeweideten Überbleibsel von damals...

 

Retrotrip: Hier fehlt noch MAME - Arcade Simulator

 

Ansehen: Hast du das Wiki hier schon gesehen?

Externe Links nur für Mitglieder sichtbar

 

Vor Ort: Berlin

 

5S:

 

VG

 

Barney

Geschrieben
Retrotrip: Hier fehlt noch MAME - Arcade Simulator

Wurde bereits mit "RetroPi" erfolgreich umgesetzt... :)

 

Ansehen: Hast du das Wiki hier schon gesehen?

Externe Links nur für Mitglieder sichtbar

Yupp

 

Vor Ort: Berlin

Klingt gut, habe dieses Jahr noch vor für ca. eine Woche zum Kumpel nach Berlin zu kommen !

Wäre für ein Bierchenabend bei kleiner E-Longboard schwaffelei gerne zu haben !!! ;)

 

5S:

Nope, kannte ich noch nicht. Aber sehr Interessant. Meine Vorstellungen waren 20-25Km/h bei ca. 15-20Km Reichweite. Mit meinen "auf gut Glück" zusammengekauften Setup komme ich bei beiden Vorstellungen exakt auf meine Mindestanforderung(19,9Km/h bei 15Km Reichweite)! :peace:

Geschrieben

Nope, kannte ich noch nicht. Aber sehr Interessant. Meine Vorstellungen waren 20-25Km/h bei ca. 15-20Km Reichweite. Mit meinen "auf gut Glück" zusammengekauften Setup komme ich bei beiden Vorstellungen exakt auf meine Mindestanforderung(19,9Km/h bei 15Km Reichweite)! :peace:

 

Deine Mindestwerte greifen aber nur bei vollem Akku!. Gehe da nicht zu knapp ran.

Geschrieben

Da ich mich mit meinen alten Knochen erst wieder ans boarden gewöhnen muss, reicht die Geschwindigkeit und Ausdauer erst einmal. Beides kann dann ja mit einem 6S oder gar 7S mit grösserer Kapazität und ein paar Widerstandsanpassungen auf der "barneyplatine" schnell angepasst werden!

 

Es sei den das Board oder ich selber geben früher auf... :elektro-skater5: - :wirdgut: - :devil:

 

Kann und darf ich mit einer Platinenneubestellung rechnen?!

Ich finde das Projekt einfach grossartig !!!

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