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

Arduino101 / tinyTILE BLE:Match-Making Zonnebril

Componenten en benodigdheden

Intel tinyTILE
Of andere BLE-modules
× 2
Arduino 101
Optioneel
× 2
Adafruit Liquid Crystal Light Valve – LCD bestuurbaar verduisteringspaneel
× 2
Li-ion batterij 100mAh
× 2
Adafruit JST-PH 2-pins SMT haakse connector
× 4
Adafruit JST-PH batterijverlengkabel
× 2
Schuifschakelaar
× 2
Weerstand 10k ohm
× 3
SparkFun Drukknopschakelaar 12 mm
× 1
LED (generiek)
Deze werden gebruikt in de ontwikkelingsfase en zijn niet nodig voor de uiteindelijke prototypes.
× 2
Broodplank (algemeen)
Dit werd gebruikt in de ontwikkelingsfase en is niet nodig voor de uiteindelijke prototypes.
× 1
Jumperdraden (algemeen)
Deze werden gebruikt in de ontwikkelingsfase en zijn niet nodig voor de uiteindelijke prototypes.
× 1

Benodigde gereedschappen en machines

3D-printer (algemeen)
Soldeerbout (algemeen)

Apps en online services

Arduino IDE
Arduino Web Editor

Over dit project

In plaats van een app te gebruiken, wat als je een signaal zou kunnen sturen om oogcontact te maken met iemand met wie je wilt praten, in een sociale omgeving, zelfs van veraf? Ik stel geen andere manier voor om een ​​date te beginnen. Ik onderzoek een nieuw gebruik van Bluetooth op het gebied van menselijke interacties.

Toen ik erachter kwam dat Intel Curie-modules kunnen worden toegewezen om als centrale en perifere BLE-apparaten te fungeren, wilde ik meteen deze bril maken. (Lees hier meer over CurieBLE.) Dankzij een tutorial over Adafruit is het referentiekader van een 3D-geprint LCD-glas direct beschikbaar. Wat ik aan de Adafruit-tutorial heb toegevoegd, is de BLE-bediening (in plaats van een schakelaarbediening) van twee glazen tegelijk, waarbij de ene de meester is en de andere de slaaf, en opnieuw ontworpen 3D-geprinte frames.

Dit project is eerst ontwikkeld op Arduino 101 en geprototypeerd op tinyTILE, beide hebben Intel Curie-modules erop. Zelfs als je in de toekomst misschien geen Intel Curie-modules kunt krijgen, hoop ik dat de methode hier nog steeds nuttig kan zijn. Ik kan me veel verschillende manieren voorstellen om Bluetooth centrale en randapparatuur toe te passen en ik kijk uit naar discussies over dit onderwerp.

Stap 1 - Ontwikkeling

Twee Arduino101's en twee LED's werden gebruikt om het circuit te ontwikkelen en de codes te testen. Vanwege de complexiteit van de uiteindelijke circuits, is het altijd een goed idee om te beginnen met een breadboard voordat je alles aan elkaar gaat solderen.

Voor randapparatuur kunt u de code uit de CurieBLE-voorbeelden -> Periferie -> LED gebruiken en de HIGH en LOW verwisselen (zoek de reden op in de laatste stap). De code voor centraal wordt aan het einde van het project verstrekt. Het is bijna hetzelfde als CurieBLE -> Central -> LEDcontrol met een paar regels toegevoegd voor de LCD's.

TinyTILE is bijna precies een miniatuur van Arduino101. De belangrijkste centrale rechthoek is de Intel Curie-module. Ze kunnen worden geflitst met dezelfde codes. De pinnen op Arduino101 zijn altijd gemakkelijker te gebruiken, maar de grootte van tinyTILE is aantrekkelijker voor wearables. Ik vind het leuk om eerst te ontwikkelen op Arduino 101 en alles over te zetten naar tinyTILE. Bekijk hier een ander project met tinyTILE. Als vormfactor geen probleem is voor uw project, kunt u Arduino101 gebruiken (zie voorbeeld hier).

