Inhoudsopgave:

Hellschreiber-klok: 13 stappen (met afbeeldingen)
Hellschreiber-klok: 13 stappen (met afbeeldingen)

Video: Hellschreiber-klok: 13 stappen (met afbeeldingen)

Video: Hellschreiber-klok: 13 stappen (met afbeeldingen)
Video: Сериал - "Сваты" (1-й сезон 1-я серия) фильм комедия для всей семьи 2024, November
Anonim
Hellschreiber Klok
Hellschreiber Klok

Een kleine microcontroller is geprogrammeerd om een reeks tonen uit te voeren die, wanneer ze naar een pc-geluidskaart worden gevoerd en verwerkt door een spectrumanalyseprogramma, een afbeelding van de huidige tijd weergeeft.

Stap 1: Spectrum Lab-software

Spectrum Lab-software
Spectrum Lab-software

Al het harde werk van het analyseren en weergeven van de tonen wordt uitgevoerd door een stuk gratis software, het "Spectrum Lab", geschreven door een amateurradio-enthousiasteling, DL4YHF. Het analyseert het geluid dat via de geluidskaart wordt ingevoerd en geeft het resultaat weer als een afbeelding.

Het type display dat hier wordt gebruikt, wordt het "waterval" -display genoemd en is ingesteld om van rechts naar links te scrollen. Het scrollt traditioneel van boven naar beneden, en vandaar de term waterval. Dit programma wordt door amateurs gebruikt om onder andere met fracties van een watt halverwege de aarde te communiceren. Het is een zeer capabel programma en heeft een groot aantal instellingen die precies goed moeten worden aangepast om een goede weergave te krijgen. De term "Hellschreiber" is lang geleden ontstaan op het gebied van telegrafie en betekent letterlijk schrijven met licht. Het display op de inleiding is een grafiek van de intensiteit van de frequentie tegen de tijd. De microcontroller is geprogrammeerd om een reeks tonen te genereren, zodat een afbeelding van de informatie door dit programma wordt geschilderd. Deze modus wordt gedefinieerd als "sequentiële meertonige Hellschreiber" en wordt gebruikt voor communicatie over lange afstanden met behulp van relatief eenvoudige zendapparatuur.

Stap 2: Tijd als een reeks frequenties

Tijd als een opeenvolging van frequenties
Tijd als een opeenvolging van frequenties

Deze schermafbeelding toont de opname van de klok die een sequentiële secondeninformatie verzendt. Eigenlijk is dit nep, aangezien elke reeks cijfers enkele seconden nodig heeft om te worden gegenereerd en dus de weergaven een groter tijdsinterval bestrijken dan de voorgestelde drie seconden.

Het patroon van stippen boven de lijn van cijfers is te wijten aan de harmonischen van de tonen: de microcontroller genereert tonen door een poortlijn naar de voeding of aarde te schakelen, en de resulterende rechthoekige golf heeft veel harmonischen. Aangezien dit rechtstreeks naar de geluidskaart wordt gevoerd, zal het display al deze harmonischen samen met de gewenste grondfrequentie weergeven. Aangezien het arrangeren van een zuivere sinusgolf moeilijk is, moet het verschil tussen de maximale en minimale frequenties die voor weergave worden gebruikt, zo worden gerangschikt dat het minder dan een octaaf is. Met andere woorden, de maximale frequentie moet kleiner zijn dan het dubbele van de minimale frequentie.

Stap 3: elke tiende seconde weergeven

Elke tiende seconde weergeven
Elke tiende seconde weergeven

De weergave in de afbeelding is realistischer voor het soort prestatie dat met de klok kan worden verkregen: update elke tien seconden.

De cijfers zijn geprogrammeerd om uit elkaar te worden geplaatst om visueel mooier te zijn. Alle programma's die deze displays hebben geproduceerd, zijn opgenomen in een zipbestand in de laatste stap van deze instructable. Het schakelschema is in ASCII-vorm opgenomen in de asm-bestanden. De microcontroller was een Microchip 12F510, een acht-lead microcontroller die werd geklokt op 32.768 KHz met behulp van een klein kristal van een ter ziele gegane horloge. Er werd slechts één uitgangslijn gebruikt, waardoor er twee I/O-lijnen en één ingangslijn vrij bleven voor ander gebruik.

