Oscilloskop Display
Hur man använder ett oscilloskop som en visningsenhet, med hjälp av endast en våg-ingång kanal?
den enda svårigheten med detta projekt är att du inte kan skicka en våg tillbaka i tiden, inte heller kan du skicka 2 olika spänningar i en kanal på samma gång, och inte heller kan vi hoppa över några pixlar, dvs en våg kan inte vara icke-kontinuerliga (vad spänningen är på kanal, oscilloskopet kommer att visa det på skärmen ändå) , så det fanns ett behov av vissa trick att använda denna typ av oscilloskop.
Jag har använt ett enkelt trick där bilden är uppdelad i horisontella bilder [rader] och dessa bilder konverteras det till vågor, visas en av bilden för en bråkdel av sekund på oscilloskopet, sedan Visa en annan bild och så vidare, om vi gör det i en loop, på en mycket hög hastighet, sedan mänskliga ögat brukar erkänna det som olika vågor och det kommer att se ut som en enda bild.
så först och enklaste steget är att dela upp bilden i bilder, eller du kan säga rader av ettor och nollor...
för detta behöver vi bara en bitmapp på bilden, till exempel bokstaven "A" kan föreställas som följande i bitmappen.
0] 0 0 0 1 0 0 0
1] 0 1 0 0 0 1 0
2] 1 0 0 0 0 0 1
3] 1 1 1 1 1 1 1
4] 1 0 0 0 0 0 1
5] 1 0 0 0 0 0 1
sedan har vi konvertera varje rad i en våg, som visas nedan...
Syftet med konvertera varje rad i en särskild våg är att om vi visar ovanstående 6 vågorna i ett oscilloskop efter varandra i en mycket hög hastighet, så verkar det som...
Nu har du en bra idé om teoretiska begreppet projektet, och nästa steg är att genomföra detta koncept, många maskinvara kan användas för detta, eller det kan enkelt göras genom en DAC, men problemet med en DAC är att konfigurera DAC för varje våg är kostsamma, och för att få bra pixlar måste vi spara klockcykler och skicka datum så fort vi kan , så jag konstruerade en enkel krets speciellt för detta ändamål, det är en mycket enkel krets, använder en Demultiplexer, en Hex inverter (eftersom den Demux ger inverterad utgång), och några potentiometrar justera positionen för varje bild individuellt. Principskiss av kretsen är som följande-
denna krets är mycket lätt att använda, men innan du vet hur man använder det, du bör veta hur man "se vågorna" motsvarande rader, varje rad genererar en digital våg, skillnaden är att för varje rad, spänningsnivån av "en" är olika, dvs den första raden digital våg har högsta spänningsnivån, du måste bara väljer den spänning de med hjälp av Välj raderna i Demux , [vi har använt 6 olika spänningsnivåer för 6 bilder] och du kan justera spänningsnivån i varje rad med hjälp av potentiometrar [spänning zero är samma för alla raderna].
Nu allt du behöver göra är för varje rad, Välj jämnt från Välj raderna, dvs A, B, pin C stift i Demux IC och skicka data för raden, från G1.
Du kan enkelt designa din krets för denna Principskiss, jag konstruerade den krets som innehåller mikrokontroller med ovanstående komponenter, och kretsen är mycket praktiskt att använda, men du kan göra samma jobb av en dators parallellport, som kommer att vara ett bättre alternativ som du kommer att få hög hastighet klocka med det. Kom ihåg, ju högre är klockan pulsen, desto högre blir pixel kvaliteten på bilden på skärmen oscilloskop.
Nu kommer den kodande delen, denna hårdvara är mycket lätt att programmera, det kapslade loopar nedan gör alla större delen, sedan algoritmen för denna kod är ganska lätt, jag har beslutat att förklara det i själva koden, som efter...
Jag = > pekar på radnumret
j = > antal gånger en rad är som ska visas
k = > pekar på viss cell av rad
oändlig loop, värdet av "jag" går i en slinga från 0 till 6, oändlig gånger
för (jag = 0; i=(i+1)%6)
{
Detta ställer in stiften i hamnen P1, för val av raden [spänningsnivån]
P1OUT = i.
denna slinga är för att visa varje rad 10 gånger, så varför nästa rad visas som en separat rad, annars alla rader blir länkad [en efter den andra], istället för att få överlappade [ett på en annan]
för (j = 0; j < 10; j ++)
{
denna loop visas pixlarna från raden, kontroller om biten är 0 eller 1 och skickar data därför märker att rutnätet bitmap, som jag använde i mitt projekt är av 9 bitar lång, men den slinga går 20 gånger [20 pixlar visas], detta är att undvika över läppning mellan bilderna, eftersom bitmappen visas flera gånger på skärmen , eftersom vi visas varje rad 10 gånger [10 bilder sida vid sida]
för (k = 0; k < 20; k ++)
{
IF(k<9) //the rutnät gräns
{
om pixel är 1, ange sedan lite
IF(arr[i][k]) P1OUT| = BIT3;
annars återställa det
annat P1OUT & = ~ BIT3;
}
clock_delay(); dröjsmål/längden på en bildpunkt på skärmen
P1OUT & = ~ BIT3; efter att ha visat en bildpunkt, stänga av alla fall
}
}
}
för bättre förståelse, den nedanstående diagram visar det arbete som varje slinga att Visa bitmapp -
även om samma arbete kan göras på många sätt, men jag bestämde mig att visa detta för att få en bättre förståelse av pixlar. För detta projekt jag använde MSP430 mikrokontroller, detta är på grund av många skäl, men den bästa anledningen är att den har en intern klocka, och dess frekvens kan justeras av användaren, i mitt projekt jag använt frekvensen ~ 15 MHz. Mer processorns klockfrekvens är, desto snabbare kommer att data som skickas, fler pixlar får vi på skärmen.
Bredvid detta, en annan teknik för att skicka data snabbare är med hjälp av synkron data överföringsläge av mikrokontroller, som kommer att skicka de bitarna seriellt varje i en klocka cykel, detta kommer att spara mycket tid som går till spillo i jämföra varje bit i bitmappsbilden och vidta motsvarande åtgärder.
Och i slutet, det viktigaste steget är att justera oscilloskopet efter våra behov, och att synkronisera den väl med vår krets, så du måste justera vertikalt position, horisontell position, höjd [spänningsnivån], bredd [tidsintervall] vågorna därför för att få en bra bild.
Med mitt projekt kunde jag Visa "HI" på skärmen som visas i figuren nedan-
Det finns en lutande linje efter varje pixel, detta inträffar eftersom i praktisk klocka pulsen inte bara vara på 2 nivåer, det visar några retardation, som kan tas bort [nästan] genom en bättre kretsar och välja bättre tidsfördröjningar i öglorna.
Detta projekt kan vara användbara på många sätt, till exempel den krets som används, är mycket billigt och kan byggas i mindre än $2, vilket är mycket bra för studenter, ekonomiskt.
Bredvid detta, det kan vara mycket användbar teknik för de projekt som använder trådlös videoöverföring, som video signalen kan skickas bara över en kanal och kodningen är mycket enkelt, så det finns inget behov av en separat video converter, kan du direkt skicka utdata från kretsen till en trådlös modul, till exempel en RF-modul , och ta emot signalen och visa data direkt i oscilloskopet, vanligtvis studenter använda den kombinerade trådlösa video modul, som är mycket kostsamt.
och eftersom den signal vi skickar en digital signal (men med olika nivåer av 1: s) fel kan identifieras och effektivare, bort från signalen på mottagarsidan.
Tillsammans med alla de ovan nämnda användningsområden hjälper detta projekt till att förstå hur vi kan visa bilder på skärmar, och hur vi kan utforma vår egen display modul...