Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

HSVClock

Composants et fournitures

Arduino UNO
× 1
Écran tactile TFT Seeed 2.8" (V1.0)
× 1

À propos de ce projet

Horloge HSV

Lors de ma dernière visite aux États-Unis, j'ai acheté un écran tactile TFT Seeed 2,8" (V1.0) d'un RadioShack. Je l'ai utilisé pour fabriquer une horloge colorée pour mon père pour son 80e anniversaire.

HSVClock.zipYouTube

Les points importants sont

  • Le cadran de l'horloge est basé sur une grille de cellules rectangulaires. Les coins des cellules sont déformés par de petites quantités aléatoires et chaque cellule est divisée par une diagonale aléatoire. Une répartition aléatoire de couleurs est appliquée sur les cellules et chaque triangle est ombré pour donner un aspect 3D. En interne, les couleurs sont représentées en HSV (Hue, Saturation &Value) mais converties en RVB pour l'envoi à l'écran LCD. L'heure est affichée avec une police simple en coloriant certaines cellules dans les couleurs complémentaires.
  • L'enceinte est du bambou découpé au laser, conçu dans Inkscape, coupé par Ponoko.
  • Malheureusement, le bouclier n'a pas de trous de montage donc je le serre efficacement dans l'enceinte contre la face avant. Un Arduino Uno se superpose au blindage via les broches d'en-tête.
  • J'avais besoin d'un accès I2C à un RTC externe (DS3232). Le blindage n'expose pas les broches inutilisées, j'ai donc utilisé un Uno qui a des broches SDA/SCL supplémentaires. J'ai fait un connecteur d'en-tête à profil bas pour ceux-ci qui se trouve sous le blindage. J'ai tiré l'alimentation et la terre d'un connecteur similaire sur les broches ICSP, également sous le blindage.
  • J'ai ajouté une heure d'été simple support au croquis (une horloge de moins à régler deux fois par an !). Plutôt que de traiter une logique comme "le dernier dimanche de septembre", il s'appuie sur un petit tableau de dates de début et de fin spécifiques pour les années à venir (pour la Nouvelle-Zélande dans mon cas).
  • J'ai simplifié le code de la bibliothèque tactile pour faire l'écran tactile agissent simplement comme une grille 4x4 de boutons anti-rebond. Par exemple, l'heure est réglée en touchant les coins inférieur gauche et supérieur droit.
  • J'ai fait des efforts assez héroïques pour accélérer le rendu :une repeinture des cellules prend environ un quart de seconde. Le rendu est basé sur l'écriture de rangées horizontales de pixels d'une couleur particulière. J'utilise un algorithme de Bresenham modifié pour calculer les étendues horizontales d'une série de paires de lignes qui constituent des triangles dans une cellule donnée. Le code qui envoie les pixels à l'écran LCD est basé sur la librairie mais aligné, déroulé, simplifié et optimisé. Étant donné que les données de couleur des pixels sont écrites sur plusieurs PORTx, toutes les valeurs sont pré-calculées lorsque la couleur est sélectionnée, de sorte que la définition de N pixels d'affilée sur cette couleur est plus rapide.
  • L'écran LCD est utilisé en orientation paysage . J'ai longtemps lutté pour que l'écran se mette à jour en lignes horizontales. La fiche technique du contrôleur prête à confusion. Il existe des commandes pour définir l'emplacement du "curseur", "DRAM Horizontal/Vertical Address Set (R20h, R21h)". Les données de pixels sont écrites à l'emplacement du curseur et le curseur est mis à jour, passant à la ligne suivante si nécessaire, etc. Il existe également une commande pour modifier l'orientation de l'écran, "Mode d'entrée (R03h)", qui parle également d'ajuster la ligne et la colonne du curseur incréments. Cependant, j'ai trouvé que changer l'orientation en Paysage puis positionner le curseur ne fonctionnait pas. La solution que j'ai finalement trouvée (qui peut être enterrée dans la fiche technique) est d'utiliser la commande « fenêtre » au lieu de la commande du curseur ; "Position d'adresse RAM horizontale et verticale (R50h, R51h, R52h, R53h)". La définition des coordonnées du coin supérieur gauche de la fenêtre signifie que les données de pixels commencent là et se mettent à jour horizontalement (en paysage).

Circuit

Le circuit est simplement

  • le blindage TFT monté sur l'Uno.
  • +5VDC, Ground, SDA &SDL vont des broches étiquetées sur le Uno au module RTC. Montré dans les trois premières photos ci-dessous (bouclier retiré). Notez que pour des raisons d'accès, l'alimentation/la masse provient du connecteur ICSP1.
Frittage
      Photos

      Processus de fabrication

      1. Kazoo
      2. Harpe
      3. Mousse de polystyrène expansé (EPF)
      4. Capteurs Raspberry Pi
      5. Robot utilisant Raspberry Pi &Bridge Shield
      6. Qu'est-ce qu'un coupe-fil ?
      7. Qu'est-ce qu'une carrière ?
      8. Qu'est-ce qu'une clé squelette ?
      9. Génération d'azote dans les laboratoires