Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino101 / tinyTILE BLE:Match-Making-Sonnenbrille

Komponenten und Verbrauchsmaterialien

Intel tinyTILE
Oder andere BLE-Module
× 2
Arduino 101
Optional
× 2
Adafruit Flüssigkristall-Lichtventil – LCD-steuerbares Blackout-Panel
× 2
Li-Ionen-Akku 100mAh
× 2
Adafruit JST-PH 2-poliger rechtwinkliger SMT-Steckverbinder
× 4
Adafruit JST-PH Batterieverlängerungskabel
× 2
Schiebeschalter
× 2
Widerstand 10k Ohm
× 3
SparkFun Drucktastenschalter 12 mm
× 1
LED (generisch)
Diese wurden in der Entwicklungsphase verwendet und werden für die endgültigen Prototypen nicht benötigt.
× 2
Breadboard (generisch)
Dies wurde in der Entwicklungsphase verwendet und wird für die endgültigen Prototypen nicht benötigt.
× 1
Jumper (generisch)
Diese wurden in der Entwicklungsphase verwendet und werden für die endgültigen Prototypen nicht benötigt.
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)
Lötkolben (generisch)

Apps und Onlinedienste

Arduino-IDE
Arduino Web Editor

Über dieses Projekt

Was wäre, wenn Sie anstelle einer App ein Signal senden könnten, um mit jemandem, mit dem Sie sprechen möchten, in einem sozialen Umfeld, sogar aus der Ferne, Blickkontakt aufzunehmen? Ich schlage keinen anderen Weg vor, ein Date zu beginnen. Ich erforsche eine neue Verwendung von Bluetooth im Bereich menschlicher Interaktionen.

Als ich herausfand, dass Intel Curie-Module als zentrale und periphere BLE-Geräte fungieren können, wollte ich sofort diese Brille herstellen. (Hier erfahren Sie mehr über CurieBLE.) Dank eines Tutorials zu Adafruit ist der Referenzrahmen eines 3D-gedruckten LCD-Glases leicht verfügbar. Was ich dem Adafruit-Tutorial hinzugefügt habe, sind die BLE-Steuerung (anstelle einer Schaltersteuerung) von zwei Brillen gleichzeitig, wobei einer der Master und der andere der Slave ist, und neu gestaltete 3D-gedruckte Rahmen.

Dieses Projekt wurde zuerst auf Arduino 101 entwickelt und auf tinyTILE als Prototyp entwickelt, beide haben Intel Curie-Module. Auch wenn Sie in Zukunft möglicherweise keine Intel Curie-Module mehr erhalten können, hoffe ich, dass die hier beschriebene Methode dennoch nützlich ist. Ich kann mir viele verschiedene Möglichkeiten vorstellen, die zentralen und peripheren Funktionen von Bluetooth einzusetzen, und freue mich auf Diskussionen zu diesem Thema.

Schritt 1 - Entwicklung

Zwei Arduino101s und zwei LEDs wurden verwendet, um die Schaltung zu entwickeln und die Codes zu testen. Aufgrund der Komplexität der Endschaltungen ist es immer eine gute Idee, mit einem Steckbrett zu beginnen, bevor Sie alles zusammenlöten.

Für Peripherie können Sie den Code aus den CurieBLE-Beispielen -> Peripherie -> LED verwenden und HIGH und LOW austauschen (Grund im letzten Schritt finden). Der Code für die Zentrale wird am Ende des Projekts bereitgestellt. Es ist fast dasselbe wie CurieBLE -> Central -> LEDcontrol mit ein paar Zeilen für die LCDs.

TinyTILE ist fast genau eine Miniatur von Arduino101. Das zentrale Rechteck ist das Intel Curie-Modul. Sie können mit den gleichen Codes geflasht werden. Die Pins auf Arduino101 sind immer einfacher zu verwenden, aber die Größe von tinyTILE ist für Wearables attraktiver. Ich entwickle gerne zuerst auf Arduino 101 und übertrage alles auf tinyTILE. Sehen Sie sich hier ein weiteres Projekt mit tinyTILE an. Wenn der Formfaktor für Ihr Projekt kein Problem darstellt, können Sie Arduino101 verwenden (siehe Beispiel hier).

Ich teste jede Komponente Schritt für Schritt, als ich den Arduino101 auf tinyTILE und die LEDs auf LCDs umgestellt habe.

Schritt 2 - 3D-Druck

Ich habe die Frames mit SolidWorks neu gestaltet, zusätzlich zu den Frames, die von Adafruit bereitgestellt werden. Sie können ihr grundlegendes Design hier herunterladen und mit der Software ändern, die Sie für den 3D-Druck bevorzugen. Wenn Ihnen genau die Looks gefallen, die ich entworfen habe, finden Sie sie in den Anhängen unten. Warum habe ich eine Herzform und ein Universum entworfen? Sehen Sie sich das Video zur Erklärung an und lassen Sie Ihrer Fantasie freien Lauf.

Das Design könnte geändert werden, um besser zu Ihrem Gesicht zu passen. Ich fand es etwas schwierig, meine kleine Nase zu halten. Heutzutage gibt es einige Unternehmen, die einen 3D-Scan Ihres Gesichts durchführen und eine Brille für Sie anpassen, was großartig ist.

Ich denke, der verwendete 3D-Drucker Ruiz Brothers von Adafruit muss besser sein als meiner. Weil meins so viel Unterstützungsmaterial an Stellen gedruckt hat, die sehr schwer herauszukommen sind. Als UX-Designer habe ich viel über die Unannehmlichkeiten meines 3D-Druckers zu sagen. Ich hätte gerne wasserlösliche Trägermaterialien oder einen Drucker, der keine Trägermaterialien benötigt oder einen flüssigkeitsbasierten/lichtverfestigenden 3D-Drucker.

Schritt 3 - Montage

Die Ratschläge im Tutorial von Adafruit zu Verdrahtung, Löten und Montage sind sehr gut. Sie sollten es überprüfen. Ich musste nur die zusätzlichen tinyTILEs und den Knopf hinzufügen. Achten Sie darauf, die Drähte auf die richtige Länge zu schneiden.

Schritt 4 – Fertig und viel Spaß!

Wenn das Gerät eingeschaltet ist, wird Spannung an die LCDs angelegt, sodass sie dunkle Sonnenbrillen halten. Durch Drücken der Taste am Master wird die Spannung am Master abgeschaltet, was gleichzeitig über Bluetooth signalisiert, dass die Spannung am Slave abgeschaltet wird, wodurch beide Brillen transparent werden.

Die beiden Brillen lassen sich ziemlich weit auseinander steuern, solange sie sich im BLE-Bereich befinden. Ich habe zu Hause getestet. Das Herz kann die Aufmerksamkeit des Universums mindestens 15 Schritte entfernt auf sich ziehen.

Stellen Sie sich vor, Sie verwenden keine Schaltfläche, sondern eine Geste, ein Nicken oder passende Herzschläge!

Herz (Master=Zentral) :"Ich mag deinen hoch entwickelten Verstand <3"Universum (Sklave=Peripherie) :"Ich sehe dich. Lass uns reden."  

Code

  • Knopfsteuerung für zentrale
