Autor: Barney
Aufgabenstellung:
Es soll mit einer kleinen unauffälligen Handfernbedienung ein Elektroskateboard ferngesteuert werden. Es gab ein Vorläuferprojekt mit einen Arduino und Nunchuk. Aus diversen Gründen, nachzulesen unter:
http://www.elektro-skateboard.de/forum/eigenbauten-95/wii-nunchuck-mit-teensy-3-1-a-2540.php
wurde der Arduino Uno durch einen kleinen sehr leistungsfähigen Teensy 3.1 ersetzt.
Folgende Funktionen wurde bisher gewünscht und umgesetzt:
1. Z-Taste + Nunchuk Y vorn -> beschleunigen (Integrationssteuerung/relativ oder DirectDrive/absolut) 2. Z-Taste + Nunchuk Y hinten -> entschleunigen mittelbar (Integrationssteuerung/relativ oder DirectDrive/absolut) 3. Z-Taste + Nunchuk Y mitte -> Geschwindigkeitsvorgabe halten (Integrationssteuerung), Motorfreilauf (DirectDrive) 4. Z-Taste losgelassen -> Motorfreilauf (Integrationssteuerung/relativ oder DirectDrive/absolut) 5. Z-Taste losgelassen + Hebel hinten -> bremsen (unmittelbar Integrationssteuerung und DirectDrive) 6. C-Taste + Nunchuk X neutral -> Hupe (getastet) 7. C-Taste + Nunchuk X links -> Licht (geschaltet) 8. 3 x Z-Taste + Nunchuk X links -> Geschwindingkeitsumschaltung Hase / Igel 9. 3 x Z-Taste + Nunchuk X rechts -> Umschaltung IntegralDrive -> DirectDrive (gestartet wird mit IntegralDrive) 10. Funkabriss -> Motor Freilauf 11. Temperaturmessung 12. Messung von Strom und Akkuspannung mit Bestimmung der umgesetzten Momentanleistung und Gesamtleistung
Was ist eine Integrationssteuerung oder DirectDrive?
Die Integrationsteuerung ist ein indirektes Steuern der Motorleistung durch zugeben oder wegnehmen der Leistung durch Bewegung der Nunchuk Y-Achse. Je weiter die Achse vom Nullpunkt verschoben wird, desto schneller wird die Leistung gesteigert oder verringert. Das Festhaltern der Z-Taste ist obligatorisch, um den letzten Wert zu halten. Wird die Z-Taste losgelassen, wird sofort in den Motorleerlauf geschaltet.
DirectDrive ist die Direkte Ansteuerung des Motorcontrollers ohne Dämpfung. Wird die Nunchuk Y-Achse vollständig nach vorn gestellt, wird diese Anforderung ohne Umschweife an den Motorcontroller durchgereicht. Dies ermöglicht ein sehr sportliches Fahren, aber auch durch den sehr kleinen Nunchuk Hebel, unfallträchtiges Fahren.
Die Umschaltung zwischen DirectDrive und die Integrationssteuerung erfolgt mittels Nunchuk (ab Version Elektroskate_Teensy31_v4p9_ADC_LIB_SwitchDriveMode) im Stillstand oder während der Fahrt. Deaktiviert seit dem 19.04.2015.
Anschlussmöglickeiten:
Obligatorisch:
- Spannungsversorgung 5.2-45V
- Nunchuk (Wireless: Logi 3 oder bevorzugt MadCatz)
- Motorcontroller (Opto HV, oder unisolierte Typen mit BEC)
Nice to Have:
- Spannungsmessung (sobald die Versorgungsspannung angelegt wird, wird diese vom Teensy gemessen)
- Strommessung mittels ACS756-XXX (XXX = Typ 050A, 100A, 200A bipolar). Damit kann der Strom am Akku gemessen werden. Es besteht die Möglichkeit in der Software eine Strombegrenzung zu aktivieren.
- Temperaturmessung mittels DS1820 (Motor und Motorcontroller Temperatur)
- Bluetooth Verbindung zum Smartphone (Android) oder später zur Fernbedienung mit Teensy und Touch Display
In Arbeit:
Schaltplan Version 08.08.2014:
Auf der Leiterplatte 08/2014:
Neue Version:
Schaltplan Version 30.11.2014 final:
Layout Version 05.12.2014:
Aktuelle Version 2.7
Entwicklungsumgebung:
http://www.elektro-skateboard.de/wiki/bambam/teensy-programmieren
Kosten:
Mit Leiterplatte in einer Sammelbestellung, ca. € 80,-. Davon alleine € 15,- für die unbestückte Leiterplatte. Für den Stromsensor sind je nach Klasse € 7-14,- , für die Temperatursensoren je Sensor € 2,- , zusätzlich zu berechnen.
Der Mad Catz Wii Wireless Z-Chuck kostet um die € 14,- und ist in den € 80,- enthalten.
Bezugsquellen:
Kleinteile: http://www.segor.de/#/
LC78_03: http://www.elv.de/
Teensy: http://www.exp-tech.de/
BT-Modul: E-Bucht
Bauteilliste V2.7 SMD:
1 x Leiterplatte 15,00 € Leiterplatte 1 x LC78_1.0A 3.3V 09,19 € Spannungsregler (5,5V bis 42V) 1 x Teensy 3.1 17,80 € Mircocontroller 1 x HC-05 06,20 € Bluetooth-Modul (Telemetrie) 1 x Mad Catz Wii Wireless Z-Chuck 14,00 € Nunchuk Optional: 1-4 x BTS 555 je 10,80 € Highside-Sw. 40V 128A (Antispark) 1-3 x DS18B20+ je 02,30 € Temperatursensor Motor, Akku, Motorcontroller 1 x ACS 756 SCAxxx oder ACS 578 12,00 € Stromsensor +- 50, 100 oder 200A Strommessung Bauteilliste für eine Platine. Bestimmte Bauteile gibt es nur im 10er Pack. (Preise 18.04.2015) 1:CNY 74-2 2 0.48 0.96 Dual-Koppler 5kV 70V DIP8 2:IRLR 2905 Z 5 1.10 5.50 N-MOS LL 55V 42A TO252 3:1N 4001-SMD 1 0.72 0.72 50V 1A SOD123F=MiniSMA SMD 4:MBR 0540 T1-SMD 2 0.30 0.60 Schottky 40V 0,5A SOD123 5:ZD 15V 0,5W 1 0.10 0.10 Z-Diode 15V 0,5W 6:LED 0805 ge /80mcd 1 0.20 1.20 SMD-LED gelb 590nm 0805 7:LED 0805 gn 1 0.10 1.00 SMD-LED grün 565nm 0805 8:LED 0805 rt /70mcd 1 0.12 1.20 SMD-LED rot 660nm 0805 9:u10-R2.5-X7R 10 0.05 0.50 100nF X7R 10% 50V 1206 10er-weise 10:4u7-1206-X7R/50V 10 0.20 2.00 4,7uF X7R 10% 50V SMD 10er-weise 11:10u-1210-X7R/50V 1 0.60 0.60 10uF-50V 10% X7R SMD 1210 12:22u-1206-X5R/6,3V 1 0.40 0.40 22uF X5R 10% 6,3V 1206 13:Jumper-L 1 0.10 0.10 Jumper m.Grifflasche sw 14:SL2x40-90G 1 1.80 1.80 Stiftleiste 2x40p 90' 15:SL2x 4-180G 2 0.12 0.24 Stiftleiste 2x4pol 180' 16:SL1x50-90G 2 1.00 2.00 Stiftl.1x50p 90'flach gew 17:PC-352 L 2 0.40 0.40 Platinensteckverb. 2pol 18:PC-353 L 2 0.48 0.96 Platinensteckverb. 3pol 19:PC-503 4 0.56 2.24 Platinensteckverb. 3pol. 20:1k0-1206-1% 10 0.0400 0.40 1,0kOhm 1% SMD 1206 TK100 21:220R-1206-1% 10 0.0400 0.40 220 Ohm 1% SMD 1206 TK100 22:3k3-1206-1% 10 0.0400 0.40 3,3kOhm 1% SMD 1206 TK100 23:4k7-1206-1% 10 0.0400 0.40 4,7kOhm 1% SMD 1206 TK100 24:10k-1206-1% 10 0.0400 0.40 10k Ohm 1% SMD 1206 TK100 25:470R-1206-1% 10 0.0400 0.40 470 Ohm 1% SMD 1206 TK100 26:6k8-1206-1% 10 0.0400 0.40 6,8k Ohm 1% SMD 1206 27:180k-1206-1% 10 0.0400 0.40 180kOhm 1% SMD 1206 TK100 28:DILLAB08 2 0.20 0.40 Präzisionssockel DIL08 29:SILLAB32 2 0.77 1.54 SIL-Sockelstreifen 32p 30:SILST20 Z 2 0.72 1.44 SIL-Stecker 20p verzinnt
Dimensionierung der Spannungsmesswiderstände:
R13 (R32) = 10k Ohm (diesen nicht verändern)
R14//R15 (R30/R31) = ? (R14 (R30) und R15 (R31) sind parallel geschaltet! Damit können besondere Widerstandswerte durch Parallelschaltung erreicht werden, die so nicht zu kaufen sind. Auch ein Feinabgleich ist damit möglich!)
Uteensymax = 3.3V
UBatt = z.B. 52V (Achtung nicht Nennspannung des Akkus, sondern die maximale Spannung nach dem Laden)
R14//R15 = (UBatt * R13) / (Uteensymax) - R13
R14//R15 = (52V * 10k) / 3.3V -10k = 147k Ohm -> 150k Ohm (kaufbar, nur R14 oder R15 einlöten) -> bis ca. 52.8V maximal messbar. Diesen Wert in die Software eintragen
#define BattSpgMMax (float) 52.8 // Maximale messbare Batterienspannung 33V (10k Ohm / 2 x 180k Ohm), oder ca. 43V (10k Ohm / 121k Ohm) UBatt = z.B. 36V -> R14//R15 = 120k Ohm -> bis ca. 42,9V messbar.
V Ubatt |
Ohm |
Achtung: Wenn der Wert von R14//R15 (R30//R31) schon durch einen Widerstand erreicht werden kann, wird nur ein R14 (R30) oder R15 (R31) eingelötet, der andere Platz bleibt unbestückt.
Teensy mit der aktuellen Software programmieren.
https://github.com/esk8b/bambam-controller
Änderungshistorie |
|||
---|---|---|---|
letzte Änderung: |
durch: |
Verlauf: |
Version: |
31.08.2014
|
Barney
|
Ersterstellung
|
V00
|
11.10.2014
|
Barney
|
Erste Ausführungen
|
V01
|
07.11.2014
|
Barney
|
Schaltplan
|
V02
|
18.01.2015
|
Barney
|
Tools bereitgestellt und neue Software
|
V03
|
- 1