Programmierung
Da die neuen Boards nun angekommen sind, konnten wir uns voll der Programmierung des Lowlevel widmen. Das heisst, dass wir die Boards so programmiert haben, dass sie Werte an das Mainboard geben, mit denen das Mainprogramm eine Strategie ausführen kann. Zudem konnten wir auch die Kommunikation zwischen den Boards zum Funktionieren bringen. Auch die Kommunikation zwischen den Bots konnten wir verbessern, sodass diese nun stabiler funktioniert. Auch bei den neuen Boards schalteten wir den WDT ein, da auch diese nicht immer ganz zuverlässig funktionieren. Im Grossen und Ganzen hatten wir grosse Fortschritte diesen Monat gemacht.
Zudem investierten wir relativ viel Zeit den anderen Teams zu helfen, da diese noch Probleme hatten.
Elektronik
Ende Februar bzw. Anfang März waren die Leiterplatten für die überarbeiteten Sensoren zur Erkennung des Balles bzw. der Begrenzungslinien angekommen. Diese hatten grosse Priorität, da noch ein wenig Lowlevel Code sowie Filter geschrieben werden mussten.
Die Lichtsensoren hatten im letzten Jahr grosse Probleme bereitet, da immer wieder manche Exemplare kaputt gegangen sind, jedoch niemand von uns einen Makel am Schaltplan ausfindig machen konnte. Wie sich erfreulicherweise herausgestellt hat, ist dies mit anderen OpAmps nicht mehr aufgetreten. Wir vermuten, die zuerst verwendeten Verstärker waren all zu anfällig auf ESD, oder sogar schlicht fehlerhaft, haben aber keinen Sinn darin gesehen dem noch näher nachzugehen.
Die Ballerkennung wurde völlig überarbeitet: Vorher hatten wir (wahrscheinlich für Fernbedienungen u.Ä. konzipierte) integrierte Schaltkreise verwendet, wodurch zwar das Interface zum Prozessor einfach, sowie die Erkennung der Richtung des Balles gut war, die Entfernung jedoch nur höchst ungenau abgeschätzt werden konnte. Weiterhin war die Form der Leitplatten eher mühselig.
Wir verwenden nun unverstärkte Photodioden und verstärken sie „selber“ mittels eines Fet-Operationsverstärkers (pragmatischerweise der selbe wie bei den Liniensensoren). Dieses Signal wird mittels des internen Analog/Digital-Konverters eines AtXmega5e gelesen.
Dies hat sich, bis jetzt, als eine gute Lösung für unsere Ansprüche herausgestellt.
Der Umstieg auf diesen anderen, aber recht ähnlichen Prozessor hatten wir als eher trivial eingeschätzt, wir begegneten aber einem schwierig zu findenden Bug: Wenn man den Timer auf Port C benutz, funktioniert dort fast nichts mehr. Wir sind natürlich erst nach erheblichem Aufwand bez. Fehlersuchen auf die Idee gekommen, einen Fehler im Microcontroller selbst zu vermuten.
Sobald wir uns von der Funktionalität der neuen Designs überzeugt hatten, wurden einige kleine Fehler im Layout der Platinen korrigiert und auch die „Slaves“ bestellt.
Des weiteren haben wir unsere Stromversorgung überarbeitet: Wir verwenden nun andere Gleichstromwandler und haben einige /quality of life improvements/ wie Sicherungen, Verpolungsschutz und dreistufigen LED-Indikator für den Akkuladestand.
Mechanik
Das CAD wurde komplett fertiggestellt. Die verschiedenen Teile wurden ausgesägt. Wir testen noch mit verschiedenen Malerrollen, um unseren neuen Dribbler herzustellen. Die ursprünglichen, welche wir bisher immer genutzt haben sind leider nicht mehr Verfügbar. Dennoch haben wir neue gefunden, welche sich sogar der neuen Grösse super anpassen kann. Nun bleibt noch die Frage, wie wir die Festigkeit dieser unterstützen können, damit der Motor nicht nur die Stange selbst sondern die ganze Rolle drehen kann. Wir haben gemerkt, dass wir durch die zusätzliche Platte sehr viel an Stabilität gewinnen können, dennoch bleibt es offen, wie wir in der Gewichtslimite bleiben können. Da wir eine ganze Platte hinzugefügt haben. Dennoch, wir bleiben optimistisch und versuchen so viel wie möglich aus der neuen Platte auszuschöpfen.