Taula de continguts:

NeoClock: 7 passos (amb imatges)
NeoClock: 7 passos (amb imatges)

Vídeo: NeoClock: 7 passos (amb imatges)

Vídeo: NeoClock: 7 passos (amb imatges)
Vídeo: 7 Steps to Confident English! 2024, Desembre
Anonim
Image
Image

Es tracta de construir un rellotge amb els fantàstics anells de neopíxels d’Adafruit. El més divertit d’aquest rellotge és que en realitat té dos anells de neopíxels, un per indicar les hores i un per als minuts, segons i mil·lisegons. El rellotge manté el temps perfecte mitjançant el xip DS3234 DeadOn Real Time Clock de Sparkfun. Fàcil de construir i divertit de modificar. La meva esperança és que inspiri a altres a construir rellotges o altres arts mitjançant els anells de neopíxels.

Per a aquells de vosaltres que vulgueu obtenir tots els meus fitxers en un format senzill de gestionar, no dubteu a descarregar-los des del meu repositori de github per a aquest projecte a

Pas 1: dissenyar el rellotge

Disseny del rellotge
Disseny del rellotge
Disseny del rellotge
Disseny del rellotge
Disseny del rellotge
Disseny del rellotge
Disseny del rellotge
Disseny del rellotge

Sabia des del principi que volia utilitzar almenys dos anells de neopíxels. Després d'alguns treballs, vaig decidir que el millor disseny seria tenir un anell dins de l'altre, que mantingui la forma original d'un rellotge. L’anell més petit seria les hores i el temps restant es mantindria a l’anell més gran. Algunes consideracions de disseny van incloure el cost dels neopíxels, la necessitat d’energia, la mida de les peces tallades amb làser i quin tipus d’art volia posar-hi.

Amb aquest pas complet, vaig decidir que necessitava comprendre l'electrònica abans de crear els plans per tallar amb làser el cos del rellotge.

Pas 2: Disseny de l'electrònica

Disseny de l'electrònica
Disseny de l'electrònica
Disseny de l'electrònica
Disseny de l'electrònica
Disseny de l'electrònica
Disseny de l'electrònica
Disseny de l'electrònica
Disseny de l'electrònica

Dissenyar l’electrònica es va limitar a conèixer per endavant els elements que volia al rellotge:

  • Anells de neopíxels (60 i 24)
  • Arduino (els cervells)
  • Regulació del rellotge (els arduinos no passen molt de temps)
  • Gestió d'energia

La mida i els requisits de potència dels neopíxels estan ben documentats. Com que funcionen amb corrent continu de 5V, vaig decidir anar amb un Arduino de 5V i fer-me les coses més senzilles. Tenint en compte l'espai, vaig decidir prototipar un Arduino Uno normal, però per l'electrònica final vaig triar un Arduino Mini.

La primera iteració d’aquest projecte va venir directament de la pàgina NeoPixel Basic Connections d’Adafruit. He inclòs el diagrama del lloc web per facilitar les coses. D’això són importants dues coses:

  1. Es necessita un condensador de 1000uF per evitar que la sacsejada inicial de corrent danyi els píxels.
  2. Es necessita una resistència de 470ohm al primer píxel de l'anell de 60 recomptes (aquesta resistència està integrada a l'anell de 24 recomptes)

Adafruit també té un conjunt de pràctiques recomanades de NeoPixel que heu de llegir abans de continuar amb el disseny.

Mantenir el temps al rellotge és un altre problema. El rellotge incorporat a l’arduino no és suficient per mantenir un bon temps durant llargs períodes de temps. Un problema pitjor és que és possible que hagi de restablir-se cada cop l’hora a l’arduino. Els ordinadors resolen aquest problema fent servir una petita bateria al xip del rellotge per mantenir el temps entre apagades. En el passat, faria servir alguna cosa com el ChronoDot d’Adafruit. Però en aquest cas volia una excusa per utilitzar el DS3234 (DeadOn RTC) de SparkFun. També podeu conservar la informació de la data a DeadOn RTC si voleu integrar-la al rellotge.

