Umdrehungsmessprogramm

Da ich ja jetzt korrekte Werte von den Lichtschranken zur Verfügung habe, wollte ich mein Programm zur Drehzahlmessung fertig schreiben. Aus irgendeinem Grund verzählt sich das Program aber – genau wie das Programm, welches ich für nur eine Lichtschranke geschrieben habe. Das klappt aber bestimmt auch bald. Cool ist, dass ich heute schon eine Versandbestätigung von der Kamera bekommen habe. Eigentlich sollte sie wegen Lieferproblemen erst in drei Monaten kommen, das hatt sich jetzt wohl geändert! Die Kamera wird am anfang einfach nur am Roboter festgeklebt und schickt dann über den RasPi einen Livestream an den Pc.

Endlich!

Endlich habe ich alle Fehler in den Lichtschranken gefunden: zwei Hardware Fehler und ein Software Bug. Wegen einem Lötfehler bekam ich Werte, die nahe bei ein ander lagen. Das habe ich jetzt behoben. Softwareseitig war eine falsche Referenzspannung angegeben, aber nur bei einem Pin – sehr verwirrend! Jetzt sind meine Werte unblockiert 942-945 und blockiert 40-43. So soll das sein!
Für die Motorregelung werde ich mal ein Programm schreiben, dass einfach wenn der Motor zu langsam dreht ihn schneller regelt (und anders rum). Das wird lange nicht so gut funktionieren wie ein PID-Regler, reicht aber hoffentlich um nicht in die Blumen zu fahren.

Klappt vielleicht dann ja doch noch mit einem Fahrvideo in den Ferien..

Das Wetter

Ich komme mit den verschiedenen Zahlen aus dem ADC einfach nicht weiter.

Vielleicht, weil wir hier Mittags über 30°C haben und es seit ungefähr 3 Tagen nicht mehr geregnet hatt – was einen als Norddeutschen natürlich irritiert.

Deswegen habe ich jetzt trotz der unterschiedlichen Werte ein Programm geschrieben, was die Umdrehung aller Räder zählt. Da ich ja auf Grund dieser Daten dann die Motoren regeln möchte, muss ich einen Regelalgorithmus haben. Was ich so gelesen habe (PID Regler) sieht recht kompliziert aus. Da werde ich mich wohl mal reinarbeiten. Eigentlich hatte ich ja gehofft, in der Ferien noch ein Video von einem perfekt gerade fahrendem Roboter präsentieren zu können, ich schätze aber, daraus wird leider nichts mehr.

Mehr als ein Byte

Ich habe mien Programm jetzt so umgeschrieben, dass es größere zahlen als 255 über Rs232 übertragen kann. Und man staunt: meine Theorie hatt sich bestätigt. Es wurde die 1023 um zwei Bits auf 255 gekürtzt. Jetzt kann ich am Pc die 1023 -und größere Zahlen- in voller Pracht bewundern.

Meinem Problem mit den verschiedenen Werten aus dem ADC hilft das aber nicht so viel. ich schätze aber, dass ich falsche Werte in das µC Register ADMUX schreibe. Hier stellt man ein, an welchem Pin man messen möchte, aber auch mit welcher Referenzspannung. Ändert sich die Referenz, ändert sich (zwangsweise) das Ergenbniss. Ob überhaupt und wenn dann warum mein Zugrif nicht stimmt, bleibt sehr seltsam.

Bitgeschiebe

Ich sitze frustriert an meinem Programm, welche alle Lichtschrankenimpulse zählen soll. Zwar sind die Impulse im Programm durchaus vorhanden, diese bewegen sich aber in ganz verschiedenen Wertebereichen. Im Programm bekomme ich den Wert 16 wenn die Lichtschranke blockiert ist. Bei der zweiten bekomme ich den Wert 140 und bei den darauffolgenden beiden 253. „Richtig“ wären nach meinen Überlegungen aber nur 250-255, da der ADC bei voller Spannung 1023 zurückgibt. Übertragen an den Pc wird aber nur ein Byte, also acht Bit, so wird aus 1023 dann 255 (Es werden die beiden höchstwertigen Bits weggelassen). Warum das bei den anderen nicht klappt weiß ich nicht.

 

Noch mehr Kabel

Alle Lichtschrankenplatinen sind montiert und die Kabel angeschlossen. Eine sinvolle Kabelführung habe ich mir noch nicht überlegt. Wenn die Kabel aber nicht kreuz und quer liegen sollen, sind die meisten zu kurz. So müsste ich sie auswechseln – Lötarbeit, auf die ich keine Lust habe. Der Bug (Fehler) aus dem Umdrehungsmessprogramm von mit habe ich jetzt auch behoben. So werden die Umdrehungen der einen Lichtschranke jetzt richtig gezählt.IMG_1444
Hier ist der Roboter. Sieht schon ziehmlich cool aus. Die Akkus werden mal wieder aufgeladen.

Erfolgreicher Tag

Heut hatt ganz viel geklappt: alle Drehgeberscheiben sind fertig an den Achsen montiert. Ich habe das nicht mit einer dickeren Mutter gelöst, sondern einfach die Scheibe vor die Messingverbindung von Motor zu Achse geklebt. Allerdings ist erst eine Lichtschranke fertig montiert und verkabelt.IMG_1443Die Programmierung hatt allerdings nicht auf Anhieb funktioniert. Aus irgendeinem (noch zu findenden) Grund verzählt sich das Programm bei der Impulszählung. Bei dem LED-Testprogramm flackern die Dioden aber wenn man das Rad dreht – an der Schalltung liegts also nicht!
Noch etwas funktioniert: eine Verbindung über Rs232. Ich habe es geschafft, Daten von meinem µC an den Pc zu schicken und dort auzuwerten. Genau so wird die Verbindug zwischen Raspi und µC funktionieren.

Drehgeber

Die Drehgeberscheiben sind (endlich) fertig! Es war zwar eine ziehmliche Schnippelarbeit, alle Scheiben genau auszuschneiden, aber es ist geschafft. IMG_1433Die erste ist auch gleich montiert und da zeigt sich ein kleines Problem: die Mutter, die die Scheibe vom Rad trennt und für Abstand sorgt, ist zu dünn. So passt die Lichtschranke dort nicht hin. Jetzt muss ich Heute oder Montag noch dickere Muttern kaufen.IMG_1438

Hier die Problematik als Bild. Die Lichtschranke ist allerdings noch nicht festgeschraubt, nur raufgelegt.

Professionelles Material

Heute hatt die Post mir ein großes Paket gebracht. In dem Paket: viele Sachen von einem professionellen Modellbauer geschickt. Von Handschuhen und Staubmasken über Schleifschwämme zu Polystyrol (weiße Plastikplatten) und Sekundenkleber. Mit dem Polystyrol kann ich dann endlich meine Drehgeber für die Lichtschranken bauen.IMG_1431

Eine Schablone für die Scheiben habe ich auch schon, die muss ich nur noch ausdrucken und auf die Platten kleben, dann kann ich die Scheiben in der richtigen Form ausschneiden.

Pegelwandler

Der Pegelwandler, welcher den 12V Pegel des seriellen Ports des Pcs an die 3,3V des Raspberry Pi anpasst, ist bestellt. Ich habe mich dafür entschieden, ihn zu kaufen, da er kaum etwas kostet und ein Selbstbau nicht billiger wäre und viel mehr Arbeit verursachen würde. Auch die Raspi Cam ist vorbestellt. Sie wird später einen Videostream live an den Pc oder Handy senden. Wegen niedrieger Produktion und vielen Käufern wird sie aber erst Ende des Jahres geliefert.