Stap 4: Golfvormen

Golfvormen
Golfvormen
Golfvormen
Golfvormen

De twee figuren tonen het soort golfvormen dat in de geluidskaart gaat om deze weergaven mogelijk te maken.

De eerste toont alle zeven frequenties die in volgorde worden uitgevoerd, en de eerste frequentie opnieuw. Het is het cijfer "1", de reeks van zeven frequenties die de verticale lijn veroorzaakt, en de laatste de rechterkant van de basis. De tweede laat zien hoe de gaten de lege ruimtes in het scherm veroorzaken. Als een bepaalde spatie in de dot-matrix die een teken vormt leeg is, wordt de corresponderende frequentie niet verzonden tijdens zijn tijdslot, waardoor een teken wordt gevormd met lichte vlekken en lege ruimte.

Stap 5: Willekeurige bitmaps weergeven

Willekeurige bitmaps weergeven
Willekeurige bitmaps weergeven

Het weergeven van de tijd of andere dergelijke alfanumerieke gegevens is prima, maar soms willen we misschien een mooie weergave van wat willekeurige dingen.

Het kan, zoals besproken en gedemonstreerd zal worden. Ik zal programma's schrijven die de tekstregel "Instructables" weergeven als een bitmap, en de instructables-robot als een afbeelding van 24 pixels hoog. Eerst moeten de benodigde beelden gedigitaliseerd worden. De eerste stap is om ze op ruitjespapier te tekenen. "Instructables" is geschreven met een lettertype van vijf pixels hoog. Omdat dit als een bitmap wordt verzonden, heb ik waar mogelijk letters door elkaar gehaald zonder de leesbaarheid te verpesten. Het beeld van de instructables-robot werd verticaal verkleind tot 24 pixels en vervolgens markeerde ik de omtrek met stippen en voegde ik ook een paar stippen aan de binnenkant toe. Ik denk dat mensen de robot zullen herkennen, vooral als je ze van tevoren vertelt dat het zo hoort te zijn.

Stap 6: "Instructables" digitaliseren

Digitaliseren
Digitaliseren

De afbeelding laat zien hoe de bitmap van de tekstregel wordt gedigitaliseerd.

Als we bijvoorbeeld de meest linkse kolom nemen, zijn alle pixels zwart. Ze zijn dus allemaal één: 11111 We groeperen samen met vieren en maken twee nibbles: 1 1111 Deze twee worden dan uitgedrukt als hexadecimaal, voor een compacte weergave: 1 F Aangezien de karakters vijf bits hoog zijn, wordt het eerste cijfer ofwel 0 of 1, en het tweede cijfer is 0-1, AF. De onderkant wordt als het meest significante einde beschouwd. De tweede kolom is leeg, dus allemaal nul: 00 hex. De derde kolom heeft de eerste drie enen gevolgd door twee nullen: 1 1100 -> 1 C En zo gaat het door, tot het einde. Dit is allemaal gepropt in een include-bestand, genaamd "instructlables.inc". Dus door de regel die het include-bestand aangeeft in het hoofdprogramma te wijzigen, kunt u de bitmap die wordt weergegeven wijzigen. Als u een andere bimap maakt met bijvoorbeeld uw naam, kunt u deze in een bestand "uwnaam.inc" plaatsen en in het hoofdprogramma oproepen.

Stap 7: Het resulterende scherm

De resulterende weergave
De resulterende weergave

Het werkt, zoals je kunt zien aan de resulterende afbeelding op het scherm.

Met de Spectrum Lab-software kunt u de kleuren en tinten van het scherm selecteren, zodat u door een verstandige selectie zeer mooie tekst kunt weergeven met dit programma.

Stap 8: Volgorde van frequenties

Volgorde van frequenties
Volgorde van frequenties
Volgorde van frequenties
Volgorde van frequenties

Laten we eens nader bekijken hoe dat beeld is gevormd.

