Erste Testes mit kleinen Problemen

egal

New member
Hallo
Ich Plane mir auch einen Ardumower zu bauen. Nun habe ich ein Chassis "Zusammengenagelt" Welches auch Fahren und Mähen kann. Also Zweites Problem die Elektronik. Und da Stockt es gerade etwas. Ich habe einen Arduino Mega als Hauptcontroller gewählt (Weil ich ihn eh liegen hatte) und einen Uno für die Perimeter schleife. Wenn ich den Code tests/perimaterV2 auf den Mega flashe bekomme ich sehr gute Daten so das jetzt weiß das die Schleife arbeitet.
Wenn ich aber /ardumower Flashe und zb den Motortest starte bekomme ich immer die Meldung Error: perimeter too far away

Der Aufbau ist zurzeit noch so Provisorisch, das ich Nichmal Motoren dran habe. Ich Prüfe lediglich mit Led's ob überhaupt was klappt.
Und gehe ich recht in der Annahme das die aktuelle Firmware nur eine Pwm und ein Richtung Signal abgibt für die Fahrmotoren?
Könnte man erstmal überhaupt ohne Odometrie fahren nur mit Perimeter?

Liebe grüße
 
Irgendwie komme ich nicht so recht weiter.
Also ein Arduino Mega 2650 mit der Firmware von stand Heute (1.0A6) Ich habe wie beschrieben alle Sensoren in der Mower.cpp abgeschaltet. Die Pins für die Sensoren welche ich schon habe habe ich anhand der Config angeschlossen.
Gerade nur Motoren Bt und Perimeter. Aber eigentlich ändert sich kaum was wenn ich welche ein oder abschalte.
Es scheint mir als würde die Firmware abstürzen.
Beim Starten (Reset Button) Ertönt nach ~5 Sekunden ein Piep Signal. und Folgender Text in der Seriellen Console

Code:
ETUP
ADCMan: found calib data
---ADC calib---
ADC sampleRate=38462
AD0	min=9999	max=-9999	diff=-19998	ofs=436
AD1	min=9999	max=-9999	diff=-19998	ofs=431
AD2	min=9999	max=-9999	diff=-19998	ofs=0
AD3	min=9999	max=-9999	diff=-19998	ofs=463
AD4	min=9999	max=-9999	diff=-19998	ofs=498
AD5	min=9999	max=-9999	diff=-19998	ofs=387
AD6	min=9999	max=-9999	diff=-19998	ofs=0
AD7	min=9999	max=-9999	diff=-19998	ofs=0
AD8	min=9999	max=-9999	diff=-19998	ofs=439
AD9	min=9999	max=-9999	diff=-19998	ofs=0
AD10	min=9999	max=-9999	diff=-19998	ofs=0
AD11	min=9999	max=-9999	diff=-19998	ofs=0
AD12	min=9999	max=-9999	diff=-19998	ofs=0
AD13	min=9999	max=-9999	diff=-19998	ofs=0
AD14	min=9999	max=-9999	diff=-19998	ofs=0
AD15	min=9999	max=-9999	diff=-19998	ofs=0
matchSignal size=24
subSample=4
capture size=192
IMU error: no calib data
--------
accOfs=0.00,0.00,0.00
accScale=2.00,2.00,2.00
comOfs=0.00,0.00,0.00
comScale=2.00,2.00,2.00
--------
initL3G4200D
gyro read error
gyro read error
gyro read error
loadSaveErrorCounters: read
loadSaveErrorCounters addrstop=422
loadUserSettings
loadSaveUserSettings addrstop=263
loadSaveRobotStats: read
loadSaveRobotStats addrstop=822
t     0 l  0 v0 FORW spd   25   25    0 sen    0    0    0 bum    0    0 dro    0    0 son   0 yaw   0 pit   0 rol   0 per   0 bat  0.0 chg  0.0  0.0 imu  0 adc  0 Ardumower
START
Ardumower 1.0a6-Azurit
Config: Ardumower
press...
  d for menu
  v to change console output (sensor counters, values, perimeter etc.)
sen_counters

Danach passiert nix mehr. Eingabe d für menü klappt nur wenn ich es beim "Booten" früh genug eingebe. Power Taster bleibt ohne Funktion.
Motoren bewegen sich nicht.
Motoren im Menü Motortest laufen wie sie sollen. allerdings mit Fehlermeldungen. Diese bleiben identisch auch wenn Odo und Peri ausgeschaltet sind.

Code:
rror: motor left fault
Error: motor right fault
Error: motor mow fault
Error: motor left fault
Error: motor right fault
Error: motor mow fault
Error: perimeter too far away

Dazu kommt das bei jedem Boot versucht wird das Gyro zu laden. Dieses ist aber ausgeschaltet und nicht vorhanden. Ich verstehe leider den Ablauf des Programms nicht und kann daher nicht sagen wo im Code er stecken bleibt.
Und so langsam gehen mir irgendwie die Ideen aus.
Hat nicht irgendjemand einen Tipp?
 
So Probleme erst mal gelöst. Also Die ganzen fault meldungen endstehen dadurch das ich die alten Motortreiber L298N verwende. Diese haben keinen Fault Ausgang. Die Software erwartet aber auch nach der Umstellung auf 298N noch dieses Fault Signal. Ich habe sie erst mal Provisorisch auf High gelegt.
Ich arbeite noch daran die Software zu verstehen aber meine Vermutung Dadurch das man die Err Counter über die Console nicht abfragen kann werden diese ganz schnell auf 255 hoch gelaufen sein. Warum das allerdings zum Komplettabsturz führt kann ich noch nicht sagen.
Fazit ich habe jetzt ein Fahrendes Provisorium :) Ohne Odometrie nur mit einem Ultraschall und der Perimeter schleife.
 
Oben