Knopfsteuerung für zentralesArduino
Dies ist fast das gleiche wie im CurieBLE-Beispiel.
 /* * Copyright (c) 2016 Intel Corporation. Alle Rechte vorbehalten. * Die Lizenzbedingungen finden Sie am Ende dieser Datei. *//* * Sketch:LedControl.ino * * Beschreibung:* Dies ist ein zentraler Sketch, der nach einem bestimmten Service mit einer * bestimmten Charakteristik von einem Peripheriegerät sucht. Bei erfolgreicher Erkennung * liest es den Status einer Schaltfläche und schreibt diesen Wert in das * Peripheriemerkmal. * * Anmerkungen:* * - Erwarteter Peripheriedienst:19b10000-e8f2-537e-4f6c-d104768a1214 * - Erwartete Peripheriemerkmale:19b10001-e8f2-537e-4f6c-d104768a1214 * - Erwartete Peripherieskizze:* */#include // Variablen für buttonconst int buttonPin =3;int oldButtonState =LOW;const int ledPin =5; // Pin für das LEDvoid-Setup () { Serial.begin (9600); // den Button-Pin als Eingang konfigurieren pinMode (buttonPin, INPUT); pinMode (ledPin, AUSGANG); // Initialisieren der BLE-Hardware BLE.begin(); Serial.println ("BLE Central - LED-Steuerung"); // Suche nach Peripheriegeräten starten BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214");}void loop() { // prüfen, ob ein Peripheriegerät erkannt wurde BLEDevice Peripherie =BLE.available(); if (peripherie) {// entdeckte ein Peripheriegerät, Druckadresse, lokaler Name und beworbener Dienst Serial.print ( "Gefunden"); Serial.print (peripheral.address ()); Serial.print(" '"); Serial.print (peripheral.localName ()); Serial.print("'"); Serial.print (peripheral.advertisedServiceUuid()); Serial.println(); // Stoppen Sie das Scannen BLE.stopScan(); ControlLed (Peripheriegerät); // Peripheriegerät getrennt, Scan erneut starten BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214"); }}void controlLed (BLEDevice-Peripheriegerät) {// Verbindung zum Peripheriegerät Serial.println ("Connecting ..."); if (peripheral.connect()) {Serial.println("Verbunden"); } else { Serial.println ( "Verbindung konnte nicht hergestellt werden!"); Rückkehr; } // Peripherieattribute entdecken Serial.println ( "Attribute entdecken ..."); if (peripheral.discoverAttributes()) { Serial.println ( "Attribute entdeckt"); } else { Serial.println("Attributerkennung fehlgeschlagen!"); periphere.disconnect(); Rückkehr; } // Abrufen der LED-Eigenschaft BLECharacteristic ledCharacteristic =periphere.characteristic("19b10001-e8f2-537e-4f6c-d104768a1214"); if (!ledCharacteristic) {Serial.println("Peripherie hat keine LED-Eigenschaft!"); periphere.disconnect(); Rückkehr; } else if (!ledCharacteristic.canWrite()) {Serial.println("Peripherie hat keine beschreibbare LED-Eigenschaft!"); periphere.disconnect(); Rückkehr; aufrechtzuerhalten. Während (peripheral.connected()) {// während das Peripheriegerät verbunden ist // den Button-Pin lesen Int buttonState =digitalRead (buttonPin); if (oldButtonState !=buttonState) { // Schaltfläche geändert oldButtonState =buttonState; if (buttonState) { Serial.println ( "Taste gedrückt"); // Taste wird gedrückt, schreiben Sie 0x01, um die LED einzuschalten ledCharacteristic.writeByte (0x01); digitalWrite (ledPin, LOW); aufrechtzuerhalten. Sonst { Serial.println ( "Schaltfläche freigegeben"); // Taste wird losgelassen, schreibe 0x00, um die LED von ledCharacteristic.writeByte (0x00) einzuschalten; digitalWrite (ledPin, HIGH); } } } Serial.println("Peripherie getrennt");}/* Arduino BLE Central LED Control Beispiel Copyright (c) 2016 Arduino LLC. Alle Rechte vorbehalten. Diese Bibliothek ist freie Software; Sie können es unter den Bedingungen der GNU Lesser General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren; entweder Version 2.1 der Lizenz oder (nach Ihrer Wahl) eine spätere Version. Diese Bibliothek wird in der Hoffnung verteilt, dass sie nützlich ist, jedoch OHNE JEGLICHE GEWÄHRLEISTUNG; auch ohne die stillschweigende Garantie der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Informationen finden Sie in der GNU Lesser General Public License. Zusammen mit dieser Bibliothek sollten Sie eine Kopie der GNU Lesser General Public License erhalten haben; falls nicht, schreiben Sie an die Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA*/

Kundenspezifische Teile und Gehäuse

Schaltpläne

Die Zentrale verwendet Pin 3 für die Taste und 5 für das LCD. Peripherie verwendet Pin 6 für LCD.

Herstellungsprozess

  1. Sonnenbrille
  2. Batterie
  3. UnifiedWater v1
  4. Arduino-Power
  5. Avenger montiert:Iron Man Helm &Arc Reactor
  6. Mobile Abstimmungsbox
  7. Intel Arduino 101 BLE Blynk Tank
  8. Batterie in Autos verwendet verstehen
  9. Verschiedene Möglichkeiten zum Testen einer Lichtmaschine
  10. 7 Anzeichen für eine schlechte oder defekte Lichtmaschine