SpinLED   vt2008

SpinLED-projektet handlar om att konstruera en sfärisk display baserad på en rad lysdioder som liksom namnet antyder snurrar. Genom att tända och släcka dioderna i exakt rätt ögonblick kan bilder och text visas på sfärens yta.

SpinLED:en kan visa bilder, text och temperatur. All styrning sker från en persondator via Bluetooth. Det som visas kan vara stillastående alternativt roterande motsols eller medsols i olika hastigheter.

Bilder
[SpinLED]  [SpinLED]  [SpinLED]  [SpinLED]  [SpinLED]  [SpinLED]  [SpinLED] 

Mekanisk konstruktion
Konstruktionen består av två delar, en roterande och en ickeroterande del. Den ickeroterande delen är ett stativ för den roterande delen. I stativet sitter en likströmsmotor monterad som driver en vertikalaxel som är lagrad genom stativets övre del. På axeln sitter sedan två kretskort, ett kort för microprocessorn och kringelektronik, detta kort har ett hål i mitten som axeln går igenom. Lysdioderna sitter monterade på ett annat cirkelformat kort som sitter parallellt med axeln och fastlimmat i det andra kortet. Strömförsörjningen fås vid rotation genom två släpkontakter, en ligger mot axeln där jorden leds ner. Matningsspänningen ligger via den andra släpkontakten på ett rör som sitter med isolerade distanser på motoraxeln.

[SpinLED - konstruktion]
Figur 1: mekanisk konstruktion

Elektrisk konstruktion
Den elektriska uppbyggnaden är i grunden ganska enkel. Sju stycken kaskadkopplade skiftregister används för att sköta adresseringen av de 56 lysdioderna. Med den här kopplingen behövs enbart två pinnar för att adressera alla dioder; en pinne för klockpuls och en för data. En output-enable pinne användes också på registerna för att inte skulle utskiftningen av data skulle kunna ses.

Ett 256kbit ferroelektriskt RAM-minne kopplades mellan AVR:en och skiftregisterna. Minnet kommunicerade via SPI-protokoll och behövde därför bara tre utgångar från microprocessorn; klockpuls, data och chipselect. Minnets utdatapinne kopplades direkt mot diodernas skiftregister vilket gjorde att ingen mellanhantering av informationen behövdes.

För att hålla reda på var kretskortet befinner sig användes en hallswitch som sänker en av interuptpinnarna på microprocessorn när den känner ett magnetfält. En magnet satt monterad på stativet och hallswitchen ger då en puls varje varv.

Bluetooth-enheten, som använde 3 V-logiknivåer, behövde någon form av spännings-konvertering. För detta användes en max3001 och en 3 V spänningsregulator. Denna krets klarar spänningskonverteringen för datahastigheter upp till 1Mbit vilket är mer än nog. Bluetooth-enheten komunicerar via UART-protokoll och fyra ben kopplades till AVR:en; skicka data, ta emot data och två ben för handskakning om vi ville implementera detta.

Eftersom spänningsförsörjningen via släpkontakter kan vara brusig och opålitlig så filtrerades signalen genom en stor kondensatorbuffer.

[SpinLED - kretslogik]
Figur 2: logisk konstruktion

Mjukvara och kommunikation
SpinLED:en kommunicerar med omvärlden via Bluetooth. Omvärlden i detta fall är ett program skrivet i java. Programmet låter användaren på ett enkelt sätt välja om displayen ska visa temperatur eller någon text alternativt bild vald av användaren, samt rotationshastighet. Användaren väljer också ett nummer hon vill spara bilden/texten som; numret motsvarar sen en plats i det externa minnet på kretskortet. Programmet kommunicerar sedan via en seriell Bluetooth-länk som använder UART-protokollet. På kretskortet finns en Bluetooth-enhet som tar emot informationen och skickar den vidare till microprocessorn via UART. Ett interrupt tar hand om nya paket som kommer och lägger de i en buffer med hjälp av microprocessorns inbyggda UART-hantering. Från bufferten hämtas sedan paketet och avkodas, om det är rent data sparas det över i det externa minnet.

I microprocessorns main-loop finns hantering för inläsning av temperatur samt hantering för att se om nya paket har anlänt. En rad olika metoder tar sedan hand om att ändra tillstånd (bild/temperatur/text) och rotationshastighet, spara data till det externa minnet, läsa temperatur. Minnet kommunicerar via SPI-protokoll. Att skriva data till minnet sker med en egenskriven SPI-metod. En annan metod tar hand om att läsa av den inbyggda AD-omvandlaren och räknar om värdet till temperatur.

Hallswitchen ger ett hårdvaruinterrupt till microprocessorn varje gång den passerar magneten, det vill säga varje varv. Interuptet räknar med hjälp av en timer ut hur lång tid varvet tog, och hur ofta en kolumn av bilden ska skiftas ut. Här hanteras även eventuell rotationen av bild/text. En annan timer ger ett interrupt varje gång en kolumn ska skiftas ut och ber minnet lägga ut denna data, återigen genom egenskriven SPI-hantering. Interruptet genererar också klockpulser till skift-registrerna.

[SpinLED - paketspecifikation]
Figur 3: paketspecifikation för kommunikation mellan persondator och microprocessor

Mer information
Komponentlista
Källkod, microprocessorn (C)
Källkod, persondatorn (java)
toppen på sidan tillbaka till förstasidan [Teknik och data] tillbaka till förstasidan [Saras hemsida]

Valid HTML 4.01!