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

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

Onderdelen en benodigdheden

Intel tinyTILE (of andere BLE modules) 2
Arduino 101 (optioneel) 2
Adafruit Liquid Crystal Light Valve – LCD Controleerbaar Blackout Paneel 2
Li-Ion Batterij 100mAh 2
Adafruit JST-PH 2-pin SMT Right Angle Connector 4
Adafruit JST-PH Batterij Verlengkabel 2
Schuifschakelaar 2
Weerstand 10k ohm 3
SparkFun Drukknop 12mm 1
LED (generiek) (alleen voor ontwikkeling) 2
Breadboard (generiek) (alleen voor ontwikkeling) 1
Draadjes (generiek) (alleen voor ontwikkeling) 1

Benodigde tools en machines

  • 3D Printer
  • Solderbout

Apps en online diensten

  • Arduino IDE
  • Arduino Web Editor

Over dit project

In plaats van een app, wat als je een signaal kunt sturen naar iemand met wie je oogcontact wilt maken in een sociale setting, zelfs vanaf afstand? Ik stel geen nieuwe manier van daten voor, ik verkenn een nieuw gebruik van Bluetooth in menselijke interacties.

Toen ik ontdekte dat Intel Curie modules kunnen fungeren als centrale en perifere BLE apparaten, wilde ik direct deze bril maken. Dankzij een Adafruit tutorial was het referentiekader van een 3D geprint LCD bril al beschikbaar. Ik voegde BLE besturing toe (in plaats van schakelaar) voor twee brillen tegelijk, één als master en één als slave, en herontwierp de 3D geprint frames.

Dit project werd eerst ontwikkeld op Arduino 101 en geprototyped op tinyTILE, beide met Intel Curie modules. Zelfs als je in de toekomst geen Curie modules meer kunt krijgen, hoop ik dat de methodologie nog nuttig is. Ik kan me veel manieren voorstellen om Bluetooth centrale en periferie mogelijkheden toe te passen en kijk uit naar discussies hierover.

Stap 1 - Ontwikkeling

Twee Arduino 101's en twee LED's werden gebruikt om de schakeling te ontwikkelen en de code te testen. Vanwege de complexiteit van de finale schakelingen is het slim om te beginnen op een breadboard voordat je alles soldeert.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

Voor de perifeer kun je de code uit de CurieBLE voorbeelden gebruiken → Peripheral → LED en HIGH/LOW omwisselen (zie laatste stap voor reden). De code voor de centrale is aan het einde van het project. Het is bijna hetzelfde als CurieBLE → Central → LEDcontrol met een paar regels extra voor de LCD's.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE
Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

De tinyTILE is bijna een exacte miniatuur van de Arduino 101. Het centrale rechthoekige gedeelte is de Intel Curie module. Ze kunnen met dezelfde code geflasht worden. De pinnen op de Arduino 101 zijn makkelijker te gebruiken, maar de grootte van de tinyTILE is aantrekkelijker voor wearables. Ik ontwikkel eerst op Arduino 101 en zet alles daarna op tinyTILE.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

Ik test elke component stap voor stap, toen ik de Arduino 101 verving door tinyTILE en de LED's door LCD's.

Stap 2 - 3D Printen

Ik herontwierp de frames met SolidWorks bovenop het ontwerp van Adafruit. Je kunt hun basisonwerp hier downloaden en aanpassen met je favoriete 3D software. Als je precies mijn ontwerp wilt, vind je het in de bijlagen. Waarom een hartvorm en een universum? Bekijk de video voor uitleg en gebruik je verbeelding.

Het ontwerp kan aangepast worden voor betere pasvorm. Ik vond het lastig op mijn kleine neus te houden. Er zijn bedrijven die 3D scans van je gezicht maken en brillen customizen, wat geweldig is.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

Stap 3 - Montage

De adviezen in Adafruit's tutorial over bedrading, solderen en monteren zijn erg goed. Je moet het bekijken. Ik moest alleen de extra tinyTILE's en de knop toevoegen. Wees voorzichtig met het knippen van de draden op de juiste lengte.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

Stap 4 - Klaar en Plezier!

