Hallo, Ich versuche gerade ein Linear-CCD (Toshiba TCD2955D) auszulesen und die Empfangenen Daten dann als Bitmap an den PC zu senden. Das Programm ist in Assembler geschrieben und die Daten werden mit dem Hyperterminal von Windows empfangen. Das CCD würde ich gerne benutzen um eine Linie eines reflektierten Laserstrahls aufzunehmen ( , und ganz nebenbei würde ich gerne versuchen eine Rundum-Kamera damit zu basteln....). Die Datenübertragung im BMP-Format steht schon ,und auch der Auslesetakt, mit dem Messen der einzelnen Farben ( nur das Messen an sich! ich empfange noch kein Farbsignal). Jetzt hab ich ein paar Fragen: 1. Wann genau muss ich das Signal auslesen ? Ich betreibe das CCD im 1600DPI Modus und mir ist nicht klar ob ich jetzt nach dem CP Takt messe oder nachdem PHI_1 wieder LOW ist ? 2. in welchem Bereich schwankt das Ausgabesignal? Wenn ich ohne irgendeinen Takt mit dem Multimeter einen Ausgabeport messe ich etwa 9,7V ? 3. Wie funktioniert denn der Verstärker der an den Ausgabeport gehängt werden soll (Datenblatt Seite 12)? ,Ich weiß dass der Basisstrom durch den Transistor verstärkt wird, aber wie setzt sich das Verstärkte Signal nun zusammen? mfg Stephan
Hallo Stephan Die Idee mit der Rundum-Kamera hatte ich auch schon vor längerer Zeit, bin aber aus zetilichen Gründen nicht dazu gekommen. Wie weit bist du schon damit - dies würde mich auch interessieren. gruss, Tefi
Hallo Stephan, geht es weiter mit dem Projekt? Hast du Probleme lösen können? Ich überege gerade, was ähnliches mit dem Sensor Toshiba TCD1504CD und einem Arduino zu machen, stehe aber vor einigen Schwierigkeiten (das Datenblatt fehlt, asm Programmierung habe ich zuletz ca vor 10 Jahren ggemacht) vG, Serge
Hallo, ist der thread hier tot oder kann man hier noch Näheres zu diesem Projekt erfahren. Vielleicht liest ja Stefan hier nochmal rein. bis die Jahre :) kann vielleicht sonstjemand diesen Toshiba TCD2955D ansteuern ? Arduino oder Teensy o.ä.
Ich habe zu wenig Ahnung von ASM um das zu reparieren, bräuchte hier Hilfe.
1 | ./scanner2.asm(654) : Error : adiw can only use registers R24, R26, R28 or R30 |
2 | done |
3 | |
4 | Used memory blocks: |
5 | Code : Start = 0x0000, End = 0x0190, Length = 0x0191 |
6 | |
7 | Assembly aborted with 1 errors and 3 warnings. |
"scanner2.asm" ist die einzige (s.o.) Projektdatei hier.
:
Bearbeitet durch User
Hi >Ich habe zu wenig Ahnung von ASM um das zu reparieren, bräuchte hier >Hilfe. Meinst du diese adiw zl:zh,1 ; Zeiger erhöhen Zeile? Sollte adiw ZH:ZL,1 heißen. MfG Spess
Assembly complete with no errors (3 warnings). vielen Dank ! ... beneidenswert
Lustig, dass das heute wieder Thema ist. Ich habe vor zwei Wochen einen TCD2716ADG bestellt (7000 pixel in R, G und B auf 35mm), den ich mit dem Arduino Due (ARM CPU) auslesen will. Die A/D-Wandler können angeblich 1MHz, und USB client Funktionalität ist auch da. Wenn INteresse besteht, dann schreibe ich mal, wie's so geht.
@Matthias vielleicht könntest Du schon vorab sagen, wo Du den Sensor (zu welchem Preis) bestellt hast und was generell die Anwendung sein soll.
Ich habe vor einiger Zeit über 40 Rollen 35mm und 16mm Filme meiner Familie und unseres Betriebes gefunden, die ich gerne digitalisieren möchte. Das kann man machen lassen, kostet aber sehr viel Geld. Inzwischen haben sich aber auch mindestens noch mal so viele Rollen von Freunden un Bekannten gefunden, weswegen ich einen Filmabtaster gebaut habe. http://www.matthiasm.com/filmscanner.html Aber die Abtastung mit einem USB Mikroskop ist qualitativ unbefriedigend. Ich habe daher nach linearen CCDs geschaut, denn die haben eine geniale Auflüsung - nicht nur physikalisch, sondern auch was die Lichtmenge angeht. Den Chip habe ich nach einer Tabelle bei Toshiba ausgesucht: http://toshiba.semicon-storage.com/de/product/sensor/linear-sensor.html Wichtig war, dass ich dort genug Sensoren in den drei Grundfarben habe, und die Abtastfläche mindestens 35mm breit ist. Der TCD2716ADG ist 35mm breit und für relativ kleines Geld zu haben. Bingo. Bestellt habe ich bei Aliexpress für 20 Euro. Man muss sich halt nur etwas gedulden. Lesen will ich das Ganze mit einem Arduino Due, denn der hat die erforderlichen sechs A/D Wandler in mindestens 10 bit und 1MHz Abtastrate. Ob das reicht wird sich zeigen. Schlimmstenfalls muss noch ein schneller A/D Wandler chip mit dran. Beschaltung des CCD ist detailliert in den verschiedenen Datenblättern beschrieben. Mechanik funktioniert (obwohl ich ab hochauflösenden Filmtransport noch sicherlich viel optimieren muss. Einzige Frage: muss der Chip irgendein Linsensystem haben, oder funktioniert das ohne Linse, weil der Film ja direkt über den Chip läuft. Aber das wird sich erst beantworten lassen, wenn der CCD vor Ort ist und funktioniert.
Das ist doch mal ein handfestes reales Projekt, sehr interessant ! "Aliexpress" hat mich schon oft gereizt, da es dort nicht nur interessante Preise sondern auch oft, hierzulande sehr schwierig erhältliche Teile gibt. Ich hatte immer Bedenken wegen eventueller Zollpapierschlachten und ähnlichen Schwierigkeiten. Hast Du schon Erfahrungen gemacht oder ist dies Deine erste Bestellung bei Aliexpress ? Eine Alternative zum Arduino DUE könnte vielleicht ein Teensy 3.1 sein. Die ADCs haben größsere Auflösung und die Taktfrequenz ist vergleichbar hoch. Ob auch Samplerate der ADCs höher ist weiss ich jetzt nicht. https://www.pjrc.com/teensy/ Meinen habe ich bei Watterott gekauft, ist dort wohl vergriffen, sollte aber wieder lieferbar werden. Watterott ist aber auch nicht der einzige Anbieter. http://www.watterott.com/index.php?page=search&page_action=query&desc=on&sdesc=on&keywords=Teensy&x=0&y=0 Zur Optik kannn ich nicht viel sagen, würde aber zwischen Lampe und Film eine Sammellinse positionieren (ähnlich wie bei Belichtugsgeräten zum Vergrössern).
:
Bearbeitet durch User
Wally W. schrieb: > Zur Optik kannn ich nicht viel sagen, würde aber zwischen Lampe und Film > eine Sammellinse positionieren (ähnlich wie bei Belichtugsgeräten zum > Vergrössern). Eine solche Kollimatorlinse wird wegen der hohe Lichtempfindlichkeit des CCDs nicht nötig sein, aber ein gleichmäßig beleuchteter heller diffuser Hintergrund in einigem Abstand (damit die Fehler nicht scharf abgebildet werden) zum Film. Ich würde sogar zwei anständige Objektive aus KB-Kameras ausschlachten und diese auf unendlich fokussiert mit den Frontlinsen fast aufeinander setzen. Wenn beide die gleiche Brennweite haben, erhält man eine 1:1 Abbildung, sonst eben eine entsprechende Maßstabsänderung. Vor dem Ausbau das Objektiv auf unendlich stellen und die Entfernung zwischen der Filmebene und dem hinteren Linsenscheitel genau messen *), denn dort sollte sich später der Film bzw. das CCD befinden. Das Ablesen der Brennweite vom Objektiv reicht bei diesen dicken Linsensystemen nicht. Das direkte Auflegen des Films auf den Sensor funktioniert nicht, denn das eigentliche CCD befindet in einiger Entfernung hinter dem Frontglas. Die Dicke dieses Fensters, der Brechungsindex und die Entfernung vom Fenster bis zur CCD-Oberfläche steht gewöhnlich im Datenblatt, und es ist kein Fehler diese Größen bei der Konstruktion zu berücksichtigen. *)Bei Wechselobjektiven kann man auch das Auflagemaß erfragen. Das ist die Entfernung zwischen der Filmebene und dem Flansch, mit dem das Objektiv auf dem Kameragehäuse aufliegt. https://de.wikipedia.org/wiki/Auflagema%C3%9F
:
Bearbeitet durch User
@Wally Walters: AliExpress hat bei mir bis jetzt immer problemlos funktioniert. Ich habe schon die schrägsten Sachen bestellt (sagt mein Zollamt) und immer alles so bekommen, wie es versprochen war. Es dauert halt bis zu einem Monat, bis das Zeug kommt. Aber wenn man damit leben kann. Von meiner Lieferliste: - Bestückungsautomat (super freundlich, alles funktioniert) - Elektroauto Ladegeräte (auch da tolle Kommunikation, Lader wurden auf meine Batterien abgestimmt, die richtigen deutschen Kabel lagen bei, weit jenseits meiner erwartungen) - Laptopbatterien - Federstifte (500 für 9 Euro, statt einen für 3,80 Euro in D) - Galvanometer Kit usw. Banggood liefert schneller, auch Arduino-artige Sachen. Dort war aber schon mal das Eine oder Andere beworbene dann doch nicht verfügbar. Sorry, Conrad und Co, aber wenn Ihr für ein USB Kabel allen Ernstes 12 Euro wollt, das bei AliExpress 80 Cent inklusive Versand kostet, dann müsst Ihr Euch nicht wundern.
@nachtmix: Ohgottogottogott. Gerade die aufwändigen Linsensysteme wollte ich ja vermeiden! Naja, warten wir erst einmal auf den Chip. Danke.
Gaaanz langsam kommt Bewegung in die Sache. Eben ist der Chip aus China gekommen:
Matthias M. schrieb: > - Galvanometer Kit Darf ich mal fragen, wofür Du das gebraucht hast? ;-) Ich bin mir nicht sicher, ob die Wahl einer CCD-Zeile gut war. Wenn Du diese große Auflösung von 4000 DPI in einer Achse willst, willst Du diese auch in der anderen (Transport)Achse. Heisst dann also einige Tausend Abtastungen pro Bild. Die Auslesefrequenz ist nicht unbegrenzt. Wenn die CCD 10MHz könnte und Du 7000 Pixel hast dann schaffst Du 1500 Bilder / Sekunde. Je nachdem wie groß das Bild auf dem Film ist (schätze mal 0,7") werden bei 4000 DPI 2800 Bilder "geschossen". Dauert dann in dem Fall fast 2 Sekunden. Für 1 Bild!!! Okay, man hat ja Zeit ;-) Ein halbstündiger Film wird dann so ca. 16 Stunden Abtastzeit benötigen. Aaaaber: Willst Du diesen A/D-Wandler vom Kontroller nehmen, dann reduziert sich Deine Abtastfrequenz eh um den Faktor 30 (1 MHz A/D-Samplingrate, aber geteilt durch die 3 Kanäle RGB beim multiplexten A/D Wandler!) Macht dann nur 50 anstatt 1500 Schuss pro Sekunde. Dann brauchst Du statt 16 Stunden 480 Stunden bzw. 20 Wochen für den Film, hast dann allerdings auch mehr Zeit für die parallele Aufarbeitung per PC ;-) Also neben der Tatsache, dass eine Flächenkamera schneller wäre, weil sie eben 10 oder 20 oder nochmehr KOMPLETTBILDER pro Sekunde schießt, wirst Du auch ein extremes Transportproblem bekommen. Wenn der Film nicht mit einer absolut exakt genauen Transportgeschwindigkeit läuft, die synchron zum CCD ist, dann bekommst Du ganz schlimmes Banding, also unterschiedliche Zeilenabstände. Da ist Mikrometerarbeit angesagt! Du musst im schlimmsten Fall die Transportgeschwindigkeit per hochauflösendem Drehgeber messen, so dass Du diese 4000 Impulse pro Inch Filmvorschub erhälst und den CCD darauf "abfeuern" kannst. Gruß Joachim
Ja, Joachim, das ist alles richtig. Mein Filmabtaster arbeitet aktuell tatsächlich mit einem USB-Mikroskop und liest den Film Bild für Bild. Das funktioniert einigermassen, aber es fehlt an Auflösung und vor allem in der Farbtiefe (8 Bit sind bei Film viel zu wenig). Die Abtastung eines Bildes dauert auch so bereits zwei Sekunden, da ich den Film transportiere, ausrichte, dann auf die Gain Control des Mikroskopes warten muss, und dann esrt das Bild bei völligem Stillstand schiessen kann. Man kann natürlich eine professioneller Kamera nehmen. Aber das wäre dan ein Fall für das Kameraforum. Filmabtaster sind recht langsam, können dafür aber auch die perfekte Qualität liefern. Ein Zeilensensor hat halt eine wirklich geniale horizontale Auflösung, und auch eine Bildtiefe von 12 bit oder mehr. Da ich nur eine Zeile verwende, muss der Film - der ja auf Rollen kommt - nicht gerade gebogen werden, sonder kann mit einem Rad über den Sensor geführt werden. Das Rad kommt aus der Drehbank und der Vortrieb über einen Zahnriemen vom untersetzten Stepper. So kann man auch die ältesten und brüchigsten Filme über den Abtaster schieben und braucht keinerlei Spannung aufzubauen oder ruckartige Bewegungen auszuführen, wie das z.B. im Projektor der Fall wäre. Und nebenbei ist das alles noch ein schönes Microcontroller-Experiment... .
Okay, wenn es jetzt auch schon so langsam geht, dann ist das zumindest nicht das Problem. Warum 8Bit nicht genügen begreife ich aber nicht. Ich vermute mal 3x8Bit RGB. Das ist eine normale 24Bit Farbtiefe und sollte für die Wiedergabe von Filmen genügen. Ich habe mir mit Laserscannern einen Fotobelichter gebaut. Der arbeitet auch mit 3x8Bit und die Qualität der Fotos ist bestechend. Vielleicht hat Dein USB-Mikroskop aber auch an anderer Stelle Probleme oder löst nicht wirklich mit 8Bit pro Farbe auf. Das größte Problem mit der Zeile sehe ich aber wie gesagt im Vorschub. Die Pixelreihen haben ca. 3-4 Mikrometer Breite und diesen Abstand musst Du von Zeile zu Zeile exakt einhalten. Da bin ich auf Deine Lösung wirklich gespannt :-) Ich arbeite am gleichen Problem "umgekehrt": Um ein Foto mittels eines Polygonscanners zu belichten brauche ich einen Papiervorschub, der mir auch mikrometergenau das Papier transportiert. Keine leichte Aufgabe. Gruß Joachim
Belichten mit 8 bit funktioniert gut, wenn Du den minimalen und maximalen Lichtwert kennst, den Dein Fotopapier gerne mag. Beim Film ist das anders: ich kenne weder den dunkelsten Schwarzwert, noch die höchste Transparenz des Filmstreifens. Das Basismaterial hat dann oft noch einen Gelb-Stich, so dass man die anderen Farben verstärken muss. Und zu guter Letzt hat Film keine lineare Transparenzkurve, so dass man auch schon mal eine ganz ordentlich Belichtungskorrektur durchführen muss (z.B. HDR). https://de.wikipedia.org/wiki/High_Dynamic_Range_Image Da werden aus 8 bit dann ganz schnell effektive 6 bit oder weniger, was dann zu massiven Farbbändern führt. Ich habe viele Jahre Software für den Filmbereich geschrieben. Dort haben wir mit mit 32 bit pro Farbkomponente gearbeitet (also 128 bit pro pixel in RGBA). So sind dann alle Filterfunktionen auch in der Summe verlustfrei. https://www.thefoundry.co.uk/products/nuke/ Achja, und der mechanische Antrieb ist tatsächlich ein grosses Problem. Wahrscheinlich werde ich mit Schwungmasse und fester Abtastrate arbeiten.
:
Bearbeitet durch User
Auch sehr gut CCD Sensoren schaffen kaum mehr als 14 Bit Auflösung. Diese Sensoren eher noch einiges weniger. Ohne guten Abgleich der Beleuchtung könnten 8 Bit aber schon etwas knapp werden. Nicht umsonst arbeiten die Foto Kameras auch mit etwa 10-12 Bit je Farbe. Um eine Optik kommt man nicht herum. Da muss dann auch der Abstand schon recht gut (ca. 10 µm) stimmen, sonst wird es unscharf. Vermutlich wird die Auflösung auch mehr von der Optik bestimmt - die volle Auflösung wird man eher nicht erreichen mit einer erschwinglichen Optik, auch wenn man Farbfehler in Grenzen (gerade den von der Farbe abhängigen Fokusabstand eher nicht) rechnerisch korrigieren kann. Wenn man den linien CCD schnell auslesen will, braucht man auch entsprechend mehr Licht. Da hat ein 3 D CCD Chip dann doch Vorteile, einfach weil die Fläche größer ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.