Finalment, la gestió de l'energia necessitava una mica de consideració. Ja sabia que tot el que calia era 5V, però la quantitat de corrent necessària semblava un misteri. Un regulador de voltatge comú en la majoria dels projectes és el L7805. Això prendrà tensions de fins a 24 V i una intensitat màxima de fins a 1,5 A. Sabia que tenia un most de 12V 1,5A a la paret, així que vaig decidir que aquest seria el regulador de tensió perfecte (i econòmic!) Per al projecte.

La resta de peces vindrien de la meva caixa de peces o de Radio Shack. Inclouen els cables, interruptors i presa de corrent continu.

Pas 3: construir l'electrònica

Construint l'electrònica
Construint l'electrònica
Construint l'electrònica
Construint l'electrònica
Construint l'electrònica
Construint l'electrònica

Podeu trobar una llista completa de l'electrònica que he comprat per construir aquest projecte al repositori de github aquí: Llista de components electrònics. Té enllaços a la pàgina del producte per a cada peça i inclou informació addicional, inclòs el SKU del producte. Vaig fer un prototip ràpidament sobre una taula de treball i vaig passar a la construcció i tall per làser abans de fer cap fotografia. Tot i això, l’he construït perquè sigui fàcil de desmuntar, de manera que us he desglossat les peces de les fotos anteriors.

Mireu atentament les imatges, ja que els cables es van doblegar intencionadament de manera que siguin fàcils de seguir i que el perfil complet de l'electrònica sigui prim. Fer aquest prototipatge inicial abans del disseny del tall amb làser em va permetre comprovar el gruix de les peces per poder esbrinar les dimensions finals del cos del rellotge.

Notareu que he fet un parell de taulers personalitzats. He intentat fer fotos a la part posterior d’aquests taulers perquè pugueu repetir-los. Podeu comprar un assortiment de taules de proves com aquestes per un parell de dòlars i fer-les adequades al vostre projecte.

El cablejat és senzill, però les coses importants que cal recordar de les imatges són aquestes:

  • Els commutadors Mode i Set hauran de tenir resistències abatibles. He utilitzat resistències de 2,21 Ohm que tenia al voltant, però qualsevol resistència petita funcionarà (preferiblement no inferior a 1 kOhm). Això estabilitza els pins d'entrada Arduino connectats de manera que, quan augmenten, es distingeix del soroll.
  • L'ona quadrada (SQW) del DS3234 es va connectar a terra ja que no s'utilitza.
  • La potència del L7805 es posa a l’Arduino Mini amb pin RAW. Poseu sempre el poder que entra a l'Arduino a RAW.
  • El primer píxel de l'anell de 60 neopíxels té una resistència de 470 Ohm per reduir qualsevol dany al primer píxel derivat de pics de dades. Això no hauria de ser un problema, ja que el neopixel de 24 recomptes ja té una resistència incorporada per a això, però val més que no ho sentiu.
  • Els commutadors Mode i Set són interruptors SPST momentanis

Els colors del cable són:

  • Vermell: + 5VDC
  • Negre: terra
  • Verd: dades
  • Groc, blau, blanc: cables especials per a DS3234

Si és la primera vegada que utilitzeu neopíxels, haureu de recordar que es pot considerar que són una cadena llarga. Per tant, pot semblar estrany parlar d’un "primer píxel" en un anell, però de fet hi ha un inici i un final per a cada cadena dels anells. En aquest projecte, els 24 píxels de l'anell petit són els primers i els 60 píxels de l'anell més gran, després. Això significa realment que tinc una cadena de 84 neopíxels.

Per al cablejat de l'Arduino Mini:

  • DS3234 es connecta als pins 10-13
  • Els commutadors Mode i Set es troben als pins 2 i 3
  • Les dades de neopíxels provenen del pin 6.

També recomano posar les 6 capçaleres a la part inferior de l'Arduino Mini perquè pugueu programar-lo mitjançant un cable FTDI.