Wanneer de stroom aanstaat, ligt er spanning op de LCD's, waardoor ze donkere zonnebrillen zijn. Wanneer de knop op de master ingedrukt wordt, wordt de spanning op de master uitgezet, wat tegelijkertijd via Bluetooth de spanning op de slave uitschakelt, waardoor beide brillen transparant worden.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE
Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE
Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

De twee brillen kunnen op enige afstand worden bediend, zolang ze binnen BLE bereik zijn. Ik testte thuis: Hart kan Universum minstens 15 stappen ver bereiken.

Stel je voor geen knop maar een gebaar, een knik of matchende hartslagen!

Hart (master=centrale): "Ik hou van je gesofistikeerde geest <3"
Universum (slave=perifeer): "Ik zie je. Laten we praten."

Code

Knopbesturing voor Centrale (Arduino)

/*
 * Copyright (c) 2016 Intel Corporation. All rights reserved.
 * Zie de onderkant van dit bestand voor licentievoorwaarden.
 */
/*
 * Sketch: LedControl.ino
 * Beschrijving:
 * Dit is een Central sketch die zoekt naar een specifieke Service met een
 * bepaalde Characteristic van een Peripheral. Bij succesvolle ontdekking
 * leest het de toestand van een knop en schrijft die waarde naar de
 * Peripheral Characteristic.
 */
#include <CurieBLE.h>

const int buttonPin = 3;
int oldButtonState = LOW;
const int ledPin = 5;  // pin voor de LED/LCD

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("Gevonden ");
    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("Verbinden...");
  if (peripheral.connect()) {
    Serial.println("Verbonden");
  } else {
    Serial.println("Verbinden mislukt!");
    return;
  }
  
  Serial.println("Attributen ontdekken...");
  if (peripheral.discoverAttributes()) {
    Serial.println("Attributen ontdekt");
  } else {
    Serial.println("Attribuut ontdekking mislukt!");
    peripheral.disconnect();
    return;
  }
  
  BLECharacteristic ledCharacteristic = peripheral.characteristic("19b10001-e8f2-537e-4f6c-d104768a1214");
  if (!ledCharacteristic) {
    Serial.println("Peripheral heeft geen LED characteristic!");
    peripheral.disconnect();
    return;
  } else if (!ledCharacteristic.canWrite()) {
    Serial.println("Peripheral heeft geen schrijfbare LED characteristic!");
    peripheral.disconnect();
    return;
  }
  
  while (peripheral.connected()) {
    int buttonState = digitalRead(buttonPin);
    if (oldButtonState != buttonState) {
      oldButtonState = buttonState;
      if (buttonState) {
        Serial.println("knop ingedrukt");
        ledCharacteristic.writeByte(0x01);
        digitalWrite(ledPin, LOW);
      } else {
        Serial.println("knop losgelaten");
        ledCharacteristic.writeByte(0x00);
        digitalWrite(ledPin, HIGH);
      }
    }
  }
  Serial.println("Peripheral verbroken");
}

Schema's

Centrale gebruikt pin 3 voor knop en 5 voor LCD. Perifeer gebruikt pin 6 voor LCD.

Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE

Productieproces

  1. Zonnebrillen: Ontwerp, Materialen en Oogbeschermingsstandaarden
  2. Batterijen: Van Volta's Stap tot Moderne Lithiumcellen
  3. UnifiedWater v1 – Complete Arduino Waterkwaliteit Sensor Kit
  4. Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
  5. Bouw je eigen Iron Man-helm & Arc Reactor met Arduino – Stap-voor-stap handleiding
  6. Draagbaar stemstysteem met GSM-connectiviteit
  7. Arduino 101 BLE + Blynk: DIY Bluetooth-gestuurde Tank Robot
  8. DIY Whac-A-Mole Arcade Spel (Knoppen Editie) – Arduino Project
  9. De Essentiële Rol van Automotive Accu's: Uw Voertuig Voeden
  10. Hoe Uw Dynamo Te Testen: Expert Methodes voor Betrouwbare Resultaten
  11. 7 duidelijke signalen dat uw dynamo defect is