Turinys:

„Fibonacci“laikrodis: 10 žingsnių (su nuotraukomis)
„Fibonacci“laikrodis: 10 žingsnių (su nuotraukomis)

Video: „Fibonacci“laikrodis: 10 žingsnių (su nuotraukomis)

Video: „Fibonacci“laikrodis: 10 žingsnių (su nuotraukomis)
Video: CS50 2015 - Week 0, continued 2024, Liepa
Anonim
Image
Image
Kaip pasakyti laiką?
Kaip pasakyti laiką?

ATNAUJINIMAS: Šis projektas buvo sėkmingai finansuotas „Kickstarterand“ir dabar parduodamas adresu https://store.basbrun.com. Ačiū visiems, kurie palaikė mano kampaniją!

Pristatau jums „Fibonacci“laikrodį, laikrodį, skirtą stilingai besimokantiems. Gražus ir įdomus tuo pačiu metu laikrodis naudoja garsiąją Fibonačio seką, kad laikas būtų rodomas visiškai nauju būdu.

1 žingsnis: kaip pasakyti laiką?

Fibonačio seka yra skaičių seka, sukurta italų matematiko Fibonačio XIII a. Tai seka, prasidedanti 1 ir 1, kur kiekvienas paskesnis skaičius yra ankstesnių dviejų suma. Laikrodžiui naudojau pirmuosius 5 terminus: 1, 1, 2, 3 ir 5.

Laikrodžio ekraną sudaro penki kvadratai, kurių kraštinės ilgis atitinka pirmuosius penkis Fibonačio skaičius: 1, 1, 2, 3 ir 5. Valandos rodomos raudonai, o minutės - žaliai. Kai kvadratas naudojamas valandoms ir minutėms rodyti, jis tampa mėlynas. Baltieji kvadratai ignoruojami. Norėdami pasakyti laiką „Fibonacci“laikrodyje, turite atlikti skaičiavimus. Norėdami perskaityti valandą, tiesiog sudėkite atitinkamas raudonos ir mėlynos spalvos kvadratų reikšmes. Norėdami perskaityti minutes, darykite tą patį su žaliais ir mėlynais kvadratais. Minutės rodomos 5 minučių intervalais (nuo 0 iki 12), todėl norėdami gauti tikrąjį skaičių, turite padauginti rezultatą iš 5.

Dažnai vienu metu rodyti galima keliais būdais. Norėdami papildyti iššūkį, deriniai parenkami atsitiktinai iš visų skirtingų būdų, kaip rodyti skaičių. Pavyzdžiui, yra 16 skirtingų būdų rodyti 6:30 ir niekada nežinai, kurį laikrodis naudos!

2 žingsnis: grandinė

Grandinė
Grandinė
Grandinė
Grandinė

Aš sukūriau „Fibonacci“laikrodį naudodamas „Atmega328P“mikrovaldiklį, naudojant „Arduino“. Galite nusipirkti „Arduino“plokštę ir DS1307 realaus laiko laikrodžio išjungimo plokštę ir sukurti tinkintą skydą savo grandinei, bet aš norėjau sukurti savo plokštę. Tai leidžia man išlaikyti mažą dydį ir mažą kainą.

3 žingsnis: mygtukai

Mygtukai
Mygtukai

Trys mygtukai, pritvirtinti prie „Arduino“kaiščių #3, #4 ir #6, naudojami kartu norint pakeisti laiką. Mygtuką #3 kaištį galima naudoti atskirai, norint pakeisti šviesos diodų spalvų paletę. Prie 5 kaiščio pritvirtintas papildomas mygtukas, kad būtų galima keisti skirtingus laikrodžio režimus. Du režimai yra lempos režimai, o numatytasis yra laikrodis. Visi mygtukai yra prijungti prie „Arduino“kaiščių lygiagrečiai su 10K ištraukiamu rezistoriumi.

4 žingsnis: laikrodis realiuoju laiku

Laikrodis realiuoju laiku
Laikrodis realiuoju laiku

