===== 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 $$