Una nota important sobre l’actualitat: aquest rellotge requereix molt. Estic segur que ho podria elaborar, però la meva experiència pràctica és que qualsevol cosa igual o inferior a 500 mA acabarà provocant marrons. Això es manifesta com que el rellotge parpelleja de colors bojos i no guarda el temps. El meu most de paret final és de 12V i 1,5A i mai no he tingut cap marró. No obstant això, 1,5A és el límit que prendrà el regulador de tensió (i altres parts). Per tant, no superi aquesta quantitat.

Pas 4: Codificació del rellotge

Codificació del rellotge
Codificació del rellotge

El codi complet del rellotge es troba al NeoClock Code de GitHub. He inclòs el fitxer aquí, però qualsevol canvi es produirà al dipòsit.

Crec que escriure codi pot ser descoratjador si intenteu fer-ho tot alhora. En lloc d’anar per això, intento partir d’un exemple de treball i construir funcions a mesura que les necessiti. Abans d’entrar-hi, vull assenyalar que el meu codi prové de combinar molts exemples dels repositoris següents i del fòrum Arduino CC. Doneu sempre el crèdit allà on sigui degut.

  • https://github.com/adafruit/Adafruit_NeoPixel
  • https://github.com/zeroeth/time_loop
  • https://github.com/sparkfun/DeadOn_RTC

Alguns exemples de codi d’aquests dipòsits es poden trobar al meu directori d’exemples de codis

L'ordre de les operacions que he utilitzat per construir el codi va ser així:

  • Confirmeu que els neopíxels funcionen amb l'exemple de prova de cadena
  • Intenteu executar un rellotge amb el codi de bucle de temps
  • Modifiqueu el rellotge perquè funcioni en dos timbres en lloc d’un sol
  • Afegiu el DS3234 per mantenir el temps mitjançant l'exemple DeadOn RTC
  • Afegiu els commutadors de mode i de configuració
  • Afegiu codi Debounce amb l'ajuda del tutorial Arduion Debounce
  • Afegiu alguns temes de color per als LED del rellotge
  • Afegiu algunes animacions per a les marques de 0, 15, 30 i 45 minuts
  • Afegiu punts de brúixola al rellotge per orientar els punts de 0, 15, 30 i 45 minuts

Si voleu veure com he creat aquest codi, podeu utilitzar GitHub per veure cada confirmació de codi. La història del rellotge es troba a la història de compromisos.

Els esquemes de colors eren divertits d’afegir, però al final només en vaig incloure quatre al menú. Cada tema estableix un color específic a les "mans" d'hores, minuts, segons i mil·lisegons. Realment les opcions són infinites aquí, però he inclòs els temes (es mostren els noms dels mètodes):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

Tanmateix, podeu trobar aquests mètodes addicionals al codi:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Es van afegir animacions perquè em va agradar la idea que els rellotges vells sonessin als quatre punts de quinze minuts del rellotge. Per a aquest rellotge vaig fer les següents animacions:

  • 15 minuts: acoloreix els anells de vermell
  • 30 minuts: acoloreix els anells de verd
  • 45 minuts: acoloreix els anells de blau
  • Part superior de l’hora: fes un arc de Sant Martí a través dels dos anells

La usabilitat va resultar ser un problema amb el rellotge perquè ningú podia orientar el rellotge. Al cap i a la fi, són només dos anells de LEDs. Així que per resoldre el problema he afegit els punts de la brúixola al rellotge. Això va millorar la capacitat d’indicar molt el temps. Si ho hagués sabut abans d’enviar les peces tallades amb làser, podria haver afegit alguna cosa a l’art. Però resulta que no es pot veure l’art tan bé a les fosques, de manera que tenir punts de brúixola ajuda realment. Una de les consideracions amb això és que quan decidiu pintar un píxel, primer heu de capturar el color actual i crear un nou color combinat. Això li dóna una sensació més natural.

