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.ä.
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
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.
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).
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
@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.
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.
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.