Hårddiskklocka

HOWTO: HDD Clock
Eller: hur man gör en HDD klocka
Peter Faltpihl & Gustav Andersson. Linköpings Universitet, Norrköping 2011-10-04
Har du någonsin undrat vad man kan göra med en gammal hårddisk som du inte längre har någon användning
för? Vill du ha en klocka som skriker ED (och låter ganska mycket i sig själv)? Du har då kommit rätt och bör
fortsätta läsa!
1
Översikt
(a) Rensad hårddisk och skiva
(b) Skiva med utskuret snitt
(c) Fungerande HDD klocka
Figur 1: Olika delar av en HDD klocka
En hårddisk består i grund och botten av en skiva som snurrar, ett läshuvud och en massa
annat strunt! Vi använder egentligen endast motorn och skivan för att bygga denna klocka.
Genom att placera lysdioder (oftast RGB eller åtminstone tvåfärgers) under skivan och skära ett
snitt i skivan (se Figure1(b)), kan man få visare att framträda när skivan snurrar (Figure1(c)).
Detta åstadkommer man genom att tända och släcka alla lysdioder under skivan med väldigt
noga vald timing.
Genom att använda lysdioder av era färger, kan man skapa visare av olika färger, som får
representera tim-,minut- samt sekund visare.
Figure 1(a) visar hur en hårddisk och tillhörande skiva ser ut när allt som inte behövs rensats
bort.
Peter Faltpihl, Gustav Andersson
[email protected], [email protected]
2
Hårdvara
2.1
Vad behövs?
Här nedan följer en lista över vilka grundläggande komponenter som behövs för att bygga din
egen HDD klocka:
• Hårddisk
Självklart behövs en hårddisk till denna klocka. Fråga runt bland vänner, köp en begagnad,
slakta din dator, leta i soprum - gamla hårddiskar går att hitta överallt!
Viktigt att tänka på är att (om man har möjlighet att välja) välja en hårddisk där man
får plats att montera lysdioder kring skivan. Mer om detta i 2.2.
• Lysdioder
Utan lysdioder (se Figur 2(a)) har man endast en snurrande skiva, så dessa är kritiska
komponenter! Det nns en del att tänka på gällande val av dessa, detaljer nns i 2.2.
• Logik
Någon form av microcontroller, processor eller valfritt sätt att styra lysdioderna.
• Transistorer
Då lysdioderna drar mer ström än logiken kan leverera, behövs någon form av drivning.
Lättast är att använda transistorer, men det nns en uppsjö av möjligheter, t.ex. färdiga
LED drivare.
• Sensor och kring-elektronik
För att avgöra skivans position så behövs en sensor (se Figur 2(b)), mer om detta under
2.2. Saker som ström-försörjning och övrig elektronik behövs självklart också!
(a) Närbild på lysdioder under körning
(b) Sensor synlig (bortplockad skiva)
Figur 2: Hårdvara
Peter Faltpihl, Gustav Andersson
[email protected], [email protected]
2.2
Val av komponenter
Egentligen är principen i detta projekt ganska simpel; logik för att styra lysdioder och lysdioder
är egentligen de stora ingredienserna.
däremot så måste man tänka på några saker när man väljer komponenter:
• Hårddisk
Första steget är egentligen att bestämma sig för vilken hårddisk man ska använda. Denna
kommer ställa en del krav på övrig utrustning. Målet är att man skall lyckas fästa och
rikta sina LED:s så att de lyser jämt runt hela området under skivan. Man måste även
få plats med någon form av sensor (t.ex. reexsensor) som gör att man kan detektera var
snittet i skivan benner sig, detta är mycket kritiskt för att kunna få en klockfunktion!
• Lysdioder
När man valt ett sätt att fästa och rikta sina lysdioder, så är det dags att välja vilka
lysdioder man skall använda. Den enda, men dock viktiga, egenskapen man bör tänka på
vid valet är att välja riktigt intensiva lysdioder! Man bör sikta på minst 5-10000mcd. tänk
även på att det ger er möjligheter till snygga eekter osv. om man har RGB dioder!
• Transistorer
Här gäller det att hitta en transistor som är tillräckligt snabb och som (helst) går att
driva utan kring-komponenter från logiken. Kraven på snabbheten hos transistorn är inte
så höga, vi räknade på att vi vill kunna åstadkomma ca. 30 kHz via följande uträkning:
360 ∗
5400
= 32400Hz
60
(1)
där 5400 är varvtalet på motorn, vilket delas ned till varv/sekund. Sedan valde vi 360
tändningar per varv för att kunna få bra upplösning.
• Sensor
Om man vill kunna visa att t.ex. klockan är 12, så måste man veta vad som är upp
på klockan. Utan en sensor så går det fortfarande att få visarna att förhålla sig rätt till
varandra, men för att klockan 12 alltid skall vara uppåt (dvs klockan rätt-vänd) så krävs
en sensor. Snittet i skivan utgör en bra grund för att enkelt mäta dess position. Då skivan
reekterar väldigt mycket ljus, medan snittet inte gör det (ljuset passerar genom hålet)
så kan en sensor som mäter ljus vara ett bra alternativ. Vi valde en reexsensor som både
skickar ut och mäter IR ljus, som vi kunde sätta på undersidan så att den inte syns.
Peter Faltpihl, Gustav Andersson
[email protected], [email protected]
3
Mjukvara
Detta är principiellt hur vi valde att lägga upp mjukvaran. Detta är ett enkelt sätt att komma
igång, men lämnar helt klart utrymme för förbättring:
Börja med att skapa funktioner för att rita uppde tre olika visarna. Detta handlar om att
under en kort tid tända alla lysdioder med en viss färg, med RGB-dioder är möjligheterna till
färg val oändliga! Det är enkelt att testa sig fram för att hitta en rimlig tjocklek på visarna.
Starta en timer för att hålla reda på tiden. I vissa fall nns en färdig RTC (real time clock)
annars för man göra sitt bästa för att implementera en. Ett enkelt sätt att skapa en klocka
är att sätta timern så att den ger interrupt varje sekund, och där uppdatera sekund,tim och
minut-variabler.
Kongurera ADC om detta krävs för att avgöra nivåerna på sensorn. använd interrupt
då sensorn känner av att snittet passerat, i den rutinen så startas tre timers som var och en
motsvarar tim-, sekund- och minut visare. Dessa tre timers anropar sedan funktionen som ritar
respektive visare.
Peter Faltpihl, Gustav Andersson
[email protected], [email protected]
4
Schema
Vårt schema som vi använde (se Figur 3) är ett exempel på hur man kan lägga upp elektroniken.
5
Inköpslista
Figur 3: Schema
Här följer en lista på de komponenter som vi valde, med referens till schemat i Figur 3. Detta
är enbart våra val och vi rekommenderar er att kolla på komponenter utifrån era krav! Vi valde
våra komponenter i tidsbrist, så alla komponenter nns säkert i andra mer lämpliga alternativ.
Namn i Figur 3
Beskrivning
Antal
C3
0.1uF till LDO 3.3V
1
C1,C2,C4
10uF till LDO 3.3V samt 5V
3
Q1,Q2,Q3
2N2905A PNP transistor
3
R13-R36
1 ohm till LED
24
R1-R12
56 ohm till LED
12
R37
1 kohm till sensor
1
R38
82 ohm till sensor
1
VR2
LD1117V33 3V regulator
1
VR1
LM1117MP 5V regulator
1
CPU
STM32 discovery progammerare och processor
1
Sensor
SFH9201 reexdetektor
1
P1
DCjack för matning
1
P4,P5
Hylslist för CPU
2
P2,P3,P6
Stiftlist för anslutningar på kortet
3
RGB LED1-RGB LED12 SWLED5MMRGBKC RGB LED gemensam katod
12
Batterieliminator
12v/2a för drivning
1
Peter Faltpihl, Gustav Andersson
[email protected], [email protected]
6
Allmänna tips
Det är lätt att glömma vissa viktiga saker, så här följer en lista med misstag som vi antingen
gjort eller undvikt:
• tänk på matningsspänning till sensor, processor och övrig elektronik. Försök matcha så
att du har samma på hela kortet så slipper du ha era spänningsnivåer!
• Tänk både en och två gånger på hur du öppnar/stänger dina transistorer. Simulera gärna!
• Om du plockar bort mycket saker för att rensa hårddisken, tänk på att styr-elektroniken
förmodligen kommer med stor sannolikhet att vägra driva skivan under en längre tid. Detta gör att lösa genom att försöka ha kvar så mycket av läshuvud osv. som krävs (testa!)
för att den skall fungera normalt, eller bygga/köpa en egen motordrivare.
• Se till att din kombination av sensor/processor klarar av att läsa av tillräckligt snabbt
(t.ex. ADC på processor eller motsvarande)
• Tänk på hur du skall fästa din elektronik på hårddisken. (många gängor på hårddiskar
har udda mått)
• Ett tips för att få mer ljusstyrka är att antingen limma på vitt papper, måla vitt på
området under skivan som skall belysas.
• För enkelhetens skull, ur mjukvarusynpunkt, kan det vara bra att fästa sensorn längst
upp (på urtavlans klockan 12). Detta ger en naturlig utgångspunkt för fördröjningar osv.
• Tänk på de olika fall av visar-kombinationer som kan uppstå då visarna skall ritas upp.
T.ex. vad som händer då två visare är på samma position?
• Säkerhetskopiera all kod!
• Glöm ej föregående punkt. använd gärna dropbox/git/usbminne samt spara på era plat-
ser ändå!
Peter Faltpihl, Gustav Andersson
[email protected], [email protected]