Smartphone gestuurde oneindige klok - Ajarnpa
Smartphone gestuurde oneindige klok - Ajarnpa
Anonim
Image
Image
Door smartphone bestuurde oneindige klok
Door smartphone bestuurde oneindige klok
Door smartphone bestuurde oneindige klok
Door smartphone bestuurde oneindige klok

Ik heb veel projecten van Infinity Mirrors en Infinity Clocks op Instructables gezien, dus ik besloot de mijne te maken. Het is misschien niet heel anders dan de andere… maar ik heb het zelf gedaan, dus het is !

Afbeelding
Afbeelding

Mocht je het nog niet weten:

Wat is een oneindige klok?

Een oneindigheidsklok gebruikt meerdere reflecties tussen een spiegel en een semi-reflecterende spiegel om de illusie van grote diepte te geven terwijl deze slechts één centimeter diep is!

De tijd wordt aangegeven door LED's die vele malen reflecteren tussen deze interfaces en deze indruk van diepte geven.

Afbeelding
Afbeelding

Meerdere reflecties geven de indruk van diepte

De LED's zijn adresseerbaar en meerkleurig, dus het is gemakkelijk om ze te gebruiken om lichte animaties te maken.

Ik wilde het interactief en veranderend maken, dus ik voegde een smartphone-bediening toe met Bluetooth-communicatie. Er is een echte tweerichtingscommunicatie tussen de klok en de smartphone. De gebruiker kan de HMI (Human Machine Interface) gebruiken om de verschillende parameters, zoals animaties, kleuren, te wijzigen. Maar ze kan ook directe commando's sturen om bijvoorbeeld de tijd te veranderen, en de klok antwoordt om te zeggen dat het commando geaccepteerd wordt of niet.

De HMI werd gedaan met behulp van een programmeerbare Android-app, dus ik hoefde hem alleen maar te ontwerpen en de communicatie aan de Arduino-kant te coderen.

Afbeelding
Afbeelding

Laten we nu beginnen…

Stap 1: Wat heb je nodig?

Wat heb je nodig?
Wat heb je nodig?
Wat heb je nodig?
Wat heb je nodig?
Wat heb je nodig?
Wat heb je nodig?
Wat heb je nodig?
Wat heb je nodig?

Om deze oneindigheidsklok te bouwen, heeft u het volgende nodig (prijzen zijn indicatief):

  • Een Arduino nano (2 USD)
  • Een adresseerbare ledstrip, zoals WS2812 leds, 60 leds per meter (6 USD)
  • Een bluetooth-module, zoals de HC-05 (3 USD)
  • Een breadboard (1,5 USD)
  • Een 5V-voeding, die 4A of meer kan leveren
  • Een paar elektrische draden
  • Een smartphone met Android en de Bluetooth Electronics-app van KeuwlSoft
  • Sommige stukken vezelplaat met gemiddelde dichtheid (MDF, één 3 mm dik en één 10 mm dik)
  • Een transparante plaat van plexiglas of perspex (ongeveer 15 tot 20 USD)
  • Spiegel en een semi-reflecterende spiegel zelfklevende films (van 4 tot 15 USD)
  • Connectoren, weerstanden en één capaciteit van 1000 µF
  • Wat lijm en ducttape.
Afbeelding
Afbeelding

Principeschema van de klokgeometrie

De plexiplaat moet 2 tot 3 mm dik zijn, zodat hij stevig op zijn plaats blijft tijdens gebruik.

Het bovenstaande diagram verklaart de geometrie van de klok. De ledstrip wordt tussen de twee spiegels geplaatst. Natuurlijk heb je 60 van die leds op de strip nodig. Online vind je ledstrips met 60 leds per meter, dus eentje daarvan is goed. Dan is de omtrek van de led-cirkel 1 m, de diameter is 100 / PI = 31,8 cm (ongeveer 12,53 inch).

Bereid uw componenten voor

