tisdag 15 juni 2010

The story of AVR

Finns säkert nån som undrar vad det är för mysko microkontroller kretsar som jag använder, det bästa är nog att låta skaparna av AVR kretsarna att berätta.


måndag 14 juni 2010

LED display projektet

Efter att ha slutat skolan och varit hos Emelie, på rave och vattenkrig så tog jag tag i att få igång seriellports anslutningen på LED displayen. Upptäckte efter tillverkningen av moderkortet till displayen att jag hade vänt på RXD och TXD från både anslutningen till MAX232 chipet och från chipet till MCU:n, dumt fel men lätt åtgärdat med att skära av banorna och korsa dem med lite kabel. Förstår inte heller varför jag satte en klockkristall på 10Mhz å inte en kristall med en frekvens som ger en hög felfri baud rate på den seriella kommunikationen. Den högsta baud raten som fungerar att köra nu är 14400 med då 0,9% baudratefel på grund av 10Mhz kristallen.


seriella kabeln in till displayen.

Det visade sig att det behövdes väldigt lite ny kod i moderMCU:n för att ta hand om seriella anslutningen, speciellt när AVR chipen har inbyggd hårdvaru UART. Allt som behöves var egentligen en switchsats som beror på första tecknet mottaget på UART:en och sen lite kod för att lägga in bilddatan rätt i datafältet som sen visas på displayen.

Började sedan att jobba på lite olika program i datorn för att styra displayen. Började med simpelt program som tar emot en textsträng och skickar den sedan till displayen så att den visas där. Utvecklade sedan lite mera och skickade bilddata från plasmagenerator koden som jag tidigare grejat med, fick riktigt fint bildhastighet på plasman nu när jag beräknade den med hjälp av datorn å inte en microkontroller.

Fick sedan iden att kunna läsa in bilder från datorn å visa dem på displayen, så började läsa om hur det enklaste bildformatet ".bmp" är uppbyggt. Efter ungefär 2 dygns konstant kodskrivande så kan jag använda och skapa okomprimerade bitmapsbilder, finns färdiga bibliotek för allt detta fast det var mycket intressantare att skriva från grunden. Just till displayen fungerar nu alla monokroma bitmapsbilder oavsett storlek, fast 48x32 pixlar är att föredra då de passar exakt på skärmen.

koden för att skapa bilder är egentligen inte användbar till skärmen men kommer nog att bli användbar till ett annat CNC kretskortsborr projekt.


Här är i alla fall en bild genererad från min kod. Det är en 640x480 monokrom bild mellan svart och magenta där de svarta pixlarna är slumpvis placerade.

Några dagars av konstant kodskrivande, lite lödning och pixelart så blev det denna demovisningen på displayen, syns mycket bättre i verkligheten då det är svårt att filma så att det blir bra i motljuset från dioderna. Tackar Emelie som har gjort bilden på Mew och bilderna till animationen på Yoshi som står på tå och snurrar.



onsdag 19 maj 2010

Håltimme med båt

Hade flera timmar rast idag så hoppade på en av Västrafiks båtar och åkte med den runt i kanalen i ungefär en timme. Säkert as tråkigt för dem som åker den varje dag men jag tyckte det var rätt så underhållande och intressant.

söndag 16 maj 2010

Hade ingenting att göra i helgen så till slut blev det att jag ville försöka få till en plasmaeffekt på min LED display. Fick en exempelkod från nåt spel av Joakim, koden är gjord för att köras på en dator så den var tvungen att anpassas för att kunna användas på min display. Skrev först om koden till att bara använda sig av två färger och detta fungerade mycket bra som teckengrafik i datorn. Flyttade över koden till en AT mega 8 som skulle räkna ut varje bild och sedan skicka bilddatan till displayen. Det fungerade men fick ungefär 0,1 fps på displayen, det var alltså alldeles för mycket beräkningar för microkontrollern att göra med en klockfrekvens på 8MHz. Microkontrollern var tvungen att för varje bild utföra 1536 st beräkningar där varje beräkning bestod av bland annat 4st sinus och 4st rotenurfunktioner.

Efter en heldel försök så har jag överklockat microkontrollern till 20MHz skrivit om hela plasmakoden, bytt ut sinus och roten funktonerna. Sinusfunktionen ändrades till att en "lookup table" skapas efter reset och sedan används den till att direkt ta ut sinusvärdet utan att någon beräkning utförs. Rotenfunktionen bytte jag till en snabb asm kod från elm-chan. Skrev ihop en mindre plasmakod och detta blev resultatet just denna gången.


Det fungerar mycket snabbare nu men är inte alls lika fin plasma längre så än behövs det utveckling och förbättring, för det ska gå att åf det mycket bättre.

söndag 9 maj 2010

Pulsjet motorn fungerar !!!!!!!

FICK ÄNTLIGEN IGÅNG PULSJET MOTORN!!! Har haft den i ett år utan att fått igång den. Felet var nog att hålet i bränsleinjektorn har varit för lite för stort, för har länge haft en känsla att det var det. Så idag fick jag för mig att försöka få hålet lite mindre, efter en del klämmande och bankande i skruvstädet var hålet lite mindre. Kopplade upp allt för motorn och testade, efter bara några kraftiga smällar så gick den igång med ett otroligt högt ljud. Den påminner lite om en mycket arg dammsugare i ljudet och att den låter i runt 130dB, även om jag hade hörselskydd så lät det öronbedövande ändå. På nära håll kände man i hela kroppen tryckvågorna från den pulserande förbränningen.


Motorn gående genom att bara gasol trycks in i den. Man ser att den är igång då det är så att det glöder om förbränningskammaren.

lördag 8 maj 2010

En tur med LED displayen

Kände för att ta med mig min LED display till skolan i onsdags och visa läraren och få lite synpunkter på den då vi håller på med ett styrprojekt med microkontrollers, PLC och andra digitalkomponenter. Samtidigt så får jag se hur bra den håller för att hanteras och användas på annan plats.

Jag gjorde faktiskt klart hela styrprojektet på rekordtid enligt läraren så egentligen behöver jag inte gå på dessa lektioner mer men gick dit för vi hade ett prov så därför saknar min bänk uppkopplingar och de andras är fulla av kablar.


Tyvärr så hade jag inget roligare att visa för tillfället än att skicka slumpad data till skärmen från en extern microkontroller. Men annars så kan jag visa vad jag vill på den genom att tända å släcka de "pixlarna" som finns genom att skicka antingen data till hela bilder eller ascii koden för bokstäver via ett simulerat standard interface som det är på köpta LCD moduler. Upplösningen är 32x48 LEDs och det blir totalt 1536st LEDs.


På baksidan sitter hela styrningen som består av 9st AVR mega microkontrollers, ett antal shiftregister, demuxrar, transistorer och motstånd. I stort sett är styrningen väldigt enkel. Master microkontrollern tar emot 8bit parallell data som hamnar i ett fält där sedan delar av fältet skickas ut seriellt till var och en av de 8st displaydrivar modulerna så att dem tillsammans visar hela datafältet.

LED displayen är ännu inte klar för den ska få ett skal i plexiglas och alla funktioner i LCD display simuleringen finns ännu inte. Är ungefär ett år sen nu som jag började fundera ut hur den skulle byggas så det lär ta ett tag till innan den är klar.

Läraren visa i alla fall stort intresse och hade inga synpunkter direkt och skärmen klarade all resa väldigt bra.

onsdag 5 maj 2010

Temperature rise due to slapping


Helt enkelt det skönaste exemplet på uppgift i hela termodynamik-boken, svaret blir att man slår med 41,4 m/s.