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

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE

Composants nécessaires

Outils nécessaires

Applications et services en ligne

À propos du projet

Au lieu d'utiliser une application, et si vous pouviez envoyer un signal pour établir un contact visuel avec quelqu'un qui vous intéresse, dans un cadre social, même de loin ? Je ne propose pas une nouvelle façon de draguer, j'explore une nouvelle utilisation du Bluetooth dans le domaine des interactions humaines.

Quand j'ai découvert que les modules Intel Curie peuvent agir comme dispositifs BLE central et périphérique, j'ai immédiatement voulu créer ces lunettes. Grâce à un tutoriel Adafruit, le cadre de référence d'une lunette LCD imprimée en 3D est disponible. J'ai ajouté le contrôle BLE (au lieu d'un interrupteur) de deux paires de lunettes simultanément, l'une étant le maître (central) et l'autre l'esclave (périphérique), et j'ai redessiné les montures 3D.

Ce projet a été développé d'abord sur Arduino 101 puis prototypé sur tinyTILE, tous deux équipés de modules Intel Curie. Même si ces modules ne sont plus disponibles, la méthodologie reste applicable. J'imagine de nombreuses façons d'utiliser les capacités central/périphérique du Bluetooth et j'attends vos discussions sur ce sujet.

Étape 1 : Développement

Deux Arduino 101 et deux LED ont servi à développer le circuit et tester le code. Commencer sur plaque d'essai est essentiel vu la complexité du circuit final.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Test du circuit sur plaque d'essai avec LED

Pour le périphérique, utilisez l'exemple CurieBLE → Peripheral → LED en inversant HIGH/LOW (voir raison à l'étape finale). Le code pour le central est fourni à la fin du projet ; il est presque identique à CurieBLE → Central → LEDcontrol avec quelques lignes ajoutées pour les LCD.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
tinyTILE (miniature) vs Arduino 101

Le tinyTILE est quasi identique à l'Arduino 101 mais en format miniature. Le rectangle central est le module Intel Curie. Ils acceptent le même code. L'Arduino 101 est plus facile pour le prototypage, le tinyTILE plus adapté aux wearables. Je développe sur Arduino 101 puis transfère sur tinyTILE.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Test progressif des composants

Étape 2 : Impression 3D

J'ai redessiné les montures avec SolidWorks en partant du design Adafruit. Vous pouvez télécharger leur design de base et le modifier. Mes designs (forme cœur et univers) sont en pièces jointes. Le design peut être adapté à votre visage ; certaines entreprises proposent désormais un scan 3D du visage pour des lunettes sur mesure.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Montures imprimées en 3D (cœur et univers)

Étape 3 : Assemblage

Suivez les conseils d'Adafruit pour le câblage, la soudure et le montage. J'ai juste ajouté les tinyTILE et le bouton. Attention à couper les fils aux bonnes longueurs.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Assemblage final des lunettes

Étape 4 : C'est fini, amusez-vous !

Au démarrage, une tension est appliquée aux LCD, les rendant opaques (lunettes de soleil). Quand on appuie sur le bouton du maître, la tension est coupée sur le maître, ce qui signale via Bluetooth au esclave de couper sa tension aussi → les deux lunettes deviennent transparentes.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
État initial : lunettes opaques (mode soleil)
Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Après appui sur le bouton : lunettes transparentes
Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Démonstration du fonctionnement

Les deux lunettes fonctionnent à plusieurs mètres de distance (portée BLE). Testé à la maison : le « Cœur » attire l'attention de l' « Univers » à au moins 15 pas.

Imaginez remplacer le bouton par un geste, un hochement de tête ou la synchronisation des battements cardiaques !

Cœur (maître=central) : "J'aime ton esprit sophistiqué <3"
Univers (esclave=périphérique) : "Je te vois. Discutons."

Code : Contrôle bouton pour le central

Quasi identique à l'exemple CurieBLE.

/* Copyright (c) 2016 Intel Corporation. All rights reserved. */
#include 

const int buttonPin = 3;
int oldButtonState = LOW;
const int ledPin = 5;  // Broche pour le LCD (remplace LED)

void setup() {
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
  BLE.begin();
  Serial.println("BLE Central - LED control");
  BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214");
}

void loop() {
  BLEDevice peripheral = BLE.available();
  if (peripheral) {
    Serial.print("Found ");
    Serial.print(peripheral.address());
    Serial.print(" '");
    Serial.print(peripheral.localName());
    Serial.print("' ");
    Serial.print(peripheral.advertisedServiceUuid());
    Serial.println();
    BLE.stopScan();
    controlLed(peripheral);
    BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214");
  }
}

void controlLed(BLEDevice peripheral) {
  Serial.println("Connecting ...");
  if (!peripheral.connect()) { Serial.println("Failed to connect!"); return; }
  Serial.println("Connected");

  Serial.println("Discovering attributes ...");
  if (!peripheral.discoverAttributes()) { Serial.println("Attribute discovery failed!"); peripheral.disconnect(); return; }
  Serial.println("Attributes discovered");

  BLECharacteristic ledCharacteristic = peripheral.characteristic("19b10001-e8f2-537e-4f6c-d104768a1214");
  if (!ledCharacteristic) { Serial.println("Peripheral does not have LED characteristic!"); peripheral.disconnect(); return; }
  else if (!ledCharacteristic.canWrite()) { Serial.println("Peripheral does not have a writable LED characteristic!"); peripheral.disconnect(); return; }

  while (peripheral.connected()) {
    int buttonState = digitalRead(buttonPin);
    if (oldButtonState != buttonState) {
      oldButtonState = buttonState;
      if (buttonState) {
        Serial.println("button pressed");
        ledCharacteristic.writeByte(0x01);
        digitalWrite(ledPin, LOW);  // LCD ON (transparent)
      } else {
        Serial.println("button released");
        ledCharacteristic.writeByte(0x00);
        digitalWrite(ledPin, HIGH); // LCD OFF (opaque)
      }
    }
  }
  Serial.println("Peripheral disconnected");
}

Schéma de câblage

Central : broche 3 pour bouton, broche 5 pour LCD. Périphérique : broche 6 pour LCD.

Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
Schéma de connexion central/périphérique

Processus de fabrication

  1. Lunettes de soleil : design, matériaux et normes de protection oculaire
  2. Piles : de la pile de Volta aux cellules lithium modernes
  3. UnifiedWater v1 – Kit complet de capteur de qualité d'eau Arduino
  4. Solutions d'alimentation optimisées pour projets Arduino
  5. Fabriquez votre casque Iron Man et réacteur Arc avec Arduino - Guide complet
  6. Système de vote portable avec connectivité GSM
  7. Batterie automobile : rôle, types, entretien et spécifications
  8. Comment tester votre alternateur : Méthodes expertes pour résultats fiables
  9. 7 signes clairs que votre alternateur est en panne