Snijd een cirkel van deze diameter in de 3 mm MDF-plaat. Om dit te doen, ging ik naar het plaatselijke fablab en vroeg om de lasersnijder te gebruiken. Ze kunnen het zelfs voor je doen, als je het vriendelijk vraagt en je komt met het bord: het duurt maar een paar seconden. Terwijl je daar bent, snijd je dezelfde schijf in je plexiglasplaat.

Van de MDF-plaat heb je nu een schijf en de plaat met het ronde gat. Bewaar ze allebei voor later.

Om de LED's op hun plaats te houden, snijdt u ook in de 1 cm dikke MDF een dunne cilinder van dezelfde diameter. De dikte is niet belangrijk zolang het maar niet te kwetsbaar is. De LED-strip wordt in deze cilinder geplaatst, dus het is belangrijk dat de binnenomtrek gelijk is aan de lengte van de strip. Te lang of te kort, en sommige leds kunnen onregelmatig uit elkaar staan, dus wees hier heel nauwkeurig.

Het snijden van zo'n dikke plaat kan iets langer duren dan het snijden van de dunne. Vraag de fablab-eigenaar of hun lasersnijder krachtig genoeg is om die dikte te snijden. Voor mij moest de laser meer dan tien keer passeren voor dat deel, vergeleken met slechts twee voor de andere plaat.

Je kan ook…

In plaats van MDF is het ook mogelijk om hier transparante of gekleurde plexiglasplaten te gebruiken. Plexiglas bestaat in verschillende kleuren, van zwart over geel tot groen en paars, dus aarzel niet om ze te proberen.

Afbeelding
Afbeelding

Het fablab weet hoe ze ze moeten snijden, en het snijden van plexiglas is erg "schoon" in vergelijking met hout dat kan "branden" (ik bedoel van kleur veranderen door de laserenergie) op het laserpad. Er bestaat ook spiegelplexiglas, wat u kan behoeden voor de aanschaf van de spiegelfolie. Onthoud gewoon dat je tijdens het snijden de laser naar de achterkant van de spiegel moet sturen …

Hieronder staan de geometriebestanden voor de lasercut.

Stap 2: Monteer de klok

Monteer de klok
Monteer de klok
Monteer de klok
Monteer de klok
Monteer de klok
Monteer de klok
Monteer de klok
Monteer de klok

Om de klok te maken, hoef je alleen de onderdelen volgens het schema in elkaar te zetten.

Bereid de zaak voor

Lijm eerst de spiegelfolie op de MDF-schijf. Het zal de onderkant van de klok zijn.

Plak vervolgens de semi-transparante film op de plexiglas schijf. Dit vormt het voorglas van de klok. Deze schijf wordt in de MDF-plaat gestoken, in het cirkelgat: lijm deze eventueel met houtlijm of gebruik siliconenrubber.

Bereid als laatste de LED's voor. WS2812 LED's gebruiken 3 verbindingspads: voeding, aarde en commando. Als er al 3 elektrische draden zijn aangesloten, gebruikt u deze gewoon. Soldeer anders 3 draden aan de aansluitblokken. Onthoud dat LED's gepolariseerde apparaten zijn: dit betekent dat de stroom maar in één richting vloeit. Deze richting is op de strip aangegeven met een pijl. Soldeer vervolgens de draden aan het uiteinde van de strip waar de pijlen vandaan komen (niet het uiteinde waarnaar de pijlen wijzen).

Plak de LED's in de dikke MDF cilinder en monteer de 3 delen, met lijm en/of tape.

Afbeelding
Afbeelding

Dan het elektronische gedeelte

Plaats de Arduino in het breadboard en maak het circuit zoals hierboven weergegeven. Zorg ervoor dat alle massa's (GND) zijn aangesloten (GND van Arduino, HC-05-module, LED-strip en voeding).

  • De RX- en TX-pinnen van de HC-05 Bluetooth-module zijn verbonden met de pinnen D3 en D2 van de Arduino
  • De datalijn van de ledstrip wordt aangesloten op pin D12, je kunt er eventueel een weerstand van 300 Ohm tussen plaatsen.

Als u de pinnen wilt wijzigen, wijzigt u hun definities in de code dienovereenkomstig (regel 7 en 13 van het ino-bestand).

Merk op dat de HC-05-module een spanningsdeler vereist voor zijn RX-pin, zoals hieronder weergegeven. Je hebt dus één weerstand van 1000 Ohm en één weerstand van 2000 Ohm nodig.

Afbeelding
Afbeelding

De voeding wordt zowel voor de Arduino als voor de ledstrip gebruikt. Sluit eerst de 1000µF condensator aan op een schroefklem (domino). U kunt een snelkoppeling gebruiken als u die heeft. Zie hier voor meer details.

Afbeelding
Afbeelding

Deze condensator kan ook gepolariseerd zijn: zorg ervoor dat de + en - pootjes zijn aangesloten op de + en - van de voeding. Zoals te zien is op de afbeelding van de condensator, is het - been gelabeld met een groot minteken.

Afbeelding
Afbeelding

Sluit vervolgens vanaf de connector elektrische draden aan om de LED-strip en het Arduino-bord aan te sluiten. Zoals hierboven vermeld, moet alle GND met elkaar worden verbonden. Sluit vanaf het positieve potentiaal van de voeding de 5V-draad van de strip aan en trek een draad naar de 5V-pin van de Arduino: laat deze voorlopig los, u sluit hem aan het einde aan.

Controleer alles… twee keer

Controleer alle verbindingen twee keer… Gebruik een multimeter als je die hebt om de elektrische continuïteit te controleren.

Als alles klopt, is je klok bijna klaar. Lever het voorlopig niet aan.

Stap 3: Upload de code

Upload de code
Upload de code
Upload de code
Upload de code
Upload de code
Upload de code

Laten we programmeren

Gebruik de Arduino IDE om de code in de Arduino nano te uploaden. Plaats alle bestanden in een map met de naam "Horloge_LED3_nano_BTOK" in uw Arduino-map. Open de IDE, selecteer de juiste parameters (bordtype, COM-poort, enz.) en klik op de uploadknop.

Afbeelding
Afbeelding

Installeer op uw Android-smartphone de applicatie Bluetooth Electronics, u kunt deze gemakkelijk vinden op Google Play. Download het bestand "BluetoothElectronicsCode.txt" van deze Instructable en verander de extensie in zip: je krijgt een zip-archief met de code voor de smartphone-interface om te draaien met Bluetooth Electronics.

Als u klaar bent, sluit u de voeding aan. De LED's zullen oplichten, de HC-05 module zal ook knipperen om de verbinding te zoeken. Start de Android-app en volg de instructies om de Bluetooth-module te koppelen met uw smartphone. Als je klaar bent, start je de HMI: je bent klaar om te spelen!

Let daar op…

De eerste LED van de strip moet bovenop de klok worden geplaatst. Als je het daar niet hebt geplaatst, kun je de waarde van de offset-parameter in de code wijzigen (regel 65 van het ino-bestand). Daar zorgt het voor.

Toen je de LED Strip in de ondiepe cilinder lijmde, waren er 2 opties: ofwel de strip draait met de klok mee of tegen de klok in. Als je het op de verkeerde manier hebt gedaan, draaien de wijzers van de klok in de verkeerde richting! Geen zorgen. Verander gewoon de waarde van de booleaanse variabele sens_horaire in true (regel 77 van het ino-bestand)

Afbeelding
Afbeelding

Stap 4: Geniet

Genieten van!
Genieten van!
Genieten van!
Genieten van!
Genieten van!
Genieten van!

Nog een laatste instelling…

Stel nu de tijd in. Dit kan worden gedaan met behulp van eenvoudige commando's die u typt in de kleine console in de linkerbenedenhoek van de HMI.

  • Hxx: stel de uren in op xx (ex: H4)
  • Myy: stel de minuten in (bijv: M15)
  • Szz: stel de seconden in (bijv: S30)

De commando's kunnen worden gekoppeld door er een ster tussen te plaatsen, bijvoorbeeld: H4*M15*S35

Door uren en/of minuten in te stellen worden de seconden op nul gezet.