Un darrer bitllet tracta dels mil·lisegons. Els mil·lisegons de l’Arduino surten del cristall Arduino intern i no del DS3234. Depèn de vosaltres si voleu mostrar mil·lisegons o no, però ho vaig fer així, el rellotge sempre semblava fer alguna cosa. Pot ser que us enganyi que els mil·lisegons i els segons no sempre s’alineen, però a la pràctica ningú no m’ho ha esmentat mai quan mireu el rellotge i crec que queda bé.

Pas 5: dissenyar els fitxers de tall per làser

Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser
Disseny dels fitxers de tall per làser

Hi ha dues consideracions que he hagut de fer a l’hora de dissenyar els fitxers de tall per làser. El primer era el material amb què volia construir-lo i el segon era com es construiria. Sabia que volia un acabat de fusta amb acrílic que difongués els neopíxels. Per esbrinar el material, primer vaig demanar algunes mostres a Ponoko:

  • 1x MDF de xapa - Noguera
  • 1x MDF de xapa - Cirerer
  • 1x acrílic - gris clar
  • 1x Acrílic - Opal

Les seleccions de fusta em van permetre veure com seria la rasterització i com quedaria la cremada al costat del rellotge. L’acrílic em permetia provar la difusió dels neopíxels i comparar com quedaria contra la fusta. Al final em vaig decidir per la fusta de cirerer amb acrílic Opal.

Les dimensions del rellotge es van determinar principalment per la mida dels anells de neopíxels. El que no sabia era el gruix que havia de tenir per adaptar-se a l’electrònica. Havent construït l’electrònica i sabent que la fusta tenia uns 5,5 mm de gruix, vaig determinar que necessitava uns 15 mm d’espai dins del rellotge. Això significava tres capes de fusta. Però amb la part davantera i la part posterior ocupant la major part de l'espai del meu disseny, necessitava dividir aquests anells en "costelles" que podia enganxar més endavant.

He utilitzat InkScape per dibuixar la plantilla proporcionada per Ponoko. Després de treure el cos del rellotge, em vaig posar a dibuixar l'arbre a mà. No he pogut importar la imatge original que m’ha inspirat, però no ha estat terrible imaginar com fer una cosa similar jo mateix.

El cost dels materials només va ser d’uns 20 dòlars, però el cost de tallar va ser d’uns 100 dòlars més. Hi van contribuir dues coses:

  • Les corbes i els cercles costen més perquè la màquina es mou en dos eixos i aquest disseny té moltes corbes
  • La rasterització requereix moltes passades d’anada i tornada a través de la peça. Deixar això hauria estalviat la majoria de diners, però em va agradar.

Després de finalitzar el disseny, vaig enviar els fitxers EPS a Ponoko i les meves peces es van acabar aproximadament una setmana després.

Tingueu en compte que no he inclòs els interruptors Mode i Set ni el DC Power Jack al disseny. Quan vaig enviar això, encara no havia decidit per quines parts. Per donar-me més flexibilitat, els vaig deixar i vaig decidir perforar-los més tard a mà.

Pas 6: construcció del rellotge

Construint el rellotge
Construint el rellotge
Construint el rellotge
Construint el rellotge
Construint el rellotge
Construint el rellotge
Construint el rellotge
Construint el rellotge

Quan van arribar totes les peces vaig construir el rellotge. El primer pas va ser el cos del rellotge que em va obligar a foradar les costelles i enganxar-les a la part posterior i frontal. Vaig posar dues capes de costelles a la part posterior i una capa al davant i les vaig col·locar amb cola per a fusta. Per a la part frontal, vaig fer servir cola de fusta per unir els anells d’acrílic i els cercles de fusta. Tenia una peça central de recanvi que havia tallat com un buit que em va ser útil durant la construcció. El vaig enganxar a la part posterior del tros de l'arbre i això em va donar un lloc on poder enganxar els neopíxels més tard.

Amb la carrosseria construïda, vaig decidir perforar els interruptors i la presa de corrent. Una mica de geometria (com es veu a la imatge) em va ajudar a alinear-ho tot. Amb un tros de fusta separat a l’exterior mentre perforava (amb molta cura!), Vaig fer els forats i vaig enganxar els interruptors i el gat.

