Gå til innhold

Teorien bak DUO Mega


Anbefalte innlegg

Hei. Jeg satt og surfet litt og kom over en hjemmelaga 8-bit datamaskin kaldt DUO Mega. Han som har bygd den brute 16 stk Arduino Uno microcontrollere for å bygge en PC på breadboard. Jeg er litt nyskjerrig på hva teorien bak dette er. Hvordan får man I/O til noe sånt? Hvordan programmerer man en slik en? Hvilket kode språk? C++? Den ser jo ganske simpel ut å bygge, breadboard med 16 microcontrollere og ledninger som kobler alt sammen?

Lenke til kommentar
Videoannonse
Annonse

Har du leste websiden hans?

IO: "Cores will all share an 8 bit data bus. This data bus sends commands and information between cores.", og "A worker core may not use the data bus unless permitted by the manager core. Each worker core is addressed by an 8 bit identifier.", mer "The machine will have a single pool of shared memory in a 32 KB SRAM chip. The manager core is responsible for access to shared memory. The manager core is also expected to interface with peripheral devices."

programmering: "Under the DUO Mega operating system, all programs will be written in Megaliter bytecode. This bytecode interpreted by the worker cores. Megaliter bytecode will be compiled from Megaliter source code."

 

Det er også bytecode spesifikasjon og beskrivelse av språket han benytter.

Lenke til kommentar

En mikrokontroller er egentlig en tett integrert datamaskin i kompakt format. Det han har gjort er å koble til en displaykontroller som gir VGA-utgang, så dumper han bare informasjonen fra mikrokontrolleren til denne displaykontrolleren.

 

Han i denne videoen har gått så langt at han har skrevet sitt eget språk som han kompilerer og kjører på mikrokontrollerene, men alt du trenger er å skrive koden din i AVR C som er en smålig modifisert utgave av C og kjøre det på mikrokontrolleren.

 

En mikrokontroller i dette formatet er ikke laget for ytelse, så det er nok mest bare for "the heck of it". Men den har null problemer med å gjøre simple oppgaver på samme nivå som datamaskinene på 70- og 80-tallet gjorde i sin tid.

 

Å lage selve oppsettet er ikke særlig vanskelig. Problemet er å programmere disse mikrokontrollerne og "operativsystemet" som kjører i bakgrunnen av programmene. Jeg ser han også bruker multithreading, noe som er en stor utfordring i seg selv.

Lenke til kommentar

Om jeg skulle laget en veldig veldig enkel 8-bit datamaskin, hvor vanskelig vil det være å programmere den om jeg kan progremmere en arduino fra før? Jeg vil tenke meg at det blir som en arduino med VGA og USB eller PS/2 for tastatur. Når jeg sier "veldig enkel" jeg en single core eller dual core (kanskje, om det ikke gjør det dobbelt så vanskelig).

Lenke til kommentar

Jeg er litt skeptisk iom at det jeg viste ikke har innebygget kontroller, så jeg tror du må ha 25MHz for å kontrollere VGA direkte.

 

http://www.microvga.com/

http://little-scale.blogspot.no/2008/02/impossible-buildings-ableton-live.html

 

Hva kan jeg bruke for å få VGA output på en Arduino Uno da?

 

EDIT: eller hvilke komponenter må jeg ha om jeg skal lage en custom AVR for å få VGA output?

Endret av Heika98
Lenke til kommentar

Du kobler den til µVGA-kontrolleren jeg linket til.

 

Problemet med Arduino er at den ikke er rask nok til å synkronisere VGA. Du kan selvsagt kjøpe LCD-skjermer med SPI/I2C-grensesnitt som kan mer eller mindre kobles rett til Arduinoen din. Men med en god kontroller så kan du også abstrahere arbeidet ditt betraktelig. Dette betyr at du kan fortelle at kontrolleren skal printe ut "Hello World" direkte, istedet for å definere hver bokstav i et bitmap og så printe ut piksel for piksel i skjerm-matrisen.

 

Om du vil gjøre det simpelt så kjøper du en VGA-kontroller, så du kan koble den til en PC-skjerm. Det andre alternativet du har er å kjøpe en LCD-skjerm med en god kontroller og bruke denne. Men de koster vel så mye og du får trolig ikke mer enn 3-5" for den prisen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...