U zult dan zien dat het uur wordt gevolgd door een RODE LED, de minuten door een GROENE LED:

Afbeelding
Afbeelding

Het is 9:52:00!

De kleur van de seconden kan worden gewijzigd met de schuifregelaar op de HMI

Afbeelding
Afbeelding

Wanneer u de schuifregelaar verplaatst, toont de kleine cirkel aan de rechterkant de huidige kleur. Wanneer de schuifregelaar stopt, stuurt deze de kleur naar de klok en verandert de LED van de seconden dienovereenkomstig.

De schuifregelaars ANIMATIE en PALET kunnen worden gebruikt om de lichtanimaties op de klok te selecteren en aan te passen. Test ze, en bekijk de video voor enkele voorbeelden. Wanneer u enkele instellingen op de HMI wijzigt, toont de kleine console het antwoord van de Arduino.

Animaties…

  • 0: geeft alleen de tijd weer, u kunt de kleur van de seconden wijzigen met behulp van de schuifregelaar.
  • 1: Een gekleurde achtergrond (u kunt de kleur veranderen) met variabele amplitude.
  • 2: Roterende regenboog
  • 3: Een gekleurde band (die kan worden verwisseld) die één omwenteling per seconde maakt.
  • 4: Een gekleurde streep die weerkaatst op de secondewijzer.
  • 5: Een gekleurde achtergrond (u kunt het palet wijzigen) met willekeurige amplitude.
  • 6: Geeft alleen de tijd weer, de secondewijzer verandert zijn lichtsterkte.
  • 7: Roterende vlaggen (verander het palet om de vlag tussen 4 mogelijke te veranderen)
Afbeelding
Afbeelding

De Franse vlag -- het is 7:11:51

Onlangs is er nog een animatie toegevoegd, die elke 15 seconden verandert voor een willekeurig gekozen animatie.

De MINUTES-knop schakelt om de 5 minuten op de klok witte LED's in en uit.

Afbeelding
Afbeelding

Het is 7:11:25

Houd er rekening mee dat de video en foto's zijn gemaakt met een smartphone en daarom van slechte kwaliteit zijn. De kleuren zijn veel helderder en nauwkeuriger op de klok dan hoe ze eruit zien op de video…

Wat nog meer?

Ik hoop dat je deze oneindigheidsklok leuk zult vinden. Er moet nog veel gebeuren: je kunt de MDF-frontplaat schilderen om hem mooier te maken, nog een ledstrip aan de buitenkant van de cilinder toevoegen om ook wat geanimeerd licht op de muur te krijgen, enz.

Afbeelding
Afbeelding

Stap 5: Nieuwe versie om nauwkeurige tijd te behouden

De klok van de Arduino nano heeft de neiging om in de tijd te drijven, omdat hij geen nauwkeurige klok heeft. Ik heb een andere versie gemaakt met behulp van een Real Time Clock (RTC) om een nauwkeurige tijd bij te houden.

RTC bestaat in verschillende modellen, ik raad het gebruik van een DS3231-module aan, die zeer nauwkeurig is (vergeleken met DS1307). Deze nieuwe versie van het programma maakt gebruik van de MD-DS3231-bibliotheek, die hier beschikbaar is. Maak gewoon een nieuwe map met de naam Horloge_LED3_nano_BT_RTC in uw Arduino-map en download alle bestanden.

Sluit de DS3231 aan als een I2C-apparaat, d.w.z. SDA op A4 en SCL (of SCK) op A5

Eerst moet u de tijd van de RTC instellen. Zie bijvoorbeeld deze Instructables of deze tutorial.

Upload het Horloge_LED3_nano_BT_RTC.ino-bestand op uw Arduino nano en voer het uit. De tijd wordt elke 30 minuten ververst, zodat de klok altijd nauwkeurig blijft.

Natuurlijk moet je de batterij op de RTC-module hebben, omdat deze de RTC in leven houdt, zelfs als deze niet door de Arduino wordt geleverd, en hij kan de juiste tijd bijhouden.

Aanbevolen: