Jump to content
elektro-skateboard.de

barney

Elektro-Skater
  • Gesamte Inhalte

    3.658
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    8

Alle erstellten Inhalte von barney

  1. Welchen Überstrom Fall?
  2. 3.3V MOSFET für Licht und oder Hupe: Simuliert mit 3.1V!
  3. Simulation Optokoppler:
  4. Es wurde ein unbemerkter Brems-Bug ausgemerzt! Die Motorsteuerung wurde durch ISR in ein festes Zeitraster eingebracht. 3.4P1 05.06.2014 Barney: Fuer die vereinfachte Konfiguration sind jetzt Custom_Settings und Parameters in eine eigene Datei ausgelagert worden. Überstromroutine überprüft. 3.4P2 08.06.2014 Barney: Steuerung funktioniert jetzt wieder. Unnoetige nunchuk.init wurden entfehrnt. Es werden durch die Nunchuk abfrage nur 20 Motorstellwerte/s erzeugt. Spaetere Version mit Teensy optimierter Lib ist angestrebt. Messungen sind O.K. Strombegrenzung nicht optimal, wird noch nachgearbeitet. Es fehlte ein if () wenn gembremst wird sollte die Strombegrenzung nicht die Bremse abschalten. Beim fahren klappt die Strombegrenzung nicht so optimal. 3.4P3 09.06.2014 Barney: Alle #Define mit Typendefinition versehen. Die Debugzwecke kann die Ausgabe der Messwerte von Serial1 auf Serial (USB) umgeleitet werden (Custom Settings) Bremsen auch mit Ueberstrom ist jetzt moeglich. 3.4P4 11.06.2014 Barney: Fehler in Auswertung der Y-Achse und der Bremswertberechnung beseitigt. Wenn der gemessene Wert der Y-Achse unter MinYAchse lag, wurde ein negativer Überlauf errechnet, welches die direkte Bremsfunktion abgeschaltet hat. Wenn jetzt analogY < MinYAchse ist wird analogY = MinYAchse. Vorsichtshalber wurde dies mit MaxYAchse auch begrenzt. Dies fällt nur bei der Verwendung mehrerer Nunchuks auf. Die Berechnung des Motorstellwertes wird jetzt durch den Timer3 zeitlich festgelegt. Durch das Weglassen einer unnoetigen Nunchuk Abfrage und Umstellung der (wieder) Verbindung zum Nunchuk im Sekundentakt, ist ein zeitliches äquidistantes Steuern den Motors moeglich.
  5. Hi Dude, das Phänomen ist nicht unbekannt. Ich hatte schon mal nachgedacht die Tastenabfrage mit einet zeitlichen Komponente zu versehen. D.h. z.B. 100ms Selbsthaltung.
  6. Strombegrenzung ist jetzt auch o.k.
  7. Also der Teensy 3.1 sollte jetzt vollständig angepasst sein. Alle Funktionalitäten sind getestet. Leider funktioniert die Strombegrenzung Beschleunigungsreduktion nicht so soft, wie ich es gehofft hatte. Da ist noch etwas Arbeit, die gemacht werden muss. Der Grundsätzliche Ansatz scheint zu stimmen, aber die Umsetzung ist Schrott. (Beim Arduino funktionierte diese auch nicht!) Debugging: Wurde massiv verändert und Erweitert: // Debugflag #define DEBUG TRUE // Aktivieren der Debugausgabe (TRUE,FALSE) #define DEBUG_Funktion FALSE // Aktivieren der Debugausgabe Welche Funktionen werden aufgerufen (TRUE,FALSE) #define DEBUG_ISR FALSE // Aktivieren der Debugausgabe Aufruf der ISR Interrupt Service Routinen (TRUE,FALSE) #define DEBUG_Nunchuk FALSE // Aktivieren der Debugausgabe Nunchuk Werte x,y-Achse, Beschleunigung, c,z-Button(TRUE,FALSE) #define DEBUG_Messung FALSE // Aktivieren der Debugausgabe interne Messwerte und Berechnungen (TRUE,FALSE) #define DEBUG_Motorsteller TRUE // Aktivieren der Debugausgabe interne Werte Motorsteller (TRUE,FALSE) Es werden jetzt auch dazu Erklärungen mitgeliefert: Beschleunigung, Neutralstellung, Bremsen. StellWertMotor: 4915 Neutralstellung StellWertMotor: 5480 Beschleunigung StellWertMotor: 3250 Bremsen Diese Werte und Kommentarausgabe hilft beim Einstellen des Motorstellers, bzw. beim Überprüfen des Verhaltens bei Fehlfunktionen.
  8. Werte Mitbastler, es war lange überfällig, ab heute wird das Programm von den Parametern getrennt! D.h.: Jeder hat sein eigenes * Elektroskate_Custom_Settings.h -> BT vorhanden, Strom und Spannungsmessung erwünscht? u.s.w. * Elektroskate_Custom_Parameters.h -> Hier können die Spannungsmessbereiche oder Überströme, Nunchukverhalten eingestellt werden. * Elektroskate_Changelog -> Was wurde am Programm verändert? * Elektroskate_Connection -> Wo wird was angeschlossen und was macht überhaupt das Programm? Und die Debug Ausgabe wurde von der Datenausgabe getrennt. D.h. Debug über USB und Daten über BT-Modul! Elektroskate_Custom_Settings.h // Debugflag #define DEBUG TRUE // Aktivieren der Debugausgabe DEBUG = TRUE, FALSE // Wie soll gesteuert werden #define DirectDrive FALSE // TRUE -> Direct Drive, FALSE -> Integrations Drive // Sonderfunktionen #define UIMESS TRUE // HW UI-Messung vorhanden (TRUE,FALSE) #define LICHTHUPE TRUE // HW Licht, Hupe vorhanden (TRUE,FALSE) #define TEMPMESS TRUE // HW Temperaturmessung vorhanden (TRUE,FALSE) #define LESOFT TRUE // HW Leistungselektronik langsam hochfahren vorhanden (TRUE,FALSE) Elektroskate_Custom_Parameters.h // Serielle Geschwindigkeit #define BT_BAUDRATE 115200 // Datenrate fuer das Bluetooth Modul, ggf. fuer ein anderes BT-Modul anpassen, Ausgabe über Serielle Schnittstelle 1 #define DEBUG_BAUDRATE 115200 // Datenrate fuer das Debugging in der Arduino IDE per USB //Wertebereich von (Min..Max,SinnvollUntererWert..SinnvollObenrerWert) // Nunchuk - Steuerparameter Sollwertvorgabe und Programmablaufsteuerung #define MinYAchse 27 // Minmalwert y-Achse ganz unten (0..255, 0..30) #define MaxYAchse 255 // Maximalwert y-Achse ganz oben (0..255, 240..255) #define NeutralstellungYAchse 130 // Neutralstellung Y-Achse (0..255, 125..135) #define ObererTotpunkt 145 // Wenn dieser Wert von der Nunchuk Y-Achse ueberschritten wird, wird beschleunigt (Integrationssteuerung) (0..255, 136..145) #define UntererTotpunkt 124 // Wenn dieser Wert von der Nunchuk Y-Achse unterschritten wird, wird die Beschleunigung zurueckgenommen (Integrationssteuerung) (0..255, 115..124) #define PairingLostTrigger 50 // Schwellwert fuer Funkabriss, wird dieser Wert ueberschritten liegt ein Funkabriss vor (0..255, 20..70) #define PairingSuccessTrigger 5 // Schwellwert fuer erfolgreiche Verbindung (0..255, 5..10) // Temperatursensoren #define TempSensorAnzahl 1 // Die Temperatursensoranzahl -1 hier eintragen byte TempAddress[3][8] = {{ 0x28, 0x75, 0x3F, 0x2A, 0x04, 0x00, 0x00, 0x73 } // Seriennummer der Temperatursensoren, diese muss extra ermittelt werden ,{ 0x28, 0x0D, 0xE2, 0x00, 0x04, 0x00, 0x00, 0x93 } // Seriennummer der Temperatursensoren, diese muss extra ermittelt werden ,{ 0x28, 0x0D, 0xE2, 0x00, 0x04, 0x00, 0x00, 0x93 }}; // Seriennummer der Temperatursensoren, diese muss extra ermittelt werden // PWM Motorsteuerung #define PWM_ObererStellWertMotorIgel 1.7 // Wert berechnen fuer Oebere Pulsweite Igel (1.7ms Pulsweite) (0.0..5.0, 1.6..1.8) #define PWM_ObererStellWertMotorHase 2.0 // Wert berechnen fuer Oebere Pulsweite Hase (2.0ms Pulsweite) (0.0..5.0, 1.9..2.1) #define LeerlaufOffset 0 // Offset zum schnelleren Ansprechen des ESC bei inkrementeller Steuerung (0..255, 0..200) #define PWM_LeerlaufStellWertMotor 1.5 // Wert berechnen fuer Leerlauf (1.5ms Pulsweite) (0.0..5.0, 1.4..1.6) #define PWM_UntererStellWertMotor 1.0 // Wert berechnen fuer untersten Wert (1.0ms Pulsweite) (0.0..5.0, 9.9..1.1) // Incrementel Drive Parameter #define BeschleunigungsDaempfung 7 // Je groesser die BeschleunigungsDaempfung, desto langsamer wird Beschleunigung oder Bremse angenommen (ggf. anpassen) (0..255, 0..20) // Spannungs/- und Strommessung #define BattSpgMMax 30 // Maximale messbare Batterienspannung 30V, #define StromMMax 50 // Maximal messbarer Strom in A (ACS756SCA-050B Stromsensor) // Strombegrenzung und Kurzschlusserkennung #define Ishort (uint8_t) 50 // Maximaler Strom, dieser fuehrt zur sofortigen Abschaltung (<= StromMMax) #define Imax (uint8_t) 30 // Grenzwert, ab dem die Strombegrenzung einsetzt #define Strom0A (float) StromMMax // 0A Messwert, wird angezeigt wenn kein Strom fliesst und Strom0A = 0 (muss kalibriert werden)
  9. Ich verstehe das Flatterband nicht? Ein bewaffneter Skateboarder mit Sprengsatz unter dem Board ist doch kriminell? Wenn nicht das, was denn?
  10. Unter Einstellungen und Optionen:<br />

    Private Nachrichten<br />

    Dieses Forum enthält ein System, mit dem es möglich ist, anderen Benutzern eine Private Nachricht, ähnlich einer E-Mail, zukommen zu lassen.<br />

    <br />

    Falls du keine Privaten Nachrichten versenden oder erhalten möchtest, kannst du die Funktion hier deaktivieren.<br />

    X Private Nachrichten aktivieren

  11. Unter Einstellungen und Optionen:<br />

    Private Nachrichten Dieses Forum enthält ein System, mit dem es möglich ist, anderen Benutzern eine Private Nachricht, ähnlich einer E-Mail, zukommen zu lassen.<br />

    <br />

    Falls du keine Privaten Nachrichten versenden oder erhalten möchtest, kannst du die Funktion hier deaktivieren. Private Nachrichten aktivieren

  12. Hallo Waiti,<br />

    <br />

    freut mich, dass dich das Projekt interessiert. Die Arduino Entwicklung wird nicht mehr weiter entwickelt. Ich selber fahre noch wenige Wochen mit den Arduino. Die weitere Entwicklung geht mit den Teensy weiter. Ich würde dir eher nahe legen, mit den Teensy 3.1 zu beginnen. Dude ist auch auf diesen Zweig aufgesprungen. Es ist aber grundsätzlich nicht falsch den Arduino Thread zu lesen.<br />

    <br />

    Wie gesagt schwenke lieber auf:<br />

    http://www.elektro-skateboard.de/forum/eigenbauten-95/wii-nunchuck-mit-teensy-3-1-a-2540.php<br />

    <br />

    Der Teensy hat mehre Vorteile. Preis, Geschwindigkeit, Auflösung des analog Umsetzers,.... <br />

    <br />

    Wenn es doch der Arduino sein soll, sende ich dir gerne diesen zu, ich benötige nur deine E-Mail Adresse.<br />

    <br />

    Und schalte bitte deine Nachrichten Box ein, sonnst kann ich dir nicht richtig antworten

  13. Neue Teensy Lib Version 1.19 ist raus! Es kann jetzt auch 72MHz als Takt gewählt werden, ohne den Teensy zu übertakten. Für die ganz harten sind versteckte overclocking Einstellungen bis nahezu 170MHz möglich. Add slow clock options, 2, 4, 8 & 16 MHz Increase flash overclocking when CPU is overclocked to 168 MHz http://forum.pjrc.com/forums/6-Announcements
  14. IRLR3114ZPbF -> 40V, 20-30A bei 3.3V, geringer Innenwiderstand IRLR2905 -> 55V, 30-40A bei 3.3V hattest du selbst schon ausgesucht. Und immer daran denken: Pv=I^2*R PVerlust= Strom im Quadrat * Widerstand
  15. Hi Dude, eine Sache hatte ich noch vergessen. Die MOSFETs für Licht und Hupe sollten auch bei 3.3V sicher schalten. Dafür gibt es logic level MOSFETs. Die sind dafür geeignet ohne das Optokoppler Geraffel sicher zu schalten. Die Ströme liegen bei erster Sichtung um die 30A bei 55V Typen. Ich liefer genaue Daten am Montag.
  16. Und die Energie wird in den MOSFETS und in der Motorwicklung als Wärme umgesetzt. Zuleitung lasse ich mal inhaltlich weg.
  17. Bei der Simulation war zu sehen, dass aufgrund des hohen Widerstand zwischen GS das Abschalten eine Weile dauert. Ca. 10ms. Solte reichen.
  18. Pro Ausgang ca. 25mA max, aber 185mA gesamt für den Teensy. Die 100mA gelten für den Spannungsregler im Teensy.
  19. Teensy futsch!
  20. Also bei 10mA ist Ic ca. 7mA. Udiode soll ca. 1.5V sein. Also 3.3V-1.5V= 1.8V/10mA 180 Ohm. Das solte passen. Aber nur 7mA am Ausgang des Optokoppler. Da müsste ggf. der 10k Ohm Widerstand angepasst werden.
  21. Beim ersten drüberschauen würde ich 10mA als Arbeitsstrom einstellen.
  22. Ohne Datenblatt kann ich nur wenig dazu sagen.
  23. http://www.franzis.de/elektronik/elektronikbuch/pc-elektronik-labor Wurde mit 1464 Seiten Papier bei Hugendubel für 10,-€ verscheuert.
  24. Da möchte ich noch erwähnen: http://www.mikrocontroller.net/articles/Schaltungssimulation#NI_MultiSim_.2F_Electronics_Workbench
  25. Ni Multisim 10.1 für 10,-€ zu haben bei Hugendubel.
×
×
  • Neu erstellen...