De eerste afbeelding hieronder toont de reeks frequenties die door de micro worden uitgezonden, met een korte tijdsresolutie. Het laat duidelijk de trapvormige aard van de tonen zien, aangezien de tonen waaruit de stippen bestaan in seriële volgorde worden uitgezonden. Je kunt ook zien waarom de karakters allemaal naar rechts hellen. De tweede toont hetzelfde display, met een andere filterinstelling. De tijdresolutie van dit filter wordt verlaagd, waardoor de puntjes meer tijd lijken in te nemen. Het resulterende horizontale uitstrijkje heeft tot gevolg dat de tekst beter leesbaar wordt. Een signaal moet een overeenkomstige instelling van het programma hebben voordat het als een herkenbaar beeld wordt weergegeven.

Stap 9: De robot digitaliseren

De robot digitaliseren
De robot digitaliseren

De robot is 24 bits groot en past dus niet in een woord van acht bits. Er werd een andere techniek gebruikt om de robot te digitaliseren, deze keer geleend van het programma dat werd gebruikt voor de "muzikale wenskaart" instructable.

Aangezien het beeld wordt gevormd door een reeks tonen, zou een muziekprogramma de robot moeten kunnen weergeven, op voorwaarde dat de robot eraan wordt toegevoerd als een reeks frequenties die moet worden omgezet in muziek. De afbeelding toont de robot, rijen gelabeld met vertragingswaarden die moeten worden aangesloten op een muziekprogramma. Deze waarden zijn enigszins gewijzigd en zijn beschikbaar als de lijst robot.asm en het resulteerde in een bijna herkenbare robotweergave.

Stap 10: De robot op computerscherm

De robot op computerscherm
De robot op computerscherm

Het is een vogel … Het is een vliegtuig … Het is een vliegende schotel van Mars …

Het is de instructables-robot.

Stap 11: De hardware

de hardware
de hardware
de hardware
de hardware

De afbeeldingen tonen de foto en het schakelschema van de microcontroller die deze afbeeldingen produceert.

Het is een acht-pins microcontroller, de 12F510, vervaardigd door microchip. De afgeschermde kabel aan de linkerkant wordt aangesloten op de geluidskaart van de computer. De connector aan de rechterkant maakt verbinding met de programmer en levert ook stroom. Zonder iets los te koppelen of verbindingen te wijzigen, kan de microcontroller worden gewist en opnieuw geprogrammeerd via ICSP door gewoon de juiste programma's op de computer uit te voeren.

Stap 12: Het principe

Het principe
Het principe

De afbeelding toont het principe achter het weergeven van de matrix van punten waaruit de karakters bestaan. De opeenvolging van stijgende tonen vormt een trapgolfvorm, die, met vaste tussenpozen herhaald, een zaagtand vormt over de frequentieband die het karakter vormt. instructable, https://www.instructables.com/id/Oscilloscope-clock/, over het weergeven van de tijd op een oscilloscoop. Het principe is vergelijkbaar, behalve dat de vorige spanningsniveaus gebruikte en deze frequentie gebruikt. Het verschil is dat spanningsniveaus erg moeilijk zijn om weer te geven met behulp van de geluidskaart, en bijna elk programma dat spanningsniveaus weergeeft, geeft het niet weer in de modus waardoor karakters zichtbaar worden. Elk karakter wordt weergegeven als een reeks kolommen van zeven pixels hoog. Als de onderste pixel moet worden verlicht, wordt de bijbehorende frequentie voor korte tijd ingeschakeld. Bij de "oscilloscoopklok" wordt voor die tijd een bepaald spanningsniveau aangehouden. Als die pixel donker moet zijn, wordt de toon helemaal niet gemaakt of wordt in plaats daarvan een onderdrukkingsniveau verzonden. Aangezien deze frequenties (of spanningsniveaus) achter elkaar worden verzonden, de een na de ander, vormen ze geen verticale lijn. Ze vormen een lijn die naar rechts leunt. Het is mogelijk om die bits in de omgekeerde richting te sturen, en dan zullen de resulterende karakters naar links leunen. Dit ziet er onnatuurlijk uit en daarom heeft de huidige opstelling de voorkeur. Een ander type hellschreiber, dat alle tonen tegelijk uitstuurt, is in staat om perfect verticale karakters te produceren. Omdat dit vereist dat alle tonen tegelijkertijd, zonder vervorming, worden geproduceerd, is het niet mogelijk om dit op een eenvoudige manier met een enkele microcontroller te implementeren.

Aanbevolen: