| Both sides previous revision Previous revision Next revision | Previous revision |
| lehrkraefte:blc:robotics:brainstorm [2017/03/22 13:38] – [Sensoren] Ivo Blöchliger | lehrkraefte:blc:robotics:brainstorm [2017/04/30 14:54] (current) – [Mathematik] Ivo Blöchliger |
|---|
| | ===== Ziel ===== |
| | Roboter aus einfachen, günstigen Komponenten, mit Arduino, batteriebetrieben. Modular und flexibel. |
| | |
| | |
| | ===== Komponenten ===== |
| | |
| | ==== Batterie ==== |
| | [[http://www.ikea.com/ch/de/catalog/products/70303876/|Ikea hat günstige NiMH Batterien]] (4x 2400mAh für 7.-, 500 Ladungen), oder 4x 1000mAh für 4.- (1500 Ladungen). |
| | 6-fach AA-Batteriefach, betrieben mit 6 NiMH AA-Batterien. Spannung zwischen 6.5V und 8V, je nach Ladung und Belastung. Laut http://www.powerstream.com/AA-tests.htm sollten diese Batterien auch bei 2A noch 1.1V liefern. Der Roboter sollte kaum mehr als 1A ziehen. |
| | |
| | Wahrscheinlich habe ich einfach zu billige Akkus... Spannung bricht auf unter 5V zusammen, Arduino stellt ab, reset etc... |
| | |
| | Vorschlag: 4-fach AA plus Boost-Converter, wie z.B. [[https://www.aliexpress.com/item/DC-DC-SX1308-Step-UP-Adjustable-Power-Module-Boost-Converter/32646930044.html|dieser]]. Stark genug? Zu testen... |
| | |
| | Sonst tut wohl [[https://www.aliexpress.com/item/PM-1625MU-DC-DC-Boost-Module-0-9V-to-5V-1-5A-Power-module-XZ9218-Low/32575475108.html|dieses]] gute Dienste. |
| | |
| | === Spannungswandler === |
| | Mit vollen Batterien, halbwegs ok. Sonst Spannungsabfall... |
| | |
| | DC-Motoren werden direkt ab Batterie versorgt. Arduino über Vin mit 7V. Kleine 5V und 3.3V Komponenten ab Arduino. Für grössere 5V-Komponenten (z.B. Servo), evtl. zusätzlich ein Buck-Converter, z.B. [[https://www.aliexpress.com/item/LM2596HVS-LM2596HV-DC-DC-Adjustable-Step-Down-Buck-Converter-Power-Module-4-5-50V-to-3/32584276093.html|3A, 1.2V Dropout, regelbar]]. |
| | |
| | Alternative: LM298 Dual H-Bride mit 5V Output, (allerdings kein Buck-Konverter). |
| | |
| | === Variante === |
| | 4x AA-Batterien, Step-Up auf 5V, Motoren direkt an Batterie. |
| | |
| | Arduino über USB-Kabel an Wandler: Sicherung plus Trennung beim Programmieren. |
| | |
| | === Hauptschalter === |
| | [[https://www.aliexpress.com/item/10pcs-G130-10-15mm-SPST-2PIN-ON-OFF-Boat-Rocker-Switch-3A-250V-Car-Dash-Dashboard/32739231057.html|Irgendwas halt.]] |
| | |
| | |
| | ==== Arduino ==== |
| | Standard oder Mega 2560 (evtl. sechs pins motoren, 8 für motor sensoren...) |
| | |
| | === Anschlüsse === |
| | Als Stecker zusammenlöten (z.B. Motorensteuerung, Decoder). |
| | |
| | Besser: Female pins auf Bauteilen. |
| | |
| | === Port-Expander === |
| | Optional: MCP23016, bis 25mA per Pin, in beide Richtungen |
| | |
| | ==== Motoren und Räder ==== |
| | z.B. [[https://www.aliexpress.com/item/10PCS-LOT-Smart-car-tires-chassis-robot-suit-wheel-wheel-DC-gear-motor-motor-70g/32618498898.html|diese]] |
| | |
| | Hinterrad: [[https://www.aliexpress.com/item/10pcs-Smart-Car-Rectangle-Top-Swivel-Caster-Castor-PP-Nylon-Wheel-Diameter-30mm/32593190682.html|Hinterrad]]. Auch zu finden unter [[https://www.aliexpress.com/item/4pcs-NED-7425-10Kg-Universal-Swivel-Casters-1-Wheels-Castor-White-PP-Nylon-Dual-Roller-Bearing/32572389926.html|"furniture caster"]]. |
| | |
| | === H-Brücke, Driver === |
| | z.B. [[https://www.aliexpress.com/item/20pcs-lot-L9110S-DC-Stepper-Motor-Driver-Board-H-Bridge-L9110-Free-Shipping-Dropshipping/2026612039.html|die hier]]. Bis 0.8A (max 2x 0.25A = 0.5A wird benötigt). Frisst 2.5V bis 12V.). Möglichkeit via step-up Converter auf 5V zu betreiben. |
| | |
| | Besser: [[https://www.aliexpress.com/item/1-5A-2-way-DC-Motor-Driver-Module-PWM-Speed-Dual-H-Bridge-Stepper-L298N/32688079201.html|ab 2V, bis 1.5A]] |
| | |
| | Erste Tests mit [[https://www.aliexpress.com/item/HG7881-HG7881CP-2-Channel-Motor-Driver-Board-Motor-Drive-Module/32342077231.html|9110 basiertem Board]] ok, wird schon etwas heiss, wenn man den Motor blockiert. [[https://www.aliexpress.com/item/H-bridge-Stepper-Motor-Dual-DC-Motor-Driver-Controller-Board-L9110S-For-Arduino/2038557946.html|gleich aber günstiger]]. |
| | |
| | [[https://www.aliexpress.com/item/10pcs-lot-DRV8833-2-Channel-DC-Motor-Driver-Module-Board-1-5A-3V-10V/32753126106.html|Wird auch beim Blockieren kaum warm. Handlicher geht's kaum mehr]] |
| | ==== Sensoren ==== |
| | CHANGE Interrupts sind auf allen pins möglich, ein bis zwei Sensoren per Rad. |
| | |
| | [[https://www.aliexpress.com/item/speed-sensor-Tacho-sensor-Slot-type-Optocoupler-Tacho-generator-Counter-Module-for-Arduino-for-Raspberry-pi/32694762407.html|Lichtschranke als fertiges Board]] |
| | |
| | [[https://www.aliexpress.com/item/Coded-Disc-Encoder-20-Holds-Motor-Speed-Sensor-for-Robot-Speed-Test-good/32395002796.html|Encoder Disc]] und noch [[https://www.aliexpress.com/item/50pcs-Coded-Disc-Encoder-20-Holds-Motor-Speed-Sensor-for-Robot-Speed-Test/32650023658.html|günstiger]] |
| | |
| | [[https://www.aliexpress.com/item/10pcs-2016-New-IR-Infrared-Slotted-Optical-Speed-Measuring-Sensor-Detection-Optocoupler-Module-For-Motor-Test/32632020600.html|handliche Lichtschranke, mit Schraubenlöchern]] (10 Stück bestellt). |
| | |
| | [[https://www.aliexpress.com/item/Smart-Electronics-F249-speed-sensor-module-4-PIN-Infrared-Speed-Sensor-Module-For-arduino-51-AVR/32717080801.html|Weiteres Board]] |
| | |
| | [[https://www.aliexpress.com/item/Free-Shipping-100pcs-KW-1-2A-Small-lever-micro-limit-switch/32546855308.html|Limit Switches]] |
| | |
| | === IR / US Distanz === |
| | [[https://www.aliexpress.com/item/10PCS-TCRT5000-Infrared-Reflective-IR-Photoelectric-Switch-Barrier-Line-Track-Sensor-Module-For-Arduino/32671618820.html|Fix fertig]] oder [[https://www.aliexpress.com/item/20-pcs-TCRT5000L-TCRT5000-Reflective-Optical-Sensor-Infrared-IR-Photoelectric-Switch/1909098476.html|Eigenbau]] |
| | |
| | === Counter-IC? Quadrature decoder? === |
| | Siehe z.B. [[http://www.mindspring.com/~tom2000/Delphi/Codewheel.html|hier]]. |
| | |
| | === PCBs === |
| | [[https://www.aliexpress.com/item/5pcs-2x8-cm-double-Side-Copper-prototype-pcb-2-8-panel-Universal-Board-for-Arduino-Free/750979541.html|2x8 boards]] oder [[https://www.aliexpress.com/item/Free-shipping-50PCS-LOT-2x8-cm-PROTOTYPE-PCB-2-layer-2-8-panel-Universal-Board-in/1890416777.html|diese]] |
| | ==== Gestell ==== |
| | 3mm Acrly, Eigenbau. Steckbare Halterungen für Arduino, ICs etc. |
| | |
| | Evtl. zweistöckig. |
| | |
| | === Schrauben, Winkel etc. === |
| | 1 Typ Schrauben M3 (Motoren). Lochgröse auf Platinen: 3mm passt. |
| | |
| | Go [[https://www.aliexpress.com/item/100pcs-M3-carbon-steel-hex-nut-hexagon-nuts-hw10/32585008102.html|Nuts]] |
| | |
| | M3: 8mm, [[https://www.aliexpress.com/item/M3-Screw-50pcs-3x8mm-48mm-Match-M3-Copper-Cylinder-M3-Parafuso-Tornillos-High-Quality/32768440309.html|z.B. diese]] |
| | |
| | z.B. [[https://www.aliexpress.com/item/100pcs-M3-washer-Stainless-Steel-Form-A-Flat-Washers-To-Fit-Metric-Bolt-Screws-Hardware/32668814715.html|Washers 3mm]] |
| | |
| | [[https://www.aliexpress.com/item/WSFS-Hot-100-Pcs-M3-Male-Female-Brass-Hex-Stand-off-PCB-Spacer-Pillar-8mm/32775383334.html|Spacers]]. |
| | |
| | === Kabel, Drähte === |
| | Flexible Drähte (28AWG ok), Drähte für Motoren: 28AWG ginge auch noch, besser aber 24. |
| | |
| | Dupont lines für den Rest. |
| | |
| | Flexible kleine Drähte für Rest. |
| | |
| | ==== Optionale Komponenten ==== |
| | [[https://www.aliexpress.com/item/10pcs-New-Character-1602-LCD-Module-Display-5V-Serial-Adapter-Module-IIC-I2C-TWI-For-Arduino/32375875531.html|LCD-Display]] oder [[https://www.aliexpress.com/item/10PCS-Yellow-Display-IIC-I2C-TWI-SP-I-Serial-Interface-1602-16X2-LCD-Module-New/2055099019.html|bizzeli günschtiger]] |
| | |
| | ===== Software ===== |
| | Interrupts für Motorendecoder. |
| | Einfachste Variante, 1 Sensor, steigende Flanke: 200rp -> 32 Hz mal 20 Löcher -> 640 Hz maximal |
| | Luxus-Variante Quadrature Encoder: 200rpm -> 32 Hz mal 20 Löcher * 4 -> 2560 Hz maximal |
| | |
| | PWM für Motoren (2 pins) (Reicht 1kHz PWM Frequenz)? |
| | |
| | Timer-Interrupts für Motorensteuerung? Pro: kein Polling. Cons: Stört u.U. den decoder. |
| | Einfache PI-Regler (Regelgrösse s oder v). |
| | |
| | ===== Mathematik ===== |
| | * Batterie mit Spannung $U_B$ ohne Last (variabel aber messbar). Innerer Widerstand $R_B$ (variabel, muss geschätzt/angepasst werden). |
| | * Motor mit Widerstand $R_M$ (messbar, zwischen 3 und 5 $\Omega$), Induktivität $L_M$ (wie messen?) und Konstante $K$ für "Back-EMF" (Gegenspannung $K \dot{\vartheta}$). Trägheitsmoment $J_M$ und Reibungskoeffizient $b$ (kann nur abgeschätzt werden). |
| | * Strom $I$. |
| | |
| | Summe der Spannungen ist Null: |
| | $$ |
| | U_B - R_B\cdot I - R_M\cdot I - L_M \cdot \frac{\mathrm{d}I}{\mathrm{d}t} + K \omega = 0 |
| | $$ |
| | |
| | Bewegungsgleichung (Drehgeschwindigkeit $\omega$) |
| | $$ |
| | K \cdot I = J_M \cdot \frac{\mathrm{d}\omega}{\mathrm{d}t} + b \omega |
| | $$ |
| |