Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

HSVClock

Componenten en benodigdheden

Arduino UNO
× 1
Seeed 2.8" TFT Touch Shield (V1.0)
× 1

Over dit project

HSV-klok

Toen ik voor het laatst de VS bezocht, pakte ik een Seeed 2.8" TFT Touch Shield (V1.0) van een RadioShack. Ik gebruikte het om een ​​kleurrijke klok te maken voor mijn vader voor zijn 80ste verjaardag.

HSVClock.zipYouTube

De belangrijke punten zijn

  • De wijzerplaat is gebaseerd op een raster van rechthoekige cellen. De celhoeken worden vervormd door kleine willekeurige hoeveelheden en elke cel wordt gedeeld door een willekeurige diagonaal. Een willekeurige spreiding van kleuren wordt over de cellen aangebracht en elke driehoek is gearceerd om een ​​3D-look te geven. Intern worden de kleuren weergegeven als HSV (Hue, Saturation &Value) maar geconverteerd naar RGB voor verzending naar het LCD-scherm. De tijd wordt weergegeven met een eenvoudig lettertype door bepaalde cellen in de complementaire kleuren te kleuren.
  • De behuizing is lasergesneden bamboe, ontworpen in Inkscape, gesneden door Ponoko.
  • Helaas heeft het schild geen montagegaten dus ik klem het effectief in de behuizing tegen de voorkant. Een Arduino Uno lift mee op het schild via de header-pinnen.
  • Ik had I2C-toegang nodig tot een externe RTC (DS3232). Het schild stelt ongebruikte pinnen niet bloot, dus ik heb een Uno gebruikt die extra SDA/SCL-pinnen heeft. Ik heb hiervoor een low-profile headerconnector gemaakt die onder het schild zit. Ik trok stroom en aarde van een vergelijkbare connector op de ICSP-pinnen, ook onder het schild.
  • Ik heb eenvoudige Zomertijd added toegevoegd ondersteuning van de schets (twee keer per jaar een klok minder om in te stellen!). In plaats van om te gaan met logica zoals "de laatste zondag van september", vertrouwt het op een kleine tabel met specifieke start- en einddatums voor toekomstige jaren (voor Nieuw-Zeeland in mijn geval).
  • Ik heb de Touch-bibliotheekcode vereenvoudigd om het aanraakscherm . te maken gewoon fungeren als een 4x4 raster van de-bounced knoppen. De tijd wordt bijvoorbeeld ingesteld door de linker- en rechterbovenhoek aan te raken.
  • Ik heb nogal heroïsche pogingen gedaan om sneller te worden de weergave:een herschilderen van de cellen duurt ongeveer een kwart seconde. De weergave is gebaseerd op het schrijven van horizontale rijen pixels van een bepaalde kleur. Ik gebruik een aangepast Bresenham-algoritme om de horizontale begrenzingen te berekenen van een reeks paren lijnen die driehoeken vormen in een bepaalde cel. De code die de pixels naar het LCD-scherm stuurt, is gebaseerd op de bibliotheek, maar inline, uitgerold, vereenvoudigd en geoptimaliseerd. Omdat pixelkleurgegevens over meerdere PORTx's worden geschreven, worden alle waarden vooraf berekend wanneer de kleur wordt geselecteerd, dus het instellen van N pixels in een rij op die kleur gaat sneller.
  • Het LCD-scherm wordt gebruikt in liggende oriëntatie . Ik heb lang geworsteld om het scherm in horizontale rijen te laten updaten. De datasheet voor de controller is verwarrend. Er zijn opdrachten om de "cursor" -locatie in te stellen, "DRAM Horizontale/Verticale adresset (R20h, R21h)". Pixelgegevens worden op de cursorlocatie geschreven en de cursor wordt bijgewerkt, indien nodig op de volgende regel geplaatst enz. Er is ook een opdracht om de schermoriëntatie te wijzigen, "Invoermodus (R03h)", die ook spreekt over het aanpassen van de cursorrij en -kolom verhogingen. Ik ontdekte echter dat het veranderen van de oriëntatie naar Liggend en het positioneren van de cursor niet werkte. De oplossing die ik uiteindelijk heb gevonden (die mogelijk in de datasheet is begraven) is om de opdracht "venster" te gebruiken in plaats van de cursoropdracht; "Horizontale en verticale RAM-adrespositie (R50h, R51h, R52h, R53h)". Als u de coördinaten van de linkerbovenhoek van het venster instelt, betekent dit dat de pixelgegevens daar beginnen en horizontaal worden bijgewerkt (in landschap).

Circuit

Het circuit is eenvoudig:

  • het TFT-schild dat op de Uno is gemonteerd.
  • +5VDC, Ground, SDA &SDL gaan van de gelabelde pinnen op de Uno naar de RTC-module. Getoond in de eerste drie foto's hieronder (schild verwijderd). Houd er rekening mee dat om toegangsredenen de voeding/aarde afkomstig is van de ICSP1-connector.
Fritsing
      Foto's

      Productieproces

      1. Kazoo
      2. Harp
      3. Geëxpandeerd polystyreenschuim (EPF)
      4. Raspberry Pi-sensoren
      5. Robot die Raspberry Pi &Bridge Shield gebruikt
      6. Web-gestuurde DMX-controller
      7. Arduino Spybot
      8. Wat is een draadafsnijder?
      9. Wat is een steengroeve?
      10. Wat is een Skeleton Key?
      11. Stikstofproductie in laboratoria