Ik test elk onderdeel stap voor stap, toen ik de Arduino101 veranderde in tinyTILE en de LED's veranderde in LCD's.

Stap 2 - 3D-printen

Ik heb de frames opnieuw ontworpen met SolidWorks bovenop die van Adafruit. U kunt hun basisontwerp hier downloaden en aanpassen met de software die u verkiest voor 3D-printen. Als je precies houdt van de looks die ik heb ontworpen, kun je ze vinden in de bijlagen hieronder. Waarom heb ik een hartvorm en een universum ontworpen? Bekijk de video voor uitleg en gebruik je fantasie.

Het ontwerp kan worden aangepast om beter bij uw gezicht te passen. Ik vond het een beetje moeilijk om mijn kleine neus vast te houden. Er zijn tegenwoordig enkele bedrijven die een 3D-scan van je gezicht maken en een bril voor je aanpassen, wat geweldig is.

Ik denk dat de 3D-printer die Ruiz Brothers van Adafruit gebruikte beter moet zijn dan de mijne. Omdat de mijne zoveel ondersteunend materiaal heeft afgedrukt op plaatsen die er moeilijk uit te krijgen zijn. Als UX-designer heb ik veel te vertellen over het ongemak van mijn 3D-printer. Ik wil graag in water oplosbare ondersteuningsmaterialen of een printer die geen ondersteuningsmaterialen nodig heeft of een op vloeistof gebaseerde/lichtstollende 3D-printer.

Stap 3 - Montage

Het advies in Adafruit's tutorial over bedrading, solderen en monteren is erg goed. Je zou het eens moeten bekijken. Ik hoefde alleen maar de extra tinyTILEs en de knop toe te voegen. Zorg ervoor dat je de draden op de juiste lengte knipt.

Stap 4 - Klaar en veel plezier!

Als de stroom is ingeschakeld, staat er spanning op de LCD's, waardoor ze een donkere zonnebril blijven. Wanneer de knop op de master wordt ingedrukt, wordt de spanning op de master uitgeschakeld, wat tegelijkertijd aangeeft dat de spanning op de slave moet worden uitgeschakeld via Bluetooth, waardoor beide glazen transparant worden.

De twee glazen kunnen vrij ver uit elkaar worden bediend, zolang ze zich binnen het BLE-bereik bevinden. Ik heb thuis getest. Hart kan de aandacht van het universum op minstens 15 stappen afstand krijgen.

Stel je voor dat je geen knop gebruikt maar een gebaar, een knikje of bijpassende hartslagen!

Hart (master=centraal) :"Ik hou van je verfijnde geest <3"Universum (slave=periferie) :"Ik zie je. Laten we praten."  

Code

  • Knopbediening voor centraal
