Das Zeitalter optischer Medien geht vorbei. Angefangen von der CD-ROM - ich habe mit einem sauteueren 2x Laufwerk gestartet - ueber DVDs zur BlueRay und auch der noch jungen „4K Ultra HD Blu-ray“ wird das gleiche Schicksal ereilen.
Die alternden Medien wurden teilweise fuer Archivierung verwendet. Jetzt ist es hoechste Zeit den Inhalt zu „retten“ und auf andere Medien zu heben.
Hier kommt der Autoloader ins Spiel, denn wer will schon 100+ CDs, DVD,usw. in ein Laufwerk einlegen und auf das vollstaendige Auslesen des Mediums warten. Kurz: Der Autoloader besitzt ein Magazin, legt die Medien selbststaendig ein, liest deren Inhalt und wirft die Medien auch wieder aus dem Laufwerk aus, damit das ganze Spiel wieder von vorne beginnen kann.
Der Endschalter fuer den Hebekopf ist ein Transimpedanzverstaerker, der das Signal der Photodiode D2 verstaerkt.
Die Verstaerkung kann an RV1 eingestellt werden.
D1 beleuchtet den Zahnriemen.
Auf dem Zahnriemen wurde ein Stueck Alufolie als Reflektor geklebt.
Kommt nun die Alufolie am Endschalter vorbei, wird das Signal am Arduino digital gewandelt.
Zur Schwellwertbildung wird die numerische Ableitung des Signals gebildet und dann mit einem Schwellwert versehen.
Das Ganze funktioniert recht gut, leider kann Umgebungslicht so viel zum Signal beitragen, dass die Reflektion der Alufolie nicht mehr zu detektieren ist. Daher: Betrieb bei gleissendem Sonnenlicht nicht moeglich.
Der Sensor stammt von hier. Leider ist dessen Schaltschwelle von der Reflektivitaet der Oberflaeche abhaengig. So funktioniert das Detektieren der Oberflaechenhoehe mal besser und mal schlechter, je nach Medium.
Der Sensor wird verwendet um festzustellen, ob ein Medium erfolgreich aufgenommen/abgelegt wurde.
Die IMU MPU9250 stammt von Ebay und ist per I2C mit dem Arduino verbunden. Ueber die IMU wird erkannt, ob die Hebekopf hin und her schwankt.
Der „Versatz“-Antrieb wird verwendet, um den Versatz von der Magazinachse und der Laufwerksschublade auszugleichen.
Die Ablaufsteuerung wird zentral vom python-script „autoloader.py“ gesteuert. Von dort aus werden per UART die verschiedenen Zustandsmaschinen im Arduino aufgerufen.