Ardumower LP
Inhaltsverzeichnis
- 1 Zusammenfassung
- 2 Benötigte Module
- 3 Hauptleiterplatte
- 4 Leiterplattenversionen
- 5 Leiterplatten Jumper
- 6 Leiterplatten-Module
- 7 Leiterplatten Steckverbinder
- 8 Stromversorgung
- 9 Programm downloaden und Arduino programmieren
- 10 Kalibrierung bei der ersten Inbetriebnahme
- 11 Diagnose/Fehlerbehebung
- 12 Starten des Mähroboters
- 13 Fehlerzähler / Fehlertöne
- 14 Einstellungen
- 15 Weitere Links
Zusammenfassung
Diese Seite beschreibt,wie die Ardumower Hauptleiterplatte aufgebaut wird, wie das Programm auf den Arduino aufgespielt wird, undwie man den Mähroboter konfiguriert.
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 .
Ardumower, was wird benötigt.
- Wichtige Module dazu wählen:
- Zubehör Set
- 2 x Protector Board
- 1 x Mega Board 2560 R3
- 1 x INA169 Strom Sensor Board
- 2 x Dual Treiber MC33926
- 3 x DC-DC LM2596 Step-Down Regler
- 1 x Wireless Bluetooth Modul HC-05
- 1 x Real Time Clock I2C DS1307
- 1 x 24 VoltLadegerät für den Ardumower Akku
- Optional:
- Zubehör Set Ladeschaltung (Blei Akkus)
- WIFI Wlan Modul ESP8266 ESP01
- Ultraschallsensoren HC-SR04
- Regensensor
- GPS Modul GY-GPS6MV2
- Benötigte Module dazu wählen:
- 1x Dual MC33926 Motor Driver Carrier
- 1x INA169 Analog DC Current Sensor Breakout - 60V 2,5A / 5A Marotronics
- 1 x DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar
- 1 x Nano V3.0 ATmega328-AU Arduino kompatibel Mikrocontroller Board
- Optional:
- Gehäuse inklusive 5 passender Schrauben für das PCB
- Anschlussklemmen max.3 (2xSchleife, 1xLadeanschluss)
- Einbaubuchse für Gehäuse 2,5
- Weiteres Zubehör:
- Eine Ladestation ist in der Entwicklung und folgt demnächst.
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
Leiterplattenversionen
Roboterplatine v0.5 (1. Prototyp)
Roboterplatine v1.2 (geringe Layoutänderungen)
- Schaltpläne
- Photos
- WorkaRound20150527
- WorkaRound20150530
- Motor-decrease noise REV20150531, (englische Kommentare)
Roboterplatine PCB v1.3 (in Entwicklung)
- vereinfachtes Design (Due Adapter werden extern sein)
- Motorschutzschaltung
- Batterie-Abschaltung, Sicherheitsschalter
- setzt 'Referenzdesign' und erfordert die Module: 3x DC/DC, RTC, IMU
Bemerkung: Das Schaltbild und die Platinen-Zeichnungen wurden mit KiCad entwickelt. Sie können hier heruntergeladen github und damit bearbeitet werden KiCAD software.
Leiterplatten Jumper
Feature used | YES | NO | Comment |
---|---|---|---|
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 driver 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).
Bemerkung: Vergewissere dich, dass die Pin-Belegung im Arduino-Code (config.h/mower.cpp) mit deinem aktuellen Schaltplan übereinstimmt.
Kalibrierung bei der ersten Inbetriebnahme
Antriebsmotoren
Sicherheitshinweis: Aus Sicherheitsgründen sind die Mähmesser bei den ersten Tests nicht zu montieren!
Zu Beginn solltest du überprüfen ob die Antriebsmotoren richtig gesteuert werden und sich in die richtige Richtung drehen.Die Software bietet einen Diagnose-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:
20 OFF spd 0 0 0 sen 0 0 0 bum 0 0 son... 21 OFF spd 0 0 0 sen 0 0 0 bum 0 0 son... 22 OFF spd 0 0 0 sen 0 0 0 bum 0 0 son... 23 OFF spd 0 0 0 sen 0 0 0 bum 0 0 son... 24 OFF spd 0 0 0 sen 0 0 0 bum 0 0 son... ...
Drücke nun die Taste 't' auf der Tastatur und bestätige mit 'Enter'. Es erscheint der Diagnose-Modus in dem du die Motoren testen kannst.
ADC Kalibrierung
Starte die ADC-Kalibrierung einmal (entweder über die serielle Konsole oder über "pfodApp->ADC Calibration"), damit das Empfangssignal symmetrisch zum Nullpunkt ist.
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 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.
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
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. DerFehlerzähler kann über die pfodApp eingesehen werden.
Einstellungen
Der Roboter verwendet Einstellungen die du für deinen Roboter und deine Umgebung anpassen kannst (über pfodApp oder direkt in der Software). Die Grundeinstellungen (factory settings) werden in der Konfigurationsdatei 'mower.cpp' gespeichert.
Die Einstellungen können über ein Android-Handy verändert werden(pfodApp).
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.