Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Crie Óculos Inteligentes de Matchmaking com Arduino 101 e tinyTILE BLE

Componentes e Materiais

Componente Quantidade Observações
Intel tinyTILE 2 Ou outros módulos BLE
Arduino 101 2 Opcional
Painel LCD Controlável Adafruit (Liquid Crystal Light Valve) 2
Bateria Li-Ion 100mAh 2
Conector JST-PH 2 pinos Adafruit 4
Cabo Extensor Bateria JST-PH Adafruit 2
Chave Deslizante 2
Resistor 10k ohm 3
Chave Pushbutton 12mm SparkFun 1
LED (genérico) 2 Usados na fase de desenvolvimento
Protoboard (genérica) 1 Fase de desenvolvimento
Fios jumpers (genéricos) 1 Fase de desenvolvimento

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Em vez de usar um app, e se você pudesse enviar um sinal para fazer contato visual com alguém em quem tem interesse, em um ambiente social, mesmo à distância? Não proponho uma nova forma de encontro. Exploro novo uso do Bluetooth em interações humanas.

Ao descobrir que módulos Intel Curie podem atuar como dispositivos BLE central e periférico, quis fazer esses óculos. Graças a tutorial da Adafruit, a estrutura de referência de óculos LCD impressos em 3D está disponível. Adicionei controle BLE (em vez de interruptor) de dois óculos simultaneamente, um como mestre e outro como escravo, e redesenhei as armações 3D.

Desenvolvido primeiro no Arduino 101 e prototipado no tinyTILE, ambos com módulos Intel Curie. Mesmo que não consiga módulos Curie no futuro, a metodologia ainda é útil. Imagino muitas formas de aplicar capacidades central/periférico Bluetooth.

Passo 1 - Desenvolvimento

Dois Arduino 101 e dois LEDs usados para desenvolver circuito e testar códigos. Devido à complexidade, é bom começar na protoboard antes de soldar tudo.

Para periférico, use o código dos exemplos CurieBLE → Peripheral → LED e inverta HIGH/LOW. O código para central está no final do projeto, similar ao CurieBLE → Central → LEDcontrol com linhas adicionadas para LCDs.

O tinyTILE é miniatura do Arduino 101. Podem ser flashados com mesmos códigos. Pinos do Arduino 101 são mais fáceis, mas tamanho do tinyTILE é melhor para wearables. Gosto de desenvolver no Arduino 101 e transferir para tinyTILE.

Passo 2 - Impressão 3D

Redesenhei as armações no SolidWorks baseando no design da Adafruit. Pode baixar o design básico deles e modificar. Se gostar exatamente do meu visual (coração e universo), estão nos anexos. Assista ao vídeo para explicação.

Passo 3 - Montagem

Conselhos da Adafruit sobre fiação, soldagem e montagem são ótimos. Só adicionei os tinyTILEs extras e o botão. Cuidado para cortar fios nos comprimentos certos.

Passo 4 - Pronto e Divirta-se!

Quando ligado, há tensão nos LCDs, mantendo-os como óculos escuros. Ao pressionar o botão no mestre, a tensão desliga no mestre e, via Bluetooth, sinaliza o escravo para desligar também, tornando ambos transparentes.

Os dois óculos funcionam bem afastados, dentro do alcance BLE. Testado em casa: o Coração consegue atenção do Universo a pelo menos 15 passos.

Imagine não usar botão, mas um gesto, um aceno de cabeça ou batimentos cardíacos combinando!

Coração (mestre=central): "I like your sophisticated mind <3"
Universo (escravo=periférico): "I see you. Let's talk."

Código

Controle de Botão para Central

/* 
 * Copyright (c) 2016 Intel Corporation. All rights reserved.
 * Sketch: LedControl.ino
 * Descrição: Central que procura Service/Characteristic específico de Periférico.
 * Ao descobrir, lê estado de botão e escreve valor no Characteristic do Periférico.
 */
#include 

const int buttonPin = 3;
int oldButtonState = LOW;
const int ledPin = 5;

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("Connected");
  else { Serial.println("Failed to connect!"); return; }
  
  Serial.println("Discovering attributes ...");
  if (peripheral.discoverAttributes()) Serial.println("Attributes discovered");
  else { Serial.println("Attribute discovery failed!"); peripheral.disconnect(); return; }
  
  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);
      } else {
        Serial.println("button released");
        ledCharacteristic.writeByte(0x00);
        digitalWrite(ledPin, HIGH);
      }
    }
  }
  Serial.println("Peripheral disconnected");
}

Esquemático

Central usa pino 3 para botão e 5 para LCD. Periférico usa pino 6 para LCD.

Processo de manufatura

  1. Óculos de Sol: Design, Materiais e Normas de Proteção Ocular
  2. Baterias: Da Pilha de Volta às Modernas Células de Lítio
  3. UnifiedWater v1 – Kit Completo de Sensor de Qualidade da Água com Arduino
  4. Soluções de Energia Otimizadas para Projetos Arduino
  5. Construa seu Próprio Capacete e Reator Arc do Homem de Ferro com Arduino – Guia Passo a Passo
  6. Sistema de Votação Portátil com Conectividade GSM
  7. Arduino 101 BLE + Blynk: Robô Tanque Controlado por Bluetooth DIY
  8. O Papel Essencial das Baterias Automotivas: Alimentando o seu Veículo
  9. Como Testar Seu Alternador: Métodos Especializados para Resultados Confiáveis
  10. 7 Sinais Claros de Que Seu Alternador Está Falhando