Knopbediening voor centraleArduino
Dit is bijna hetzelfde als in het CurieBLE-voorbeeld.
 /* * Copyright (c) 2016 Intel Corporation. Alle rechten voorbehouden. * Zie onderaan dit bestand voor de licentievoorwaarden. *//* * Schets:LedControl.ino * * Beschrijving:* Dit is een centrale schets die zoekt naar een bepaalde dienst met een * bepaald kenmerk van een randapparaat. Bij succesvolle ontdekking leest het * de status van een knop en schrijft die waarde naar het * Perifere kenmerk. * * Opmerkingen:* * - Verwachte randservice:19b10000-e8f2-537e-4f6c-d104768a1214 * - Verwachte randkarakteristiek:19b10001-e8f2-537e-4f6c-d104768a1214 * - Verwachte randschets:* */#include // variabelen voor buttonconst int buttonPin =3;int oldButtonState =LOW;const int ledPin =5; // pin om te gebruiken voor de LEDvoid setup () { Serial.begin (9600); // configureer de knoppin als invoerpinMode (buttonPin, INPUT); pinMode (ledPin, UITGANG); // initialiseer de BLE-hardware BLE.begin(); Serial.println ("BLE Central - LED-besturing"); // begin met scannen naar randapparatuur BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214");}void loop() { // controleer of een randapparaat is ontdekt BLEDevice randapparaat =BLE.available(); if (randapparatuur) { // ontdekte een randapparaat, print adres, lokale naam en geadverteerde service Serial.print("Gevonden "); Serial.print(perifere.adres()); Serieel.print(" '"); Serial.print(perifere.lokaleNaam()); Serieel.print("' "); Serial.print(perifere.advertisedServiceUuid()); Serieel.println(); // stop met scannen BLE.stopScan(); controlLed (perifere); // randapparatuur losgekoppeld, begin opnieuw met scannen BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214"); }}void controlLed (BLEDevice-randapparatuur) { // verbind met de randapparatuur Serial.println ("Verbinden ..."); if (perifere.connect()) { Serial.println("Verbonden"); } else { Serial.println("Kan geen verbinding maken!"); opbrengst; } // ontdek randkenmerken Serial.println("Kenmerken ontdekken ..."); if (perifere.discoverAttributes()) { Serial.println("Attributen ontdekt"); } else { Serial.println("Kenmerkontdekking mislukt!"); randapparatuur.loskoppelen(); opbrengst; } // haal de LED-karakteristiek op BLECharacteristic ledCharacteristic =perifere.characteristic("19b10001-e8f2-537e-4f6c-d104768a1214"); if (!ledCharacteristic) { Serial.println("Periferie heeft geen LED-karakteristiek!"); randapparatuur.loskoppelen(); opbrengst; } else if (!ledCharacteristic.canWrite()) { Serial.println("Periferie heeft geen beschrijfbare LED-karakteristiek!"); randapparatuur.loskoppelen(); opbrengst; } while (peripheral.connected()) { // terwijl het randapparaat is aangesloten // lees de knoppin int buttonState =digitalRead (buttonPin); if (oldButtonState! =buttonState) {// knop gewijzigd oldButtonState =buttonState; if (buttonState) { Serial.println ("knop ingedrukt"); // knop is ingedrukt, schrijf 0x01 om de LED in te schakelen ledCharacteristic.writeByte (0x01); digitalWrite (ledPin, LAAG); } else { Serial.println("knop vrijgegeven"); // knop wordt losgelaten, schrijf 0x00 om de LED van ledCharacteristic.writeByte (0x00) te draaien; digitalWrite (ledPin, HOOG); } } } Serial.println("Peripheral disconnected");}/* Arduino BLE Central LED Control voorbeeld Copyright (c) 2016 Arduino LLC. Alle rechten voorbehouden. Deze bibliotheek is gratis software; u kunt het herdistribueren en/of wijzigen onder de voorwaarden van de GNU Lesser General Public License zoals gepubliceerd door de Free Software Foundation; ofwel versie 2.1 van de Licentie, of (naar uw keuze) een latere versie. Deze bibliotheek wordt verspreid in de hoop dat het nuttig zal zijn, maar ZONDER ENIGE GARANTIE; zonder zelfs de impliciete garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de GNU Lesser General Public License voor meer details. U zou samen met deze bibliotheek een kopie van de GNU Lesser General Public License moeten hebben ontvangen; zo niet, schrijf dan naar de Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA*/

Aangepaste onderdelen en behuizingen

Schema's

Central gebruikt pin 3 voor knop en 5 voor LCD. Randapparatuur gebruikt pin 6 voor LCD.

Productieproces

  1. Zonnebril
  2. Batterij
  3. UnifiedWater v1
  4. Arduino Power
  5. Avenger Assembled:Iron Man Helmet &Arc Reactor
  6. Mobiele stembus
  7. Intel Arduino 101 BLE Blynk Tank
  8. Whac-A-Mole (Button Edition)
  9. Inzicht in de batterij die in auto's wordt gebruikt
  10. Verschillende manieren om een ​​dynamo te testen
  11. 7 tekenen van slechte of defecte dynamo