barney Geschrieben 1. Juli 2015 Geschrieben 1. Juli 2015 (bearbeitet) Nach einem fulminanten Scheitern einer zu groĂ angesetzten Fernbedienung, habe ich was einfaches gesucht, wo nur noch der Joystick (Doppelpoti) und die Taster angelötet werden mĂŒssen. Nach lĂ€ngerer Recherche ist folgendes zu Tage getreten:  Externe Links nur fĂŒr Mitglieder sichtbar  Der Name ist schon nicht ohne und schreit nach ... ach was solls.  Wunderbare Weise liegt das Programm schon fast komplett vor:  fĂŒr je ⏠20,- kein Verlust.  Durch noch freie Analoge AnschlĂŒsse ist die Akku-Spannungsmessung auch noch möglich. bearbeitet 1. Juli 2015 von barney Zitieren
Chrizz Geschrieben 1. Juli 2015 Geschrieben 1. Juli 2015 Ich sag nur Wixx-Control :-) V.1.0 special open source remote control for self made electro (turbo) boards. Oder so. Zitieren
barney Geschrieben 1. Juli 2015 Autor Geschrieben 1. Juli 2015 Ich sag nur Wixx-Control :-) V.1.0 special open source remote control for self made electro (turbo) boards.Oder so. Da hast du noch ganz knapp die Kurve bekommen.... Zitieren
Dude Geschrieben 1. Juli 2015 Geschrieben 1. Juli 2015 Da hast du noch ganz knapp die Kurve bekommen....  Schon allein der Name ist einen Kauf wert ... verstehe ich das Konzept richtig:  1. Senderseitig einen Wixel + Poti und Schalter (am einfachsten aus einem ausgeschlachtete Nunchuk) anbringen 2. EmpfÀngerseitig BamBam-Teensy Controller mit einem weiteren Wixel erweitern und fertig Zitieren
barney Geschrieben 1. Juli 2015 Autor Geschrieben 1. Juli 2015 Schon allein der Name ist einen Kauf wert ... verstehe ich das Konzept richtig: 1. Senderseitig einen Wixel + Poti und Schalter (am einfachsten aus einem ausgeschlachtete Nunchuk) anbringen 2. EmpfĂ€ngerseitig BamBam-Teensy Controller mit einem weiteren Wixel erweitern und fertig  Genau das war die Intention. Der EmpfĂ€nger Wixel muss von USB auf Serielle oder I2C umgebogen werden. Bevorzugt I2C um an den Nunchuk Anschluss angeschlossen werden zu können. Dort liegt auch die 3.3V Versorgungsspannung fĂŒr den Wixel vor. 6 AnalogeingĂ€nge, davon einer fĂŒr die Akkumessung.  Also: 2 x Kreuzpoti 2 x Taster (analog) durch WiderstĂ€nde kann man die Anzahl der Taster am analogen Port erhöhen. 1 x Reserve als analoger Geber  @Dude: Hast du die beiden Programme schon mal angesehen? Die API hat auch Befehle fĂŒr die EmpfangsqualitĂ€t.  VG  Barney Zitieren
barney Geschrieben 1. Juli 2015 Autor Geschrieben 1. Juli 2015 Chrizz bestellt gerade:  50 - 500mA LiPo Laderegler fĂŒr 1S Lithium Polymer Akku 3,7V LiPo / Lader Regler: Externe Links nur fĂŒr Mitglieder sichtbar  Lipo Akku 3,7 v - 300 mAh:  Da ich vom Nunchuk Akku etwas entnervt bin.  Ich hoffe die Akkus reichen auch fĂŒr den Wixel Umbau.   Operating voltage: 2.7 â 6.5 V Operating current: up to approximately 30 mA (can get down to ~100 ÎŒA when in sleep mode) RadioFrequency: 2400 â 2483.5 MHz Range: approximately 50 feet (under typical conditions indoors) Bit rate: programmable, up to 350 kbps Effective data rate: up to 10 KB/s [*]Size: 0.7" Ă 1.5" [*]Weight without header pins installed: 3.2 g Zitieren
barney Geschrieben 2. Juli 2015 Autor Geschrieben 2. Juli 2015 Bestellung ist raus, mal sehen wie die Entwicklungsumgebung ist. Werde berichten. Zitieren
barney Geschrieben 2. Juli 2015 Autor Geschrieben 2. Juli 2015 Joystick: Externe Links nur fĂŒr Mitglieder sichtbar  Das wĂ€re dann der Joystick dazu: Zitieren
barney Geschrieben 10. Juli 2015 Autor Geschrieben 10. Juli 2015 (bearbeitet) DHL machts möglich.  Heute sind die beiden Wixel angekommen. 10 Minuten spĂ€ter waren beide mit der "wireless_adc_tx" und "wireless_adc_rx" app eine Fernbedienung, die noch auf den USB-Port senden. Das nenne ich mal ĂŒberzeugend.  Jetzt muss die Ausgabe nur noch auf die serielle Schnittstelle, spĂ€ter auf I2C umgeleitet werden. Serielle stelle ich mir noch einfach vor, I2C etwas anspruchsvoller.  Reichweitentest steht noch an.  Der Nachteil ein meiner Bestellung war, dass die Beinchen schon alle angelötet sind. Also nur was fĂŒr das Demoboard. Gut muss ja auch sein.  AbmaĂe: 37mm x 18mm x 7mm    35-D2-F3-45 25448 229 229 229 229 229 229 35-D2-F3-45 25548 229 229 229 229 229 229 35-D2-F3-45 25648 229 229 229 229 229 231 35-D2-F3-45 25748 229 229 229 229 229 229  35-D2-F3-45: Eindeutige Wixel ID 25448: Fortlaufender Counter 16 Bit, hier alle 100ms ein neues Paket 229: Die Werte der 6 ADC im Sender, hier nichts angeschlossen. bearbeitet 10. Juli 2015 von barney Zitieren
barney Geschrieben 11. Juli 2015 Autor Geschrieben 11. Juli 2015 Und der nÀchste Schritt  ID: BA-36-83-C8 Time: 7153 RSSI (FeldstÀrke in dB):-53 je kleiner desto besser Danach 6 ADC Werte BA-36-83-C8, 7153, -53, 229, 229, 229, 229, 229, 231 BA-36-83-C8, 7253, -82, 229, 229, 231, 229, 229, 231 BA-36-83-C8, 7453, -63, 229, 229, 229, 229, 229, 231 BA-36-83-C8, 7553, -82, 229, 229, 229, 229, 229, 231 BA-36-83-C8, 7653, -86, 231, 229, 231, 229, 229, 231  Jetzt kommt die Serielle Schnittstelle ran. Zitieren
barney Geschrieben 12. Juli 2015 Autor Geschrieben 12. Juli 2015 (bearbeitet) Kleine Anpassungen:  Der EmpfĂ€nger arbeitet default so, dass er nur Pakete anzeigt, die den CRC bestanden haben. Das klingt erst mal gut, macht aber Probleme in der Auswertung, wenn nichts vom EmpfĂ€nger zum Teensy gesendet wird und ich nicht weiĂ warum. Jetzt sind die Millisekunden zu sehen und der CRC-Pass Test.  Millisekunden 32bit geht doch, alle 1111 Stunden Ăberlauf des Counters PaketlĂ€nge wird angezeigt (hier 16) RSSI wird angezeigt (-65dBm, < 60 gut, > 75 wird problematisch) LQI wird angezeigt (in was auch immer), wenn LQI > 125 Signal nicht mehr auswertbar CRC Pass 0 oder 1 (1=OK 0=Fail)  BA-36-83-C8, 5964, 16, -65, 81,1, 229, 229, 229, 231, 229, 231 BA-36-83-C8, 6064, 16, -65, 53,1, 229, 231, 231, 229, 229, 231 BA-36-83-C8, 6164, 16, -65, 127,0, 229, 231,16613, 225, 113, 195 BA-36-83-C8, 6264, 16, -65, 52,1, 231, 229, 229, 229, 229, 231 BA-36-83-C8, 6364, 16, -65, 76,1, 229, 229, 229, 229, 229, 231 BA-36-83-C8, 6464, 16, -65, 48,1, 229, 229, 229, 229, 231, 231 bearbeitet 12. Juli 2015 von barney 1 Zitieren
barney Geschrieben 13. Juli 2015 Autor Geschrieben 13. Juli 2015 Jetzt werden die Daten vom Teensy 3.1 ĂŒber die Serielle Schnittstelle #3 entgegengenommen.  ToDo:  Wixel * ADC Werte auf 12bit umstellen  Teensy * Wixel Lib schreiben (Parsen der Seriellen Schnittstelle #3 und an die typischen Nunchuk Register ĂŒbergeben, Umschreiben der Funkabriss Logik, es mĂŒssen nicht mehr die Beschleunigungssensoren ausgewertet werden.) * Auswerten des Empfangssignals und der Akkuspannung des Senders Zitieren
barney Geschrieben 17. Juli 2015 Autor Geschrieben 17. Juli 2015 @Dude: Es gibt wieder Wixel ohne Beine. 25 StĂŒck am Lager fĂŒr âŹ18,60 Externe Links nur fĂŒr Mitglieder sichtbar Zitieren
Dude Geschrieben 18. Juli 2015 Geschrieben 18. Juli 2015 Bestellung fĂŒr 2 Wixel ist raus, auch wenn ich keinen Plan habe, wann ich den ausprobieren kann. GerĂŒstet zu sein ist aber schon mal ein gutes GefĂŒhl Dude Zitieren
barney Geschrieben 18. Juli 2015 Autor Geschrieben 18. Juli 2015 Bestellung fĂŒr 2 Wixel ist raus, auch wenn ich keinen Plan habe, wann ich den ausprobieren kann. GerĂŒstet zu sein ist aber schon mal ein gutes GefĂŒhl Dude Das ist die richtige Einstellung[emoji1] Zitieren
barney Geschrieben 20. Juli 2015 Autor Geschrieben 20. Juli 2015 (bearbeitet) Jetzt werden die Daten vom Teensy 3.1 ĂŒber die Serielle Schnittstelle #3 entgegengenommen. ToDo:  Wixel * ADC Werte auf 12bit umstellen  Teensy * Wixel Lib schreiben (Parsen der Seriellen Schnittstelle #3 und an die typischen Nunchuk Register ĂŒbergeben, Umschreiben der Funkabriss Logik, es mĂŒssen nicht mehr die Beschleunigungssensoren ausgewertet werden.) * Auswerten des Empfangssignals und der Akkuspannung des Senders  Der ADC gibt jetzt 12bit Werte als dezimal aus. Der Wertebereich geht dabei von 0..2047 und konnte auch so in der RealitĂ€t erreicht werden. Die Schalter werden fĂŒr eine Mehrfachnutzung am Besten ĂŒber ein Widerstandsnetzwerk verschaltet. So können vier Taster an einem ADC-Eingang angeschlossen und getrennt ausgewertet werden. (FĂŒr die Kenner/-innen, DAC-Prinzip fĂŒr high speed DACs.)  Jetzt die Lib fĂŒr den Teensy. Hier ein kleiner RĂŒckschlag. Die Teensy Lib UartEnevent hat noch einen weiteren Fehler. Wird diese bei 72 oder 96MHz kompiliert, wird die Baudrate fĂŒr die Serielle Schnittstelle 3 (Uart2) nicht richtig in den Registern gesetzt. Workaround ist derzeit die Multiplizierung der Baudrate mit dem Faktor 2. Der Autor der Lib ist informiert und wird diese korrigieren.  Edit: http://esk8b.de/git/Elektroskate_Fernbedienung.zip bearbeitet 20. Juli 2015 von barney Zitieren
barney Geschrieben 20. Juli 2015 Autor Geschrieben 20. Juli 2015 Teensy * Wixel Lib schreiben (Parsen der Seriellen Schnittstelle #3...) Â Parser ist rettich und kann als function() umgeschrieben werden. Â Seriennummer gefunden Counter: 8576671 Bytes: 16 dBm: -69 LQI: 75 CRC: 1 ADC_01: 138 ADC_02: 138 ADC_03: 138 ADC_04: 138 ADC_05: 138 ADC_06: 138 Â Ist jemand C Spezialist/-inn und kann das etwas kompakter umschreiben? Â void loop() { if (Serial.available()) { char c = Serial.read(); Event1.print(c); } if (print_flag) { uint32_t x = 0; uint32_t i = 0; uint32_t arg1 = 0; //Counter char arg1_String[15]; uint32_t arg2 = 0; //Byte Anzahl sollte immer 16 sein // 4 Bytes Seriennummmer, 12 Bytes 6 ADCs char arg2_String[5]; int32_t arg3 = 0; //RSSI -dBm char arg3_String[6]; int32_t arg4 = 0; //LQI char arg4_String[4]; int32_t arg5 = 0; //CRC char arg5_String[2]; int32_t arg6 = 0; //ADC_01 char arg6_String[5]; int32_t arg7 = 0; //ADC_02 char arg7_String[5]; int32_t arg8 = 0; //ADC_03 char arg8_String[5]; int32_t arg9 = 0; //ADC_04 char arg9_String[5]; int32_t arg10 = 0; //ADC_05 char arg10_String[5]; int32_t arg11 = 0; //ADC_06 char arg11_String[5]; if (strstr(buffer, Seriennummer)) //Seriennummer gefuden und damit den Startblock { Serial.println("Seriennummer gefunden"); while (buffer[x] != ',') { //Serial.print(buffer[x]); x++; } //Wert1 Counter x++; i=0; while (buffer[x] != ',') arg1_String[i++] = buffer[x++]; //Wert2 Bytes x++; i=0; while (buffer[x] != ',') arg2_String[i++] = buffer[x++]; //Wert3 RSSI x++; i=0; while (buffer[x] != ',') arg3_String[i++] = buffer[x++]; //Wert4 LQI x++; i=0; while (buffer[x] != ',') arg4_String[i++] = buffer[x++]; //Wert5 CRC x++; i=0; while (buffer[x] != ',') arg5_String[i++] = buffer[x++]; //Wert6 ADC_01 x++; i=0; while (buffer[x] != ',') arg6_String[i++] = buffer[x++]; //Wert7 ADC_02 x++; i=0; while (buffer[x] != ',') arg7_String[i++] = buffer[x++]; //Wert8 ADC_03 x++; i=0; while (buffer[x] != ',') arg8_String[i++] = buffer[x++]; //Wert9 ADC_04 x++; i=0; while (buffer[x] != ',') arg9_String[i++] = buffer[x++]; //Wert10 ADC_05 x++; i=0; while (buffer[x] != ',') arg10_String[i++] = buffer[x++]; //Wert11 ADC_06 x++; i=0; while (buffer[x] != 0x0d) arg11_String[i++] = buffer[x++]; //Konverteiren der Strings zu Integer //Serial.println(arg2_String); arg1 = atol(arg1_String); arg2 = atol(arg2_String); arg3 = atol(arg3_String); arg4 = atol(arg4_String); arg5 = atol(arg5_String); arg6 = atol(arg6_String); arg7 = atol(arg7_String); arg8 = atol(arg8_String); arg9 = atol(arg9_String); arg10 = atol(arg10_String); arg11 = atol(arg11_String); //Debugausgabe Serial.print("Counter: "); Serial.println(arg1); Serial.print("Bytes: "); Serial.println(arg2); Serial.print("dBm: "); Serial.println(arg3); Serial.print("LQI: "); Serial.println(arg4); Serial.print("CRC: "); Serial.println(arg5); Serial.print("ADC_01: "); Serial.println(arg6); Serial.print("ADC_02: "); Serial.println(arg7); Serial.print("ADC_03: "); Serial.println(arg8); Serial.print("ADC_04: "); Serial.println(arg9); Serial.print("ADC_05: "); Serial.println(arg10); Serial.print("ADC_06: "); Serial.println(arg11); } print_flag = false; } } Zitieren
Empfohlene BeitrÀge
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.