Realaus laiko laikrodžio lustas DS1307 yra prijungtas prie 4 ir 5 „Arduino“kaiščių su dviem 22K ištraukiamaisiais rezistoriais. Laikrodžio kaištis 5 (SDA) yra prijungtas prie „Atmega328P“kaiščio 27 („Arduino A4“), o laikrodžio kaištis 6 (SCL) yra prijungtas prie „Atmega329P“kaiščio 29 („Arduino A5“). Norint išlaikyti laiką atjungus DS1307 lustą, reikia 3 V baterijos, prijungtos prie lusto 3 ir 4 pintų. Galiausiai realaus laiko laikrodį valdo 32KHz kristalas, prijungtas prie 1 ir 2 kaiščių.

5 žingsnis: LED pikselių juostelė

LED pikselių juostelė
LED pikselių juostelė

Aš naudoju LED pikselius, sukurtus ant WS2811 tvarkyklių. Šie mikrovaldikliai leidžia man nustatyti kiekvieno atskiro šviesos diodo spalvą su vienu „Arduino“mikrovaldiklio išėjimu. Šio projekto šviesos diodams valdyti naudojamas „Arduino“kaištis yra kaištis #8 („Atmega328P“kaištis #14).

6 žingsnis: mikrovaldiklis

Mikrovaldiklis
Mikrovaldiklis

Visą informaciją apie tai, kaip prijungti „Atmega328P“prie „Arduino“klono, rasite mano įraše „Sukurkite„ Arduino kloną ““. Šiame projekte pridėjau naują funkciją - FTDI prievadą, kad užprogramuotumėte „Arduino“mikrovaldiklį tiesiai šioje grandinėje. Pirmąjį kaištį prijungiate prie „Arduino“0,1 colio kondensatoriaus atstatymo kaiščio, kad sinchronizuotumėte įkėlėją su lusto įkrovos seka.

FTDI prievado 2 kaištis (RX) jungiasi prie „Atmega328P“(„Arduino 1-TX“) 3 kaiščio, o „FTDI“jungties 3 kaištis (TX) jungiasi prie „Atmega328P“(„Arduino 0-RX“) 2 kaiščio. Galiausiai FTDI kaištis 4 pereina prie 5 V, o 5 ir 6 - prie žemės.

7 žingsnis: gaubtas

Image
Image
Aptvaras
Aptvaras

Vaizdo įraše pateikiami visi „Fibonacci“laikrodžio korpuso statybos etapai. Idėja yra sukurti penkis kvadratinius skyrius, dviejų colių gylio, atitinkančius penkių pirmųjų Fibonačio sekos terminų 1, 1, 2, 3 ir 5 dydį. Šviesos diodai yra paskirstyti visuose kvadratuose ir sujungti atgal į laikrodį prie plokštės.

Korpusas pagamintas iš beržo faneros. Rėmas yra 1/4 colio storio, o galinis skydas - 1/8 colio storio. Skirstytuvai yra 1/16 colio storio ir gali būti pagaminti iš bet kokios nepermatomos medžiagos. Laikrodžio matmenys yra 8 x 5 x 4 coliai. Priekinė laikrodžio dalis yra 1/8 colio storio pusiau permatomo organinio stiklo gabalas. Skirstytuvai pažymėti naudojant „Sharpie“rašiklį.

Medžio apdaila yra lakas vandens pagrindu, padengtas gerai šlifuojant naudojant 220 švitrinio popieriaus.

8 žingsnis: padarykite jį lempa

Image
Image

„Fibonacci“laikrodį taip pat galima paversti jaukia lempa! Paskelbtas kodas jau palaiko du lempų režimus. Norėdami perjungti tris režimus, tiesiog paspauskite režimo mygtuką. Kodas yra atviras, kad galėtumėte nulaužti, nedvejodami įgyvendinkite savo režimus!

9 žingsnis: baigta

Baigta
Baigta

Su tavimi baigta! „Fibonacci“laikrodis yra fantastiška diskusijų pradžia … atsineškite jį į kitą NERD susitikimą arba į Kalėdų šeimos susitikimą!

Ačiū, kad skaitote/žiūrite!

10 žingsnis: Kodas

Šaltinio kodą galite rasti mano „github“paskyroje:

github.com/pchretien/fibo

Rekomenduojamas: