The µSCOPE

Et studie i minimalisme

I dag vil jeg gerne give et eksempel på godt programmeringshåndværk, der er krydret med en dyb teknisk viden og kunnen:

The µSCOPE diagram

Må jeg præsentere The µSCOPE, et digitalt oscilloskop, som man selv kan bygge for Kr. 20 eller deromkring. Det er ikke, fordi det har særligt avanceret funktionalitet, men det er ment som et fantastisk studie i minimalisme. Projektet stammer fra 2008 og er lavet af prof.dr.ir. Ronald Dekker, Philips Research / Technical University of Delft.

The µSCOPE printplade

Det er bygget omkring en 12F675 microcontroller, der har en 20MHz clock frekvens, 1024 word FLASH til at lagre programmet, samt 32 bytes SRAM og 128 bytes EEPROM som arbejdslager. Det leder faktisk tanken hen på Apollo Guidance Computer (AGC) fra 1966.

Det er hverken hurtigt eller meget, i enhver sammenhæng, men det er utroligt, hvad man kan gøre med så lidt, når man kan finde ud af at programmere. Selve PAL udgangssignalet er endda også software genereret.

Principle of how the image is formed by cyclic incrementation of the measurement data

I Ronald Dekkers egne ord:

» So simple as the hardware of the µSCOPE is, so complex and challenging was the writing of the software. «

Og ikke mindst imponerende:

» The RAM memory of 64 bytes was even a few bytes to small. Fortunately timer 1 was not used so that its registers could be used as 2 additional bytes of memory. «

Her er det i funktion:

Jeg synes, det er en eftertanke værd.

LÆS OGSÅ:

Computere regner forkert

Fremtidens supercomputer er analog

2016 bliver algoritmens år

Zombieapokalyptisk Datakommunikation

Gordon Flemmings billede
International Man of Computer Business. It- filosof, strateg og columnist. Hands-on problemknuser uanset teknologi og tager over, når eksperterne har givet op. Elsker lugten af brændt Pertinax om morgenen. Til hverdag er Gordon vigtigper i et mindre multinationalt it-firma.

Kommentarer (5)

Martin Sørensen

Der er noget særligt over at udvikle til en meget begrænset platform og udnytte den næsten 100% i modsætning moderne arkitekturer hvor man har ressourcer i overflod.

Jeg så denne forleden og det er også ret interessant:
http://dpeckett.com/turning-the-arduino-uno-into-an-apple
Specielt hans 'GhettoVGA' løsning som han bruger sammen med den er et kig værd:
http://dpeckett.com/vga-on-the-arduino-with-no-external-parts

Meget godt tænkt at omprogrammere den 16U2 som normalt bliver brugt som USB-UART interface på Uno'en til at generere VGA signaler, og så gøre det uden at tilføje eksterne komponenter (ok, næsten).

Gordon Flemming Blogger

Martin,

Der er noget særligt over at udvikle til en meget begrænset platform og udnytte den næsten 100% i modsætning moderne arkitekturer hvor man har ressourcer i overflod.

Nemli' !

Specielt hans 'GhettoVGA' løsning som han bruger sammen med den er et kig værd

Ja det er en go' implementering, men det er Arduino... ikke fordi jeg har noget imod Arduino, men jeg gider bare ikke hackaday.com mere før jeg får mig et "Aduino filter" til FireFox'en ;-).

Btw, kan du huske pc-højtaleren og trackers, brugte selv FastTracker 2?

Generating sound on the PC speaker is a simple matter of setting bit 0 and 1 of port 61h, which causes the beeper to be switched on or off.

I den forbindelse sagde jeg til min rock-musiker ven "Ser her! en dag i fremtiden vil musik blive distribueret som en fil", og så fnyste han og sagde at jeg ikke vidste hvad jeg talte om.

Martin Sørensen

Der er ikke noget galt med Arduino, udover at det sætter en lang række begrænsninger som man hurtigt rammer ind i hvis man vil lave noget der bare er lidt avanceret. Det har fordelen ved at være meget nemt at gå til så alle og enhver kan få noget til at virke, men kun få kan lave noget alá GhettoVGA da det kræver detaljeret kendskab til Atmel MCUen. Det ligger udover hvad Arduino miljøet er designet til.
Bare ved at erstatte digitalWrite() i Arduino med den direkte opkode til at sætte en pin sparer man godt 200 bytes på hex filens størrelse, så der er temmeligt meget overhead ved at bruge de libs.

Har også brugt FastTracker2 med PC-speaker inden jeg fik mig et lydkort. Det var ikke kønt at lytte til, men dog en del bedre end de bip-lyde man typisk hørte derfra. Næste trin for de økonomisk udfordrede var den hjemmebyggede DAC på parallelporten lavet med en række manuelt trimmede modstande. Det understøttede FT2 også så vidt jeg husker.

Gordon Flemming Blogger

Har også brugt FastTracker2 med PC-speaker inden jeg fik mig et lydkort. Det var ikke kønt at lytte til, men dog en del bedre end de bip-lyde man typisk hørte derfra.

Nu nænte jeg det bare fordi jeg syntes det var en imponerende lyd ift. at det bare var noget hardware der kun kunne on/off og sige beeep-beeep. Jeg husker faktisk også den der DAC, men nåede aldrig at bygge den.

Log ind eller opret en konto for at skrive kommentarer