L’electrònica va anar tot seguit. Primer vaig enganxar els neopíxels seguits del condensador. Aquests els vaig connectar a la placa de ruptura de potència neopixel. Després, per la part posterior, vaig posar els cables als interruptors i a la presa de corrent. També he inclòs el regulador de voltatge L7805.

Una nota ràpida sobre l’orientació dels anells. Per a l'anell gran de 60 píxels, heu d'orientar el rellotge de manera que un dels píxels es trobi exactament a la part superior per marcar els zero minuts. Quin píxel no importa i arribaré al perquè en un minut. Per al petit anell de 24 píxels, heu d’orientar el rellotge de manera que la part superior estigui realment entre dos píxels. El motiu d'això és que si voleu marcar 12 hores, acabareu il·luminant dos píxels en lloc d'un. Si teniu el desplaçament i amb la difusió del plàstic, semblarà que realment teniu 12 píxels d'amplada.

Pel que fa a quin píxel el codi designa com a "superior" de cada timbre, heu d'editar una mica el codi. Tinc dos valors al meu codi anomenats "inner_top_led" i "outer_top_led". Als meus rellotges, "inner_top_led" tenia 11 píxels des de l'inici de l'anell petit i el "outer_top_led" tenia 36 píxels des de l'inici de l'anell gran. Si aconseguís orientar els anells de manera diferent, canviaria aquests valors per ser els de la vostra orientació. Una mica d’experimentació i trobareu el valor adequat bastant ràpidament.

En aquest punt vaig provar que tot funcionava com s’esperava.

Però, com amb tots els projectes, em vaig trobar amb un problema en adonar-me que no havia esbrinat com es mantindria unit. Vaig notar que tenia aproximadament 3/8 de polzada d'espai entre els neopíxels i les costelles, així que vaig dirigir-me a Home Depot i vaig aconseguir un tac de 3/8 de polzada i diversos imants de neodimi. Vaig construir petits estands de fusta en tres llocs i els vaig esmolar per poder posar dos imants a cada suport (amb una cola súper). Vaig acabar amb 3 parells de 2 grades cadascun. Després els vaig enganxar al marc i el vaig mantenir tot al seu lloc amb una pinça. Vaig fer-ho mentre la cola de les grades estava mullada perquè tot s’alineara i després s’assequés al lloc correcte. Va funcionar perfectament i m’encanta que el llançament estigui tot amagat.

Per últim, vaig descobrir que calia penjar-lo a la paret i vaig perforar un petit hangar a la part posterior per poder col·locar-lo a la paret.

Pas 7: Pensaments finals

Aquest projecte va ser molt divertit de construir i em va agradar conèixer els neopíxels i el DS3234. Em va agradar especialment construir finalment un projecte que semblava agradable de principi a fi. Hi ha un parell de coses que actualitzaria si tornés a fer-ho, però són menors:

  • Vaig triar dos botons en lloc de tres per simplificar. Però tenir un botó que em permetés baixar i pujar hauria estat bo per configurar el rellotge
  • No es poden distingir el botó de mode i el botó de configuració. Sovint els barrejo. Potser en un futur els posaria de costat oposat.
  • Mai no vaig acabar el front de fusta. Al principi em va agradar l’aspecte cru i més tard em va preocupar que si desordenés l’acabat costaria molt solucionar-ho.
  • Rasteritzar l'arbre era un aspecte correcte, però podria haver dibuixat més detalls sobre l'arbre en el futur.
  • Enfosquir el rellotge també seria una bona característica, ja que és molt brillant a la foscor. Tanmateix, l’enfosquiment està lligat al color i esbrinar que aquella mica trigava massa, així que el vaig deixar caure. Probablement tornaria a invertir en aquesta funció en el futur.

Gràcies per llegir aquest instructiu. Espero que creeu el vostre propi projecte de rellotge o neopíxel i el compartiu amb mi. Feliç edifici!

Recomanat: