Ich verwende für einen C64 noch so eine Datasette. Die haben ja
standardmäßig ein mechanisches Zählwerk eingebaut:
http://de.wikipedia.org/wiki/Datasette#mediaviewer/Datei:Commodore-Datassette.jpg
Wäre es nun möglich in das gerät ein digitales Zählwerk einzubauen?
Ich hätte mir das in etwa so vorgestellt.
Ich weiß nicht ob das heute noch so gemacht wird, aber bei einigen
Geräten wurde doch auf die Antriebsscheibe oft so eine schwarz/weiß
gestreifte scheibe aufgeklebt.
Wenn man diese nun irgendwie abtastet. Jeweils so das eine die weiße und
eine die schwarze Fläche scant. Und das ganze dann wie bei einem
Drehencoder (Drehgeber) ausgewertet wird. Also somit die Drehrichtung
und die Umdrehung feststellen kann.
Oder würde man das eher mit solchen geschlitzten Scheiben wie sie in
einer Kugelmaus verwendet werden machen?
Wie setzt man das am besten um?
Jemand eine Idee?
Manfred W. schrieb:> Wäre es nun möglich in das gerät ein digitales Zählwerk einzubauen?
Sicherlich, aber ob das bei der recht begrenzten Genauigkeit dieses
Meßverfahrens Sinn macht?
Gruss
Harald
Manfred W. schrieb:> ist das denn wirklich so ungenau?> Wie wird das denn bei HiFi Kassettendecks gelöst?
Halb so wild. MaWin übertreibt da ein bischen.
In der Praxis spult man ja nicht bis genau an die Bandstelle vor,
sondern hört ein bischen davor auf und lässt dann einfach laufen. Dazu
hat man sich ja großzügige Pausen zwischen die Programme auf dem Band
gelassen, wenn nicht der Lesecode den Programmanfang auch so anhand
einer Kennung finden kann.
Besser als ständig im Sichtfenster auf die kleine Skala zu linsen ist
das allemal.
Mach auf beiden Drehtellern eine Skala. dann kannst du wenn du die
Cassette einlegst genau die Stelle sagen an der sich die Cassette
befindet.
Dann mußt du aber noch die Laufzeit der CC eingeben, um zum genauen
Ergebniss zu kommen. Das erspart das Zurückspulen zum Anfang.
Harald Wilhelms schrieb:> Sicherlich, aber ob das bei der recht begrenzten Genauigkeit dieses> Meßverfahrens Sinn macht?
Video2000 hat das Verfahren mit Messung von beiden Spulen verwendet,
und die waren Minutengenau.
Manfred W. schrieb:> Wie wird das denn bei HiFi Kassettendecks gelöst?
Nicht über den Capstan, sondern über den Bandantrieb, der aber nicht
linear zur Bandposition ist (eine Umdrehung eines leeren Bandwickels
befördert weniger Band als eine Umdrehung eines vollen Bandwickels).
Diese mechanischen Zählwerke sind also hochgradig ungenaue Schätzeisen.
Beim Abspielen ist der Capstan ("Tonwelle") bzw. die Andruckrolle die
genaueste Möglichkeit, aber das versagt beim schnellen Vor- bzw.
Rücklauf, denn da ist der nicht an die Bandbewegung gekoppelt.
Fazit: Die Bandposition lässt sich nicht genau bestimmen, das ist
immer eine Schätzorgie.
Also wenn das digitale Zählwerk so genau wie das bisher mechanische ist,
reicht mir das schon.
Wie muss denn diese Skala aussehen du wie taste ich die dann ab?
Für eine Lichtschranke wird ja ein Sender und Empfänger benötigt.
Wie siehts mit einem Reed-Schalter aus? Wäre das auch eine Lösung?
Manfred W. schrieb:> Also wenn das digitale Zählwerk so genau wie das bisher mechanische ist,> reicht mir das schon.> Wie muss denn diese Skala aussehen du wie taste ich die dann ab?> Für eine Lichtschranke wird ja ein Sender und Empfänger benötigt.
Ja. Und
'Sender' ist eine LED. Empfänger ist ein Phototransistor.
Genau so, wie es die ganzen Billig-Roboter (Asuro, NIBobee...) auf den
Motorachsen haben, um die Umdrehungen der Räder zählen zu können.
Einfach mal ein wenig über den Tellerrand linsen.
Paulchen_P schrieb:>> Sicherlich, aber ob das bei der recht begrenzten Genauigkeit dieses>> Meßverfahrens Sinn macht?> Video2000 hat das Verfahren mit Messung von beiden Spulen verwendet,> und die waren Minutengenau.
Nun, verschiedene hochwertige Audio-Magnetbandgeräte haben auch
mit minutengenauer Bandzählung geworben. Solche aufwändigen
Zählwerke waren aber eher die Ausnahme.
Gruss
Harald
In der Regel ging es bei den Zählwerken nicht darum, die Minuten oder
die Bandlänge abzuzählen, sondern man wollte per Zählerstand die Anfänge
der Lieder (oder bei der Datasette der Programme) wiederfinden.
Von daher ist es auch völlig unproblematisch, daß das Zählwerk durch den
sich verändernden Wickeldurchmesser nicht linear zur Zeit ist. Es
reicht, wenn man sagt: "Programm 4 fängt bei Zählerstand 158 an". Was
das für Meter oder Minuten sind, ist egal.
Manfred W. schrieb:> Ein PDF hätte ich auch noch gefunden:> http://www.transkommunikation.ch/dateien/schaltungen/diverse_schaltungen/miscellaneous_circuits/Digitales%20Zaehlwerk%20fuer%20Tonband.pdf
Die Auswertung der Lichtschranken kannst du ja lassen.
Aber das ganze Gehampel mit den 192-er Zählern samt LED-Dekodern würde
ich lassen und statt dessen einen µC nehmen, der die 7-Segment im
Multiplex ansteuert.
Anstatt 4 IC und einem Haufen drumm herum nur 1 IC und dafür dann auch
eine 3 oder 4 stellige Anzeige, die nicht so schnell überläuft.
Der kann sich dann auch den aktuellen Zählerstand im EEPROM merken, so
dass (vorausgesetzt das Band wurde nicht entnommen und wieder eingelegt)
auch nach einem Aus- und Wiedereinschalten der ganzen Anlage die
Anzeige so leidlich stimmt.
Karl Heinz schrieb:> Der kann sich dann auch den aktuellen Zählerstand im EEPROM merken, so> dass (vorausgesetzt das Band wurde nicht entnommen und wieder eingelegt)> auch nach einem Aus- und Wiedereinschalten der ganzen Anlage die> Anzeige so leidlich stimmt.
Beschreibbaren RFID-Transponder in Kassette einbauen ...
npn schrieb:> In der Regel ging es bei den Zählwerken nicht darum, die Minuten oder> die Bandlänge abzuzählen, sondern man wollte per Zählerstand die Anfänge> der Lieder (oder bei der Datasette der Programme) wiederfinden.
Exakt.
Wobei 'wiederfinden' hier schon zu hoch gegriffen ist. Es reicht völlig,
wenn man eine ungefähre Idee hat, wo sich das Band in Relation zur
gesuchten Information befindet. Das 'Fine-Tuning' macht man dann sowieso
nach Gehör. Aber man spart sich zumindest die ständige Tastenakrobatik
zwischen 'Play', 'Stop' und 'schneller Vorlauf' um wenigstens in die
Nähe des gesuchten Stückes zu kommen.
Leute, die wie ich mit dem Radiorekorder als einzig verfügbares Medium
aufgewachsen sind, um am Puls des musikalischen Geschehens zu bleiben,
wissen wie das funktioniert.
Also ich nehme zwei von diesen Optokopplern, klebe eine schwarz/weiss
scheibe auf das Schwungrad.
Wenn das Prinzip dann genauso funktioniert wie das eines Drehgebers
könnte man die Auswertung 1:1 übernehmen, oder?
Manfred W. schrieb:> Also ich nehme zwei von diesen Optokopplern
Reflexlichtschranke ist besser, gibt es als nettes kleines Bauteil:
http://www.reichelt.de/?ARTICLE=114341
Und die beiden müssen etwas versetzt angeordnet sein (bzw. die
schwarz/weiß-Streifen auf der Scheibe etwas versetzt sein), damit sie
mit entsprechendem Versatz auslösen, was wie beim Drehimpulsgeber zur
Richtungserkennung nötig ist.
Manfred W. schrieb:> Kann man die gleich direkt so an den Mikroprozessor hängen?
Natürlich nicht.
> Oder benötigen die Vorwiederstände?
Wider. Mit nur einem 'e'.
Sieh doch einfach mal ins Datenblatt.
Manfred W. schrieb:> Also ich nehme zwei von diesen Optokopplern, klebe eine schwarz/weiss> scheibe auf das Schwungrad.
Nicht auf das Schwungrad, das ergäbe nur einen Betriebsstundenzähler für
den Motor. ;)
Stattdessen dahin, wo auch das mechanische Zählwerk seinen Antrieb
herbekommt, also an eine der Achsen für die Bandwickel.
Mit rel. hauchauflösender Abtastung der 2 Bandwickelteller (nicht
Capstan) sollte auch eine genaue Posit.Bestimmung möglich sein. (Man
kann den Unterschied leere-volle-Spule ja berechnen und entspr.
anpassen)
Mein alter BASF-Cassettenrecorder hatte an der Bandzählwerks-Achse einen
Magneten und daneben einen Reed-Kontakt, den man im Betrieb leise
klicken hörte. War das Band verklemmt, dann hörten die Impulse des
Reedkontakts auf und das Gerät schaltete aus.
Das Video2000-System hat ziemlich genau funktioniert, ich meine, Grundig
hat es später auch für VHS übernommen.
MCUA schrieb:> (Man> kann den Unterschied leere-volle-Spule ja berechnen und entspr.> anpassen)
Wozu? Mit dem Zählerstand will man doch nur eine bestimmte Stelle
wiederfinden. Sonst nix. Wurde weiter oben schon besprochen.
MCUA schrieb:> Mit rel. hauchauflösender Abtastung der 2 Bandwickelteller (nicht> Capstan) sollte auch eine genaue Posit.Bestimmung möglich sein. (Man> kann den Unterschied leere-volle-Spule ja berechnen und entspr.> anpassen)
So macht das mein Sony-Deck auch. Die Pulse beider(!) Bandwickel werden
addiert, was immer zu einer annähernd gleichen Pulsmenge pro Zeiteinheit
führt, egal wie voll die jeweiligen Bandwickel sind.
Wiederholgenauigkeit bei einer 90er-Cassette besser 20 Sekunden auf 45
Minuten Band bei mehrfachem komplettem Umspulen.
Ich hätte eine Frage zu dem ITR8307, also der Reflexlichtschranke.
Dazu habe ich im Netz nur eine Beispielschaltung gefunden, in der dieser
Bauteil verwendet wird:
http://blog-cc7107.over-blog.com/article-detection-des-trains-par-infra-rouge-itr8307-113443209.html
Was mich interessieren würde, wäre der Widerstand R2.
Wenn Google das Französisch richtig übersetzt hat, wird damit die
Erfassungsreichweite definiert.
Meine Frage jetzt, wie berechnet man den? Oder kann man hier einfach nur
ausprobieren.
Ich gehe mal davon aus, je höher der Widerstandswert umso geringer ist
die Reichweite.
Manfred W. schrieb:> Meine Frage jetzt, wie berechnet man den? Oder kann man hier einfach nur> ausprobieren.>> Ich gehe mal davon aus, je höher der Widerstandswert umso geringer ist> die Reichweite.
Den Widerstandswert von R2 sollte so gewählt werden, dass die
Ausgangspegel für "hell" und "dunkel" symmetrisch zur Schaltschwelle von
der Eingangsstufe liegten, d.h. der Wert hängt von Entfernung,
Reflektivität, Umgebungshelligkeit und Beleuchtungsstärke durch deine
LED ab.
R2 hängt von der Empfindlichkeit des Phototransistors ab und von dem
Störspannungsabstand, den man erreichen will. Hier ist Probieren
angesagt, da die Reflexkoppler, die es inzwischen auch von vielen
anderen Herstellern gibt, recht stark streuen. Von 1k bis 100k ist da
alles möglich, also ein weites Feld. Mit zunehmendem Widerstand nimmt
allerdings die Erfassungsgeschwindigkeit ab, so dass man beim schnellen
Umspulen eventuell Pulse verpassen könnte. Es sollte also ein Kompromiss
von R2 und dem LED-Strom geschlossen werden, um saubere und schnelle
Signale zu bekommen. Hier spielt auch die Obeflächenbeschaffenheit der
Reflektormarken eine wichtige Rolle, da jede Rauhigkeit oder Oxidschicht
das Signal ziemlich verrauschen kann.
Ich bräuchte nochmal eure Hilfe.
Und zwar verwende ich folgendes Beispiel um den Zähler meiner
Segmentanzeige auf die Zahl 9999 zu begrenzen.
1
void Print(uint16_t num)
2
{
3
uint8_t i=0;
4
uint8_t j;
5
6
if (num>9999) return;
7
8
while (num)
9
{
10
digits[i]=num%10;
11
i++;
12
num=num/10;
13
}
14
for (j=i;j<4;j++) digits[j]=0;
15
}
Sprich wenn 9999 erreicht ist, springt er zu 0
Wie stell ich es an das er beim rückwärtszählen sich so verhält, das
wenn 0 erreicht ist der nächste Schritt 9999 wäre und von dort an
rückwärts weiter zählt?
Rufus Τ. Firefly schrieb:> Beim Abspielen ist der Capstan ("Tonwelle") bzw. die Andruckrolle die> genaueste Möglichkeit
Ja. Nur ziemlich nutzlos.
> aber das versagt beim schnellen Vor- bzw.> Rücklauf, denn da ist der nicht an die Bandbewegung gekoppelt.
Eben deswegen.
> Fazit: Die Bandposition lässt sich nicht genau bestimmen, das ist> immer eine Schätzorgie.
Nein. Ich selber habe (mittlerweile vor Jahrzehnten) eine Lösung des
Problems praktisch implementiert und jahrelang mit sehr guten
Ergebnissen angewendet. Das Projekt war damals "VCR als Backupgerät" und
zwar für einen Amiga. Zu meiner Entschuldigung: Das war zu Zeiten, als
eine 40MB-Platte noch fast 1000 DM gekostet hat, da ergab das wirklich
einen Sinn...
Der grundsätzlich von mir damals verwendete "Trick" wurde auch bereits
im Thread erwähnt: an beiden Bandwickeln möglichst hochauflösend deren
Rotation zu vermessen.
Aus diesen Meßwerten (über eine gewisse Zeit) ist es möglich ALLE
variablen Parameter mit "hinreichender" Genauigkeit zu ermitteln, also
Bandstärke, Bandlänge und die aktuelle Verteilung auf die beiden Wickel.
Damit schafft man bei VHS deutlich besser als 1%, nämlich so ungefähr
eine Minute bei einer Gesamtlaufzeit von 240 Minuten. Das ist schon
deutlich besser als die von dir apostrophierte "Schätzorgie". Dann
kannst du nämlich auch deine gesamten Meßgeräte als "Schätzgeräte"
bezeichnen und wegwerfen!
Aber natürlich muß dazu die Sache eine ganze Weile laufen, die
Genauigkeit der Messung hängt von der Meßzeit ab. Das muß man durch eine
während der Suche ständig fortlaufenden Messung und Korrektur
ausgleichen und die Suchroutine so programmieren, daß sie entprechend
der aktuellen Unsicherheit sinnvoll handelt.
Das Nonplusultra ist dann übrigens ein zusätzliches, auf das Problem
zugeschnittenes "Filesystem", eigentlich mehr so eine Art
Soft-Sektorisierung. Unbedingt nötig ist das aber nicht. Hilft
eigentlich nur in der Situation wirklich merklich, daß die frisch
eingelegte Kassette schon von vornherein fast an der richtigen Stelle
ist. Was allerdings gerade bei der Anwendung als Backup-Gerät durchaus
der Normalfall war, weswegen ich es dann letztlich doch auch noch
eingebaut habe. Die Sektorisierung landete auf der Audiospur und wurde
einfach beim normalen Schreiben mitgeschrieben, es war also kein extra
Formatierungslauf dafür nötig.
Da nachträglich hinzugekommen, war die Sache auch abwärtskompatibel,
d.h.: er hat die Bandstelle auch gefunden, wenn die Audiospur nicht
"lesbar" war, es hat dann eben nur länger gedauert...
Hallo Manfred,
wenn du noch etwas warten kannst, habe ich genau das richtige für dich
:-)
Nachdem ich letztes Jahr mein Tapedeck neu eingemessen hatte entstand
der Wunsch das mechanische Zählwerk durch ein digitales mit
Echtzeitanzeige zu ersetzen.
Warum?
Weil es Spass macht!
Das Projekt ist fast abgeschlossen, es fehlen noch die Dokumentation und
ein Platinenlayout zum Nachbau, dann werde ich das ganze mit Quellcode
in Assembler veröffentlichen.
Features: Echtzeitanzeige ohne vorherige Eingabe der Kassettengröße nach
einer kurzen Messphase. Normale Zählwerkfunktion mit Nullstoppausgang.
Ich taste nur den Afwickelteller ab, das macht die Sache mechanisch und
Softwaretechnisch etwas einfacher, mir genügt die erreichte Genauigkeit
von besser 1%.
Am Rekorder muss Folgendes angebaut werden:
Schwarzweißmuster am Aufwickelteller mit 8 weißen und 8 schwarzen
Feldern für eine Umdrehung, welche mit 2 Lichtschranken abgetastet
werden. Wenn eine Lichtschranke die Mitte eines Feldes beleuchtet muss
die zweite auf den Übergang zwischen zwei Feldern zeigen. Eine dritte
Lichtschranke tastet das Kassettenfach ab: Kassette
eingelegt/Kassettenfach offen oder nicht. Ein Taster zur Bedienung und
ein 4- oder 5-stelliges LED-Display sind nach eigenen Möglichkeiten zu
integrieren. Versorgungsspannung 12 Volt ~.
An Hardware ist im wesentlichen ein ATMEGA 8 und ein LM339 mit etwas
Kleinkram verbaut.
Detailfragen vorab gerne per PM
Manfred W. schrieb:> Sprich wenn 9999 erreicht ist, springt er zu
in dem Code springt nichts zu 0 zurück. Wenn hier in Print eine Zahl
ausgegeben wird, die größer als 9999 ist, dann verweigert Print ganz
einfach.
Ausserdem ist das die falsche Stelle.
Die Funktion heißt Print, weil ihr Aufgabe die Ausgabe von Zahlen ist.
Was auch immer diese Zahl ist. Das einzige was Print machen darf ist,
das es sich dagegen 'wehren' darf, wenn die auszugebende Zahl nicht auf
die Anzeige passt. Das ist ok (und das macht sie auch). Aber mit
irgendwelchen Zählstrategien hat Print nichts am Hut. Das ist ganz
einfach nicht sein Job.
Wo zählst du denn vor bzw. rückwärts? Dort ist die korrekte Stelle, die
entsprechende Logik zu machen. Und wie macht man das? Na zum Beispiel
mit einem Vergleich (hängt davon ab, wie du konkret zählst).
vorwärts zählen:
wenn der Zähler kleiner als 9999 ist, dann darf 1 addiert werden.
Ansonsten wird der Zähler auf 0 gesetzt.
rückwärts zählen:
wenn der Zähler größer als 0 ist, dann darf 1 abgezogen werden.
Ansonsten wird der Zähler auf 9999 gesetzt.
Wenn deine Zählerei anders funktioniert, dann musst du dir eben was
anderes ausdenken. Wenn du zb grundsätzlich immer nur eine
vor-aufbereitete +1 bzw. -1 addierst, dann muss man eben im Nachhinein
feststellen, ob man den Zahlenbereich verlassen hat und entsprechend
korrigieren. Zählt man zu 9999 noch 1 dazu, dann landet man bei einer
Zahl die größer als 9999 ist. Zieht man von der dann 10000 ab, dann
stimmt wieder alles. Denn
9999 plus 1 ergibt 10000. Davon 10000 abgezogen, ergibt 0. Und das ist
ja auch korrekt.
9999 plus 5 ergibt 10004. Das ist größer als 9999, also werden 10000
abgezogen und man erhält 4. UNd auch das ist richtig. Denn von 9999 um 5
Pulse weiter gezählt ergibt 4.
Was ist in der anderen Richtung?
Ist man bei 0 und zieht 1 ab, dann landet man bei -1 (ich geh mal davon
aus, dass der Zähler ein int ist, also ein Vorzeichen hat). Das ist aber
leicht, denn wenn das Ergebnis offenar kleiner als 0 ist, dann zählt man
entsprechnd die 10000 dazu und landet am anderen Ende der Skala. -1 plus
10000 ergibt 9999. Aber auch wenn man von 1 6 Pulse abzieht,
funktioniert das immer noch. 1 minus 6 ergibt -5. Das ist kleiner als 0,
also werden 10000 dazu gezählt und man landet bei 9995. Kann das
stimmen? Mal sehen
geh ich von der Zahl 0001 um 6 Zahlen nach links, dann lande ich bei,
tata, 9995. Die Rechnung stimmt also.
1
intzaehler;
2
3
...
4
5
6
zaehler+=inkrement;
7
if(zaehler>9999)
8
zaehler-=10000;
9
if(zaehler<0)
10
zaehler+=10000;
11
12
Print(zaehler);
13
....
nicht alles wird dir fertig auf einem Silbertablett präsentiert (mist,
jetzt hab ich es schon wieder gemacht). Manchmal musst du dir auch
einfach selber was ausdenken.
Hallo!
sowas hatte ich auch mal vor einer Ewigkeit für einen Sinclair
ZX-Spectrum.
Ein nettes Feature war die Voreinstellbarkeit des Zählers. Man konnte
eine Kassette einfach in einer beliebigen Position einlegen und laufen
lassen. Wenn dann am TV der Name eines Files auftauchte, verglich man es
mit dem "Directory" (auf Papier) und stellt den Zähler auf diesen Wert.
Von diesem Stand konnte ich dann jedes File auf der Kassette - mehr oder
weniger genau - finden, indem ich etwas vor die gesuchte Position
spulte.
Prozessor U882 (Zilog Z8 Clone)
Edit: mit zwei Lichtschranken für beide Wickel wäre eleganter gewesen,
damals aus Platzgründen nicht möglich.
Wie versprochen hier nun die Software für mein digitales Bandzählwerk
mit Echtzeitanzeige. Auf meiner Homepage
http://www.stefankneller.de/framesets/zaehlwerk.html
gibt es dazu weitere Informationen, Bilder und Pläne.
Die Software kann sicher noch verbessert werden (die Behebung eines
kosmetischen Fehlers steht z.B. noch auf der Todo-Liste), für mich ist
das Projekt aber erstmal abgeschlossen.
Viel Spass bei der Lektüre.