Ardumower LP: Unterschied zwischen den Versionen
(→Needed modules) |
(→Leiterplatten-Module) |
||
(91 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | [[File: Pcb_top.jpg | 800px]] | |
− | Diese Seite beschreibt,wie die Ardumower Hauptleiterplatte aufgebaut wird, wie das Programm auf den Arduino aufgespielt wird, | + | |
+ | Diese Seite beschreibt,wie die Ardumower Hauptleiterplatte aufgebaut wird, wie das Programm auf den Arduino aufgespielt wird, und wie man den Mähroboter konfiguriert. | ||
+ | |||
+ | =Übersicht= | ||
Kernstück der Steuerung ist ein fertiges Microcontroller-Modul (Arduino Mega 2560 verwendet 54 I/O pins). | Kernstück der Steuerung ist ein fertiges Microcontroller-Modul (Arduino Mega 2560 verwendet 54 I/O pins). | ||
<gallery> | <gallery> | ||
File: Ardumower_overview.png | Komponenten Überblick | File: Ardumower_overview.png | Komponenten Überblick | ||
− | |||
− | |||
− | |||
File: Ardumower_pcb_photo.jpg | Die Ardumower LP verbindet alle Module (verfügbar im Shop) | File: Ardumower_pcb_photo.jpg | Die Ardumower LP verbindet alle Module (verfügbar im Shop) | ||
− | File: | + | File: Pcb_top.jpg | PCB oben |
− | File: | + | File: Pcb_bluetooth.jpg | PCB unten |
+ | File: Pcb_mc33926.jpg | PCB und MC33926 | ||
</gallery> | </gallery> | ||
=Benötigte Module= | =Benötigte Module= | ||
− | Alle Module können | + | Alle Module und Teile können über den [https://www.marotronics.de/ Shop] bezogen werden. |
− | + | =Hauptleiterplatte= | |
− | + | Die Leiterplatte wurde mit folgenden Parametern entwickelt: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | * LP Abmessungen 241x114mm |
− | * | + | * Alle Module (Motortreiber, Bluetooth, usw.) können auf die Leiterplatte gelötet (oder gesteckt) werden (Modules sind im Ardumower-Shop verfügbar) |
− | * | + | * Verwendet den Arduino Mega 2560 |
− | ** | + | * Optional: kann der Arduino Due mittels zusätzlicher LP-Adapter verwendet werden |
+ | * Optional: integrierter Ladestromkreis (Strombegrenzung) | ||
+ | * alle Verbindungen, einschliesslich +5V und GND, sind über Steckverbinder realisiert | ||
+ | * Max. Strombelastung der Leiterbahnen (für Motoren): 8A | ||
− | + | =PCB Bauanleitung= | |
− | * | + | Roboterplatine v0.5 (1. Prototyp, bitte nicht mehr verwenden) |
− | * | + | * [https://github.com/Ardumower/ardumower/tree/master/pcb/Produzierte_Platinen/megashield_svn_0.5/Platinenbilder Fotos] |
+ | * [https://github.com/Ardumower/ardumower/raw/master/pcb/Produzierte_Platinen/megashield_svn_0.5/ardumower%20mega%20shield%20svn.pdf Schaltbilder] | ||
− | + | Roboterplatine v1.2 (geringe Layoutänderungen) | |
− | + | * [https://github.com/Ardumower/ardumower/raw/master/pcb/Produzierte_Platinen/megashield_svn_1.2_geschlossen/ardumower%20mega%20shield%20svn.pdf Schaltpläne] | |
− | ** | + | * [https://github.com/Ardumower/ardumower/tree/master/pcb/Produzierte_Platinen/megashield_svn_1.2_geschlossen/Platinenbilder Photos] |
− | ** | + | * [http://www.ardumower.de/media/kunena/attachments/1259/ArdumuverBestckung2015-04-221115.pdf Bauanleitung] |
− | ** | + | * [https://github.com/Ardumower/ardumower/blob/master/Dokumentation/Megashield%20svn%201.2%20und%20V0.5/WorkaRound20150527.pdf WorkaRound20150527] |
+ | * [https://github.com/Ardumower/ardumower/blob/master/Dokumentation/Megashield%20svn%201.2%20und%20V0.5/WorkaRound20150530.pdf WorkaRound20150530] | ||
+ | * siehe auch: Dokumentationen im [https://github.com/Ardumower/ardumower/tree/master/Dokumentation Github] | ||
− | + | 12V/24V: Die Platine ist für 24V ausgelegt worden. Für 12V müssen einige wenige Sachen geändert werden auf der 1.2 Platine: | |
− | + | * R2 Vorwiderstand „Led Betriebsspannung“ muss bei 12V auf 560OHm angepasst werden | |
+ | * R11 Vorwiderstand“StationsLED „ muss bei 12V auf 560OHm angepasst werden | ||
+ | * und man benötigt noch statt den 24V Relais ein 12V Relais. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''Bemerkung:''' Das Schaltbild und die Platinen-Zeichnungen wurden mit KiCad entwickelt. Sie können hier heruntergeladen [https://github.com/Ardumower/ardumower/archive/master.zip github] und damit bearbeitet werden [http://kicad.nosoftware.cz/windows/KiCad_testing-2014.10.19-BZR5203_Win_full_version.exe KiCAD software]. | |
− | + | ||
− | + | ||
− | + | ||
− | + | =PCB Bauanleitung Videos= | |
− | * [https:// | + | * [https://www.youtube.com/watch?feature=player_embedded&v=smZj60sxQvU Widerstände] |
− | * [https:// | + | * [https://www.youtube.com/watch?feature=player_embedded&v=chEBCcJDsjg Dioden und Relais] |
− | * [https:// | + | * [https://www.youtube.com/watch?feature=player_embedded&v=O6nyuSsCH1I Elkos und Transistoren] |
− | * [https:// | + | * [https://www.youtube.com/watch?feature=player_embedded&v=m8XGWGwdEBk Piezo Buzzer und Sicherung] |
− | * [https:// | + | * [https://www.youtube.com/watch?feature=player_embedded&v=a1y8C_uRdtA Stiftleisten] |
+ | * [https://www.youtube.com/watch?feature=player_embedded&v=RrU6lTCU0cc DC/DC Wandler] | ||
+ | * [https://www.youtube.com/watch?feature=player_embedded&v=fOvV-kD0y7k RTC-Modul] | ||
+ | * [https://www.youtube.com/watch?feature=player_embedded&v=DokrJiVzX2I Dual MC33926] | ||
+ | * [https://www.youtube.com/watch?feature=player_embedded&v=lyCH8CQD358 INA169] | ||
+ | * [https://www.youtube.com/watch?feature=player_embedded&v=M-rC03VlGK4 Akku & Ladegerät] | ||
− | + | =Leiterplatten Jumper= | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | [[File: Bestueckung_versorgung_laden.png]] | |
− | + | ||
− | + | ||
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Wenn benutzt... |
− | ! | + | ! ...JA |
− | ! | + | ! ...NEIN |
− | ! | + | ! Kommentar |
|- | |- | ||
− | | | + | | integrierter Laderegler mit einstellbarem |
− | + | Spannungsregler (LM350T) mit Potentiometer | |
− | + | für einstellbare Ladespannung | |
− | ( | + | (empfohlen: Nein) |
| D7: DIODE | | D7: DIODE | ||
D3: DIODE | D3: DIODE | ||
− | C1, C4, U4, RV1: | + | C1, C4, U4, RV1: verwendet |
− | |D7: | + | |D7: brücken |
− | D3: | + | D3: brücken |
− | C1, C4, U4, RV1: | + | C1, C4, U4, RV1: nicht verwendet |
− | | | + | | Bei externem Ladegerät nicht verwenden |
|- | |- | ||
− | | | + | | externe Stromversorgung währen des Ladens (empfohlen: Nein) |
− | | JP6: | + | | JP6: geschlossen |
− | JP7: | + | JP7: offen |
D4: DIODE | D4: DIODE | ||
− | C5: | + | C5: nicht verwendet |
− | | JP6: | + | | JP6: offen |
− | JP7: | + | JP7: geschlossen |
− | D4: | + | D4: brücken |
− | C5: | + | C5: verwendet |
− | | | + | | um Platine von aussen mit Strom zu versorgen (trennt Akku von Platine) während des Ladens |
|- | |- | ||
− | | Arduino | + | | von Arduino gesteuertes Laderelais (empfohlen: ja) |
− | | JP4: | + | | JP4: geschlossen |
− | JP5: | + | JP5: offen |
− | | JP4: | + | | JP4: offen |
− | JP5: | + | JP5: geschlossen |
− | | | + | | verwendet für vom Arduino gesteuertem Laderelais (keine automatische Ladung) |
|- | |- | ||
| Arduino Due (3.3V I/O) | | Arduino Due (3.3V I/O) | ||
− | | LP0, ..., LP15: | + | | LP0, ..., LP15: offen |
− | | LP0, ..., LP15: | + | | LP0, ..., LP15: geschlossen |
− | | | + | | Nicht verwenden bei Arduino Mega |
|- | |- | ||
| Bluetooth VCC=3.3V | | Bluetooth VCC=3.3V | ||
− | | JP8: | + | | JP8: offen |
− | JP9: | + | JP9: geschlossen |
− | | JP8: | + | | JP8: geschlossen |
− | JP9: | + | JP9: offen |
− | | | + | | viele neuere Module laufen mit 3.3V |
|- | |- | ||
− | | Bluetooth | + | | Bluetooth Programmier-Modus |
− | | JP2: | + | | JP2: geschlossen |
− | | JP2: | + | | JP2: offen |
− | | | + | | verwendet für Programmierung der BAUD-Rate usw. |
|} | |} | ||
− | = | + | =Leiterplatten-Module= |
+ | |||
+ | [[Image:Ina169_marotronics.jpg|thumb|200px| Wichtig für Marotronics INA169: Pads verlöten für 5A Betrieb]] | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 158: | Zeile 150: | ||
|- | |- | ||
| U1 | | U1 | ||
− | | DC/DC | + | | DC/DC Wandler (10V) |
| GND, Vout, Vin, GND | | GND, Vout, Vin, GND | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
Zeile 166: | Zeile 158: | ||
| Bluetooth (HC-05) | | Bluetooth (HC-05) | ||
| VCC, GND, TXD, RXD, Key, LED | | VCC, GND, TXD, RXD, Key, LED | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U3 | | U3 | ||
− | | | + | | Stromsensor (Ladestrom) |
| VCC, GND, OUT, IP+, IP-5 | | VCC, GND, OUT, IP+, IP-5 | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U4 | | U4 | ||
− | | | + | | Laderegler (LM350T) |
| AJD, OUT, IN | | AJD, OUT, IN | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U5 | | U5 | ||
− | | | + | | Stromsensor (währen des Ladens) |
| VCC, GND, OUT, IP+, IP-5 | | VCC, GND, OUT, IP+, IP-5 | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U6 | | U6 | ||
− | | DC/DC | + | | DC/DC Wandler (3.3V) |
| GND, Vout, Vin, GND | | GND, Vout, Vin, GND | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| U7 | | U7 | ||
− | | DC/DC | + | | DC/DC Wandler (5V) |
| GND, Vout, Vin, GND | | GND, Vout, Vin, GND | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| U8 | | U8 | ||
− | | | + | | Echtzeituhr (DS1307) |
| Batt, GND, VCC, SDA, SCL, DS, SQ | | Batt, GND, VCC, SDA, SCL, DS, SQ | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U9 | | U9 | ||
− | | | + | | WLAN (ESP8266) |
| TX, CH_PD, Reset, VCC, GND, GP_IO2, GP_IO0, RX | | TX, CH_PD, Reset, VCC, GND, GP_IO2, GP_IO0, RX | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U10 | | U10 | ||
− | | | + | | Pegelwandler 5V->3V (Arduino Due) |
| | | | ||
− | | | + | | Ja |
| | | | ||
|- | |- | ||
| U11 | | U11 | ||
− | | | + | | WLAN(ESP8266) |
| TX, CH_PD, Reset, VCC, GND, GP_IO2, GP_IO0, RX | | TX, CH_PD, Reset, VCC, GND, GP_IO2, GP_IO0, RX | ||
− | | | + | | Ja |
− | | alternative | + | | alternative Montageposition |
|- | |- | ||
|} | |} | ||
− | = | + | =Leiterplatten Steckverbinder= |
{| class="wikitable" | {| class="wikitable" | ||
Zeile 236: | Zeile 228: | ||
|- | |- | ||
| P1 | | P1 | ||
− | | Sonar | + | | Sonar mitte (HC SR-04) |
| 5V, GND, Trigger, Echo | | 5V, GND, Trigger, Echo | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P2 | | P2 | ||
− | | Sonar | + | | Sonar rechts (HC SR-04) |
| 5V, GND, Trigger, Echo | | 5V, GND, Trigger, Echo | ||
− | | | + | | ja |
|- | |- | ||
| P3 | | P3 | ||
− | | Sonar | + | | Sonar links (HC SR-04) |
| 5V, GND, Trigger, Echo | | 5V, GND, Trigger, Echo | ||
− | | | + | | ja |
|- | |- | ||
| P4 | | P4 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 260: | Zeile 252: | ||
| IMU (gyro,acceleration,compass) (GY-80) | | IMU (gyro,acceleration,compass) (GY-80) | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P6 | | P6 | ||
− | | | + | | Rasensensor |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 272: | Zeile 264: | ||
| Status LEDs | | Status LEDs | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P8 | | P8 | ||
− | | | + | | Odometrie rechts |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P9 | | P9 | ||
− | | | + | | Odometrie links |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 290: | Zeile 282: | ||
| GPS (GY-NEO6MV2) | | GPS (GY-NEO6MV2) | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P11 | | P11 | ||
| Bumper | | Bumper | ||
− | | GND, GND, | + | | GND, GND, rechts, links |
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P12 | | P12 | ||
− | | Perimeter | + | | Perimeter-Empfänger (mitte oder links) |
| 5V, GND, perimeter | | 5V, GND, perimeter | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P13 | | P13 | ||
− | | R/C | + | | R/C Fernsteuerung |
| 5V, GND, mow, steer, speed, switch | | 5V, GND, mow, steer, speed, switch | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P14 | | P14 | ||
− | | | + | | Messpunkte |
− | | 5V, GND, ( | + | | 5V, GND, (abhängig von JP15: 3.3V, 5V or Arduino 3.3V) |
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P15 | | P15 | ||
− | | | + | | Antriebsmotor links |
| M1OUT1, M1OUT2 | | M1OUT1, M1OUT2 | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| P16 | | P16 | ||
− | | | + | | Optionaler Motortreiber-Eingang |
| | | | ||
− | | | + | | ja |
− | | | + | | nicht verbinden |
|- | |- | ||
| P17 | | P17 | ||
− | | | + | | Optionaler Motortreiber-Eingang |
| | | | ||
− | | | + | | ja |
− | | | + | | nicht verbinden |
|- | |- | ||
| P18 | | P18 | ||
− | | | + | | Antriebsmotor rechts |
| M2OUT1, M2OUT2 | | M2OUT1, M2OUT2 | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| P19 | | P19 | ||
− | | | + | | Neigungssensor |
| 5V, GND, tilt | | 5V, GND, tilt | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P20 | | P20 | ||
− | | | + | | Taster (Start/Stop) |
| | | | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| P21 | | P21 | ||
− | | | + | | Absturzsensor rechts |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P22 | | P22 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P23 | | P23 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P24 | | P24 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P25 | | P25 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P26 | | P26 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P27 | | P27 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P28 | | P28 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P29 | | P29 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P30 | | P30 | ||
− | | Perimeter | + | | Perimeter-Empfänger rechts |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P31 | | P31 | ||
− | | | + | | Absturzsensor links |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 422: | Zeile 414: | ||
| GND | | GND | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 428: | Zeile 420: | ||
| 5V | | 5V | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 434: | Zeile 426: | ||
| 3.3V | | 3.3V | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P35 | | P35 | ||
− | | | + | | Mähmotor Drehzahl |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P36 | | P36 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P37 | | P37 | ||
− | | | + | | Mähmotor |
| | | | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| P38 | | P38 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P39 | | P39 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
Zeile 470: | Zeile 462: | ||
| User switches | | User switches | ||
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P41 | | P41 | ||
− | | | + | | Regensensor |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P42 | | P42 | ||
− | | | + | | Ladeanschluss |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P43 | | P43 | ||
− | | | + | | Akku (24V) |
| | | | ||
− | | | + | | Nein |
| | | | ||
|- | |- | ||
| P44 | | P44 | ||
− | | | + | | WLAN Modul (ESP8266) |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P45 | | P45 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
| P46 | | P46 | ||
− | | | + | | reserviert |
| | | | ||
− | | | + | | ja |
| | | | ||
|- | |- | ||
|} | |} | ||
− | = | + | =Stromversorgung= |
− | + | Bitte lies auch den Abschnitt 'Spannungen' unter [[Motor-Treiber]] für mehr Informationen über die Motorspannung | |
− | + | Empfehlenswert ist die Verwendung von Step down Spannungswandlern (d.h. Module verwenden LM2596) um die 5V Spannung für den Arduino und alle zusätzlichen Module zu erzeugen. vor der Verbindung mit der Schaltung (Jumper), stelle den Wandler auf 5V ein, dann erst den Jumper schliessen. | |
− | [[File:warning.png]] | + | [[File:warning.png]]Warnung : niemals mehr als 5V an die Arduino 5V pins anlegen, das würde den Arduino zerstören. Deshalb, immer die 5V messen bevor die Verbindung zum 5V Pin des Arduino erfolgt! |
− | + | Alle Komponenten zusammen (wie im Schaltbild gezeigt) benötigen ca. 5W Leistung. | |
− | + | =Programm downloaden und Arduino programmieren= | |
− | + | ||
− | + | ||
− | + | <b>NOTE</b>: Wenn du noch nie mit Arduino gearbeitet hast, lies unser <b>[http://wiki.ardumower.de/index.php?title=Arduino_first_steps 'Arduino first steps' introduction]</b>. | |
− | + | Du hast zwei Möglichkeiten: | |
+ | * Download [https://github.com/Ardumower/ardumower/releases github code (empfohlen)] oder | ||
+ | * Download [http://www.ardumower.de/index.php/de/downloads v0.9.3 code (alt, nicht empfohlen)] | ||
− | + | Zuletzt, downloade und starte [http://arduino.cc/en/Main/Software Arduino IDE] um das Programm auf dem Arduino zu speichern. | |
− | + | ||
− | + | ||
− | + | '''Arduino Version''': Es ist wichtig, dass du die Version 1.6.3 oder höher der Arduino-Entwicklungssoftware benutzt und dass du das richtige Board auswählst (Mega 2560 or Due). | |
− | + | [[File:warning.png]] <b>Wichtig für Arduino IDE 1.6 oder höher: Falls sich Unterordner im Code-Ordner befinden (z.B. "unused"), diese bitte vor dem Kompilieren löschen! </b> | |
+ | Vergewissere dich, dass die Pin-Belegung im Arduino-Code (config.h/mower.cpp) mit deinem aktuellen Schaltplan übereinstimmt. | ||
− | + | =Einstellungen= | |
+ | Der Roboter verwendet Grundeinstellungen die du für deinen Roboter und deine Umgebung anpassen kannst. Die Grundeinstellungen (factory settings) werden in der Konfigurationsdatei 'mower.cpp' gespeichert. In dieser Datei findest Du auch eine kurze Beschreibung aller Grundeinstellungen. | ||
− | + | Diese Grundeinstellungen können später über ein Android-Handy verändert werden ([http://wiki.ardumower.de/index.php?title=Bluetooth pfodApp]). Diese veränderten Einstellung haben dann höhere Priorität als die Grundeinstellungen. Alle geänderten Einstellungen können jederzeit auf Grundeinstellung (Werkseinstellung) zurückgesetzt werden. | |
− | + | ||
− | [ | + | |
− | + | <gallery> | |
+ | File:Cheat_sheet.png | Visualisierung der Einstellungen | ||
+ | File:Speedcontrol.png | Motor-Einstellungen | ||
+ | </gallery> | ||
− | + | Wichtig: Wenn du eine neue Softwareversion auf deinen Arduino lädst, setze alle Einstellungen über die pfodApp auf die Grundeinstellungen zurück (Settings->Factory reset). Das löscht alle vorhandenen Einstellungen. Alte Einstellungen können zu Fehlfunktionen führen, wenn sich das interne Einstellungsformat geändert hat. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | =Erste Inbetriebnahme= | |
− | + | 1. Alle Sensoren deaktivieren. Zunächst alle Sensoren deaktivieren - In 'mower.cpp' den Roboter auf folgende Grund-Einstellungen setzen: | |
− | + | ||
− | = | + | bumperUse = 0; |
− | + | dropUse = 0; | |
+ | rainUse = 0; | ||
+ | sonarUse = 0; | ||
+ | perimeterUse = 0; | ||
+ | lawnSensorUse = 0; | ||
+ | imuUse = 0; | ||
+ | batMonitor = 0; | ||
+ | odometryUse = 0; | ||
+ | gpsUse = 0; | ||
+ | buttonUse = 1; | ||
+ | timerUse = 0; | ||
− | + | 2. Die Software bietet einen seriellen Konsole-Modus. Öffne die serielle Konsole in der Arduino IDE (Strg+Shift+M) und setze die BAUD-Rate auf 19200. Die Motor- und Sensorwerte sollten daraufhin ständig angezeigt werden. Erstmal löschen wir evtl. vorhandene Fehler: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Konsole: | |
+ | press... | ||
+ | d for menu | ||
+ | e=delete all errors | ||
− | + | 3. Dann die ADC-Kalibrierung vornehmen, damit alle ADC-Signale einen Nullpunkt erhalten. | |
+ | press... | ||
+ | d for menu | ||
+ | 8=ADC calib (perimeter sender, charger must be off | ||
− | + | 4. Motor-Ansteuerung testen: | |
− | + | Konsole: | |
− | File: | + | press... |
− | + | d for menu | |
+ | 1=test motors | ||
+ | |||
+ | [[File:warning.png]]Sicherheitshinweis: Aus Sicherheitsgründen sind die Mähmesser bei den ersten Tests [[nicht]] zu montieren! | ||
− | + | Du solltest überprüfen ob die Antriebsmotoren richtig gesteuert werden und sich in die richtige Richtung drehen. Erhöhe 'motorAccel' in 'mega.cpp' falls die Motoren nicht schnell genug beschleunigen. | |
− | + | =Starten des Mähroboters= | |
+ | Um den Mähroboter zu starten wird ein Taster und ein Piezo-Summer benötigt: | ||
− | pinButton —o | + | pinButton —o Taster o— GND (button for ON/OFF) |
pinBuzzer —o Buzzer o— GND (Piezo buzzer) | pinBuzzer —o Buzzer o— GND (Piezo buzzer) | ||
− | + | Drücke nun den Taster, bis Du die Anzahl Pieptöne hörst, die dem Modus entspricht, den Du einstellen möchtest: | |
− | + | Modus (Drücke Taster bis du x Töne hörst): | |
− | 1 | + | 1 Piep : Normales mähen (verwendet, wenn verfügbar, Messermodulation) |
− | 2 | + | 2 Pieps : Normales mähen (ohne Messermodulation) |
− | 3 | + | 3 Pieps : Fahren mit Fernsteuerung (RC) |
− | 4 | + | 4 Pieps : Fahren ohne mähen |
− | 5 | + | 5 Pieps : Finde Perimeterschleife und folge ihr |
− | = | + | =Diagnose/Fehlerbehebung= |
− | + | Jedesmal, wenn ein Sensor anspricht, zählt ein korrespondierender Sensorzähler um 1 hoch. Die Zählerstände der Sensorzähler sowie die aktuellen Sensorwerte kann man in der seriellen Konsole oder mittels der App ansehen. Die folgenden Werte werden in der seriellen Konsole angezeigt: | |
− | + | # Zeit des state machine's Status (ms) | |
+ | # Schleifendurchläufe pro sec | ||
+ | # gewählter Anzeige-Modus (0=Zählerstände/1=aktuelle Werte/2=aktuelle Werte) | ||
+ | # aktueller state machine Status (FORW, REV, ROLL usw.) | ||
+ | # Fährt in Ladestation? (1/0) | ||
+ | # "spd" - Ansteuerung/Drehzahl der Motoren: links (PWM), rechts (PWM), Mähmotor (RPM) | ||
+ | # "sen" - Überstromzähler der Motoren: links, rechts, Mähmotor | ||
+ | # "bum" - Bumper Zähler: links, rechts | ||
+ | # "son" - Ultraschall Abstandsschwelle unterschritten (Zähler) | ||
+ | # "pit/roll" - Neigung (berechnet von Beschleunigungssensor) | ||
+ | # "com" - Kompass Kurs | ||
+ | # "per" - Perimeterschleife erkannt: Zähler | ||
+ | # "bat" - Akku Spannung | ||
+ | # "chg" - Ladestrom | ||
− | + | Mittels der Taste 'v' kann zwischen Sensor-Zählerständen und den aktuellen Sensorwerten umgeschaltet werden. | |
− | + | ||
− | + | [[File:warning.png]] Zusätzlich kannst du mit Hilfe der Android-App 'pfodApp' die Sensorenausgaben über die Zeit grafisch darstellen (Zählerstände und aktuelle Werte). Das ermöglicht die drahtlose Überwachung deines Mähroboters zur Fehlersuche. Es ist sehr zu empfehlen. | |
− | + | ||
− | + | ||
− | + | ||
<gallery> | <gallery> | ||
− | + | File:Ardumower_sensor_counter_plotting.jpg |Sensor-Zählerstände | |
− | + | File:Ardumower_plot_sensors.jpg |gemessene Sensorwerte | |
− | + | File: Ardumower_states.png | Ardumower Zustände | |
</gallery> | </gallery> | ||
− | + | ==Fehlercodes und deren Behebung== | |
+ | http://wiki.ardumower.de/index.php?title=Fehlerbehebung | ||
+ | |||
+ | =Fehlerzähler / Fehlertöne= | ||
+ | Gibt es ein Kommunikationsproblem oder ein anderes ernstes Problem, zählt der entsprechende Fehlerzähler hoch. der Fehlerzähler kann über die pfodApp eingesehen. Zusätzlich Piept der Roboter beim starten. | ||
+ | |||
+ | Siehe Abschnitt [[Troubleshooting]] für Details zu allen Fehlern. | ||
+ | |||
+ | ==I2C Bus / Fehlertöne== | ||
+ | Verschiedene Komponenten (Arduino Nano, RTC, IMU, usw.) kommunizieren über den I2C Bus (SDA/SCL Leitung). diese Leitungen sollten sehr kurz sein (evt. verdrillt) und sie sollten weit weg von DC/DC Wandlern und Motortreibern sein. Wenn es ein Kommunikationsproblem gibt, wird der Fehlerzähler erhöht und der Roboter piepst beim Starten. Der Fehlerzähler kann über die pfodApp eingesehen werden. | ||
− | = | + | =Weitere Links= |
Aktuelle Version vom 20. Juni 2016, 09:52 Uhr
Diese Seite beschreibt,wie die Ardumower Hauptleiterplatte aufgebaut wird, wie das Programm auf den Arduino aufgespielt wird, und wie man den Mähroboter konfiguriert.
Inhaltsverzeichnis
- 1 Übersicht
- 2 Benötigte Module
- 3 Hauptleiterplatte
- 4 PCB Bauanleitung
- 5 PCB Bauanleitung Videos
- 6 Leiterplatten Jumper
- 7 Leiterplatten-Module
- 8 Leiterplatten Steckverbinder
- 9 Stromversorgung
- 10 Programm downloaden und Arduino programmieren
- 11 Einstellungen
- 12 Erste Inbetriebnahme
- 13 Starten des Mähroboters
- 14 Diagnose/Fehlerbehebung
- 15 Fehlerzähler / Fehlertöne
- 16 Weitere Links
Übersicht
Kernstück der Steuerung ist ein fertiges Microcontroller-Modul (Arduino Mega 2560 verwendet 54 I/O pins).
Benötigte Module
Alle Module und Teile können über den Shop bezogen werden.
Hauptleiterplatte
Die Leiterplatte wurde mit folgenden Parametern entwickelt:
- LP Abmessungen 241x114mm
- Alle Module (Motortreiber, Bluetooth, usw.) können auf die Leiterplatte gelötet (oder gesteckt) werden (Modules sind im Ardumower-Shop verfügbar)
- Verwendet den Arduino Mega 2560
- Optional: kann der Arduino Due mittels zusätzlicher LP-Adapter verwendet werden
- Optional: integrierter Ladestromkreis (Strombegrenzung)
- alle Verbindungen, einschliesslich +5V und GND, sind über Steckverbinder realisiert
- Max. Strombelastung der Leiterbahnen (für Motoren): 8A
PCB Bauanleitung
Roboterplatine v0.5 (1. Prototyp, bitte nicht mehr verwenden)
Roboterplatine v1.2 (geringe Layoutänderungen)
- Schaltpläne
- Photos
- Bauanleitung
- WorkaRound20150527
- WorkaRound20150530
- siehe auch: Dokumentationen im Github
12V/24V: Die Platine ist für 24V ausgelegt worden. Für 12V müssen einige wenige Sachen geändert werden auf der 1.2 Platine:
- R2 Vorwiderstand „Led Betriebsspannung“ muss bei 12V auf 560OHm angepasst werden
- R11 Vorwiderstand“StationsLED „ muss bei 12V auf 560OHm angepasst werden
- und man benötigt noch statt den 24V Relais ein 12V Relais.
Bemerkung: Das Schaltbild und die Platinen-Zeichnungen wurden mit KiCad entwickelt. Sie können hier heruntergeladen github und damit bearbeitet werden KiCAD software.
PCB Bauanleitung Videos
- Widerstände
- Dioden und Relais
- Elkos und Transistoren
- Piezo Buzzer und Sicherung
- Stiftleisten
- DC/DC Wandler
- RTC-Modul
- Dual MC33926
- INA169
- Akku & Ladegerät
Leiterplatten Jumper
Wenn benutzt... | ...JA | ...NEIN | Kommentar |
---|---|---|---|
integrierter Laderegler mit einstellbarem
Spannungsregler (LM350T) mit Potentiometer für einstellbare Ladespannung (empfohlen: Nein) |
D7: DIODE
D3: DIODE C1, C4, U4, RV1: verwendet |
D7: brücken
D3: brücken C1, C4, U4, RV1: nicht verwendet |
Bei externem Ladegerät nicht verwenden |
externe Stromversorgung währen des Ladens (empfohlen: Nein) | JP6: geschlossen
JP7: offen D4: DIODE C5: nicht verwendet |
JP6: offen
JP7: geschlossen D4: brücken C5: verwendet |
um Platine von aussen mit Strom zu versorgen (trennt Akku von Platine) während des Ladens |
von Arduino gesteuertes Laderelais (empfohlen: ja) | JP4: geschlossen
JP5: offen |
JP4: offen
JP5: geschlossen |
verwendet für vom Arduino gesteuertem Laderelais (keine automatische Ladung) |
Arduino Due (3.3V I/O) | LP0, ..., LP15: offen | LP0, ..., LP15: geschlossen | Nicht verwenden bei Arduino Mega |
Bluetooth VCC=3.3V | JP8: offen
JP9: geschlossen |
JP8: geschlossen
JP9: offen |
viele neuere Module laufen mit 3.3V |
Bluetooth Programmier-Modus | JP2: geschlossen | JP2: offen | verwendet für Programmierung der BAUD-Rate usw. |
Leiterplatten-Module
Module | Feature | Pinout | Optional | Comment |
---|---|---|---|---|
U1 | DC/DC Wandler (10V) | GND, Vout, Vin, GND | Nein | |
U2 | Bluetooth (HC-05) | VCC, GND, TXD, RXD, Key, LED | Ja | |
U3 | Stromsensor (Ladestrom) | VCC, GND, OUT, IP+, IP-5 | Ja | |
U4 | Laderegler (LM350T) | AJD, OUT, IN | Ja | |
U5 | Stromsensor (währen des Ladens) | VCC, GND, OUT, IP+, IP-5 | Ja | |
U6 | DC/DC Wandler (3.3V) | GND, Vout, Vin, GND | Nein | |
U7 | DC/DC Wandler (5V) | GND, Vout, Vin, GND | Nein | |
U8 | Echtzeituhr (DS1307) | Batt, GND, VCC, SDA, SCL, DS, SQ | Ja | |
U9 | WLAN (ESP8266) | TX, CH_PD, Reset, VCC, GND, GP_IO2, GP_IO0, RX | Ja | |
U10 | Pegelwandler 5V->3V (Arduino Due) | Ja | ||
U11 | WLAN(ESP8266) | TX, CH_PD, Reset, VCC, GND, GP_IO2, GP_IO0, RX | Ja | alternative Montageposition |
Leiterplatten Steckverbinder
Connector | Feature | Pinout | Optional | Comment |
---|---|---|---|---|
P1 | Sonar mitte (HC SR-04) | 5V, GND, Trigger, Echo | ja | |
P2 | Sonar rechts (HC SR-04) | 5V, GND, Trigger, Echo | ja | |
P3 | Sonar links (HC SR-04) | 5V, GND, Trigger, Echo | ja | |
P4 | reserviert | ja | ||
P5 | IMU (gyro,acceleration,compass) (GY-80) | ja | ||
P6 | Rasensensor | ja | ||
P7 | Status LEDs | ja | ||
P8 | Odometrie rechts | ja | ||
P9 | Odometrie links | ja | ||
P10 | GPS (GY-NEO6MV2) | ja | ||
P11 | Bumper | GND, GND, rechts, links | ja | |
P12 | Perimeter-Empfänger (mitte oder links) | 5V, GND, perimeter | ja | |
P13 | R/C Fernsteuerung | 5V, GND, mow, steer, speed, switch | ja | |
P14 | Messpunkte | 5V, GND, (abhängig von JP15: 3.3V, 5V or Arduino 3.3V) | ja | |
P15 | Antriebsmotor links | M1OUT1, M1OUT2 | Nein | |
P16 | Optionaler Motortreiber-Eingang | ja | nicht verbinden | |
P17 | Optionaler Motortreiber-Eingang | ja | nicht verbinden | |
P18 | Antriebsmotor rechts | M2OUT1, M2OUT2 | Nein | |
P19 | Neigungssensor | 5V, GND, tilt | ja | |
P20 | Taster (Start/Stop) | Nein | ||
P21 | Absturzsensor rechts | ja | ||
P22 | reserviert | ja | ||
P23 | reserviert | ja | ||
P24 | reserviert | ja | ||
P25 | reserviert | ja | ||
P26 | reserviert | ja | ||
P27 | reserviert | ja | ||
P28 | reserviert | ja | ||
P29 | reserviert | ja | ||
P30 | Perimeter-Empfänger rechts | ja | ||
P31 | Absturzsensor links | ja | ||
P32 | GND | ja | ||
P33 | 5V | ja | ||
P34 | 3.3V | ja | ||
P35 | Mähmotor Drehzahl | ja | ||
P36 | reserviert | ja | ||
P37 | Mähmotor | Nein | ||
P38 | reserviert | ja | ||
P39 | reserviert | ja | ||
P40 | User switches | ja | ||
P41 | Regensensor | ja | ||
P42 | Ladeanschluss | ja | ||
P43 | Akku (24V) | Nein | ||
P44 | WLAN Modul (ESP8266) | ja | ||
P45 | reserviert | ja | ||
P46 | reserviert | ja |
Stromversorgung
Bitte lies auch den Abschnitt 'Spannungen' unter Motor-Treiber für mehr Informationen über die Motorspannung
Empfehlenswert ist die Verwendung von Step down Spannungswandlern (d.h. Module verwenden LM2596) um die 5V Spannung für den Arduino und alle zusätzlichen Module zu erzeugen. vor der Verbindung mit der Schaltung (Jumper), stelle den Wandler auf 5V ein, dann erst den Jumper schliessen.
Warnung : niemals mehr als 5V an die Arduino 5V pins anlegen, das würde den Arduino zerstören. Deshalb, immer die 5V messen bevor die Verbindung zum 5V Pin des Arduino erfolgt! Alle Komponenten zusammen (wie im Schaltbild gezeigt) benötigen ca. 5W Leistung.
Programm downloaden und Arduino programmieren
NOTE: Wenn du noch nie mit Arduino gearbeitet hast, lies unser 'Arduino first steps' introduction.
Du hast zwei Möglichkeiten:
- Download github code (empfohlen) oder
- Download v0.9.3 code (alt, nicht empfohlen)
Zuletzt, downloade und starte Arduino IDE um das Programm auf dem Arduino zu speichern.
Arduino Version: Es ist wichtig, dass du die Version 1.6.3 oder höher der Arduino-Entwicklungssoftware benutzt und dass du das richtige Board auswählst (Mega 2560 or Due).
Wichtig für Arduino IDE 1.6 oder höher: Falls sich Unterordner im Code-Ordner befinden (z.B. "unused"), diese bitte vor dem Kompilieren löschen! Vergewissere dich, dass die Pin-Belegung im Arduino-Code (config.h/mower.cpp) mit deinem aktuellen Schaltplan übereinstimmt.
Einstellungen
Der Roboter verwendet Grundeinstellungen die du für deinen Roboter und deine Umgebung anpassen kannst. Die Grundeinstellungen (factory settings) werden in der Konfigurationsdatei 'mower.cpp' gespeichert. In dieser Datei findest Du auch eine kurze Beschreibung aller Grundeinstellungen.
Diese Grundeinstellungen können später über ein Android-Handy verändert werden (pfodApp). Diese veränderten Einstellung haben dann höhere Priorität als die Grundeinstellungen. Alle geänderten Einstellungen können jederzeit auf Grundeinstellung (Werkseinstellung) zurückgesetzt werden.
Wichtig: Wenn du eine neue Softwareversion auf deinen Arduino lädst, setze alle Einstellungen über die pfodApp auf die Grundeinstellungen zurück (Settings->Factory reset). Das löscht alle vorhandenen Einstellungen. Alte Einstellungen können zu Fehlfunktionen führen, wenn sich das interne Einstellungsformat geändert hat.
Erste Inbetriebnahme
1. Alle Sensoren deaktivieren. Zunächst alle Sensoren deaktivieren - In 'mower.cpp' den Roboter auf folgende Grund-Einstellungen setzen:
bumperUse = 0; dropUse = 0; rainUse = 0; sonarUse = 0; perimeterUse = 0; lawnSensorUse = 0; imuUse = 0; batMonitor = 0; odometryUse = 0; gpsUse = 0; buttonUse = 1; timerUse = 0;
2. Die Software bietet einen seriellen Konsole-Modus. Öffne die serielle Konsole in der Arduino IDE (Strg+Shift+M) und setze die BAUD-Rate auf 19200. Die Motor- und Sensorwerte sollten daraufhin ständig angezeigt werden. Erstmal löschen wir evtl. vorhandene Fehler:
Konsole: press... d for menu e=delete all errors
3. Dann die ADC-Kalibrierung vornehmen, damit alle ADC-Signale einen Nullpunkt erhalten.
press... d for menu 8=ADC calib (perimeter sender, charger must be off
4. Motor-Ansteuerung testen:
Konsole: press... d for menu 1=test motors Sicherheitshinweis: Aus Sicherheitsgründen sind die Mähmesser bei den ersten Tests nicht zu montieren!
Du solltest überprüfen ob die Antriebsmotoren richtig gesteuert werden und sich in die richtige Richtung drehen. Erhöhe 'motorAccel' in 'mega.cpp' falls die Motoren nicht schnell genug beschleunigen.
Starten des Mähroboters
Um den Mähroboter zu starten wird ein Taster und ein Piezo-Summer benötigt:
pinButton —o Taster o— GND (button for ON/OFF)
pinBuzzer —o Buzzer o— GND (Piezo buzzer)
Drücke nun den Taster, bis Du die Anzahl Pieptöne hörst, die dem Modus entspricht, den Du einstellen möchtest:
Modus (Drücke Taster bis du x Töne hörst):
1 Piep : Normales mähen (verwendet, wenn verfügbar, Messermodulation) 2 Pieps : Normales mähen (ohne Messermodulation) 3 Pieps : Fahren mit Fernsteuerung (RC) 4 Pieps : Fahren ohne mähen 5 Pieps : Finde Perimeterschleife und folge ihr
Diagnose/Fehlerbehebung
Jedesmal, wenn ein Sensor anspricht, zählt ein korrespondierender Sensorzähler um 1 hoch. Die Zählerstände der Sensorzähler sowie die aktuellen Sensorwerte kann man in der seriellen Konsole oder mittels der App ansehen. Die folgenden Werte werden in der seriellen Konsole angezeigt:
- Zeit des state machine's Status (ms)
- Schleifendurchläufe pro sec
- gewählter Anzeige-Modus (0=Zählerstände/1=aktuelle Werte/2=aktuelle Werte)
- aktueller state machine Status (FORW, REV, ROLL usw.)
- Fährt in Ladestation? (1/0)
- "spd" - Ansteuerung/Drehzahl der Motoren: links (PWM), rechts (PWM), Mähmotor (RPM)
- "sen" - Überstromzähler der Motoren: links, rechts, Mähmotor
- "bum" - Bumper Zähler: links, rechts
- "son" - Ultraschall Abstandsschwelle unterschritten (Zähler)
- "pit/roll" - Neigung (berechnet von Beschleunigungssensor)
- "com" - Kompass Kurs
- "per" - Perimeterschleife erkannt: Zähler
- "bat" - Akku Spannung
- "chg" - Ladestrom
Mittels der Taste 'v' kann zwischen Sensor-Zählerständen und den aktuellen Sensorwerten umgeschaltet werden.
Zusätzlich kannst du mit Hilfe der Android-App 'pfodApp' die Sensorenausgaben über die Zeit grafisch darstellen (Zählerstände und aktuelle Werte). Das ermöglicht die drahtlose Überwachung deines Mähroboters zur Fehlersuche. Es ist sehr zu empfehlen.
Fehlercodes und deren Behebung
http://wiki.ardumower.de/index.php?title=Fehlerbehebung
Fehlerzähler / Fehlertöne
Gibt es ein Kommunikationsproblem oder ein anderes ernstes Problem, zählt der entsprechende Fehlerzähler hoch. der Fehlerzähler kann über die pfodApp eingesehen. Zusätzlich Piept der Roboter beim starten.
Siehe Abschnitt Troubleshooting für Details zu allen Fehlern.
I2C Bus / Fehlertöne
Verschiedene Komponenten (Arduino Nano, RTC, IMU, usw.) kommunizieren über den I2C Bus (SDA/SCL Leitung). diese Leitungen sollten sehr kurz sein (evt. verdrillt) und sie sollten weit weg von DC/DC Wandlern und Motortreibern sein. Wenn es ein Kommunikationsproblem gibt, wird der Fehlerzähler erhöht und der Roboter piepst beim Starten. Der Fehlerzähler kann über die pfodApp eingesehen werden.