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

Arduino101 / tinyTILE BLE:Óculos de sol que combinam

Componentes e suprimentos

Intel tinyTILE
Ou outros módulos BLE
× 2
Arduino 101
Opcional
× 2
Válvula de luz de cristal líquido Adafruit - Painel de blackout controlável de LCD
× 2
Bateria Li-Ion 100mAh
× 2
Conector de ângulo reto SMT de 2 pinos Adafruit JST-PH
× 4
Cabo de extensão de bateria Adafruit JST-PH
× 2
Slide Switch
× 2
Resistor 10k ohm
× 3
SparkFun Botão de pressão 12 mm
× 1
LED (genérico)
Eles foram usados ​​no estágio de desenvolvimento e não serão necessários para os protótipos finais.
× 2
Breadboard (genérico)
Isso foi usado no estágio de desenvolvimento e não será necessário para os protótipos finais.
× 1
Fios de jumpers (genérico)
Eles foram usados ​​no estágio de desenvolvimento e não serão necessários para os protótipos finais.
× 1

Ferramentas e máquinas necessárias

Impressora 3D (genérica)
Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE
Arduino Web Editor

Sobre este projeto


Em vez de usar um aplicativo, e se você pudesse enviar um sinal para fazer um contato visual com alguém com quem está interessado em conversar, em um ambiente social, mesmo de longe? Não estou propondo uma maneira diferente de começar um encontro. Estou explorando um novo uso do Bluetooth no campo das interações humanas.

Quando descobri que os módulos Intel Curie podem ser atribuídos para atuar como dispositivos BLE centrais e periféricos, imediatamente quis fazer esses óculos. (Saiba mais sobre CurieBLE aqui.) Graças a um tutorial sobre Adafruit, a estrutura de referência de um vidro LCD impresso em 3D está prontamente disponível. O que adicionei ao tutorial do Adafruit é o controle BLE (em vez de um controle de interruptor) de duas peças de óculos ao mesmo tempo, sendo uma a master e a outra a escrava, e quadros impressos em 3D redesenhados.

Este projeto foi desenvolvido primeiro no Arduino 101 e prototipado no tinyTILE, ambos com módulos Intel Curie. Mesmo que você não consiga obter os módulos Intel Curie no futuro, espero que a metodologia aqui ainda seja útil. Posso imaginar muitas maneiras diferentes de aplicar os recursos centrais e periféricos do Bluetooth e estou ansioso para discutir este tópico.





Etapa 1 - Desenvolvimento


Dois Arduino101s e dois LEDs foram usados ​​para desenvolver o circuito e testar os códigos. Devido à complexidade dos circuitos finais, é sempre uma boa ideia começar com uma placa de ensaio antes de soldar tudo junto.

Para periférico, você pode usar o código dos exemplos CurieBLE -> Periférico -> LED e trocar o ALTO e o BAIXO (encontre o motivo na última etapa). O código da central é fornecido no final do projeto. É quase o mesmo que CurieBLE -> Central -> LEDcontrol com algumas linhas adicionadas para os LCDs.





TinyTILE é quase exatamente uma miniatura do Arduino101. O principal retângulo central é o módulo Intel Curie. Eles podem ser exibidos com os mesmos códigos. Os pinos no Arduino101 são sempre mais fáceis de usar, mas o tamanho do tinyTILE é mais atraente para vestíveis. Gosto de desenvolver primeiro no Arduino 101 e transferir tudo para o tinyTILE. Confira outro projeto usando tinyTILE aqui. Se o formato não for um problema para o seu projeto, sinta-se à vontade para usar o Arduino101 (veja o exemplo aqui).

Eu testo cada componente passo a passo, quando mudei o Arduino101 para tinyTILE e mudei os LEDs para LCDs.





Etapa 2 - Impressão 3D


Redesenhei os quadros usando o SolidWorks em cima daquele que é fornecido pela Adafruit. Você pode baixar o design básico aqui e modificá-lo com o software de sua preferência para impressão 3D. Se você gostou exatamente dos looks que fiz, você pode encontrá-los nos anexos abaixo. Por que projetei uma forma de coração e um universo? Assista ao vídeo para uma explicação e use sua imaginação.

O design pode ser modificado para se ajustar melhor ao seu rosto. Achei um pouco difícil segurar meu nariz pequeno. Hoje em dia existem algumas empresas que fazem um escaneamento 3D do seu rosto e personalizam os óculos para você, o que é ótimo.

Acho que a impressora 3D que Ruiz Brothers de Adafruit usou deve ser melhor que a minha. Porque o meu imprimiu muito material de apoio dentro de lugares que são muito difíceis de sair. Como um designer UX, tenho muito a dizer sobre a inconveniência de minha impressora 3D. Eu gostaria de ter materiais de suporte solúveis em água ou uma impressora que não precisasse de materiais de suporte ou uma impressora 3D de base líquida / solidificadora de luz.





Etapa 3 - Montagem


O conselho no tutorial de Adafruit sobre fiação, soldagem e montagem é muito bom. Você deveria dar uma olhada. Eu só tive que adicionar os tinyTILEs extras e o botão. Tenha o cuidado de cortar os fios no comprimento certo.





Etapa 4 - Feito e Divirta-se!


Quando a energia está ligada, há voltagem aplicada aos LCDs, mantendo-os escuros como óculos de sol. Quando o botão do master é pressionado, a tensão do master é desligada, o que ao mesmo tempo sinaliza que a tensão do slave deve ser desligada via Bluetooth, tornando ambos os óculos transparentes.



Os dois óculos podem ser controlados bem afastados, desde que estejam dentro do alcance BLE. Eu testei em casa. O coração pode chamar a atenção do Universo a pelo menos 15 passos de distância.

Imagine não usar um botão, mas um gesto, um aceno de cabeça ou batimentos cardíacos correspondentes!
  Coração (mestre =central):"Gosto da sua mente sofisticada <3" Universo (escravo =periférico):"Vejo você. Vamos conversar."  

Código

  • Botão de controle para central
Controle de botão para o Arduino central
É quase igual ao do exemplo CurieBLE.
 / * * Copyright (c) 2016 Intel Corporation. Todos os direitos reservados. * Consulte a parte inferior deste arquivo para os termos de licença. * // * * Sketch:LedControl.ino * * Descrição:* Este é um esboço Central que procura um Serviço particular com uma * certa Característica de um Periférico. Após a descoberta bem-sucedida, * ele lê o estado de um botão e grava esse valor na * Característica periférica. * * Observações:* * - Serviço periférico esperado:19b10000-e8f2-537e-4f6c-d104768a1214 * - Característica periférica esperada:19b10001-e8f2-537e-4f6c-d104768a1214 * - Esboço periférico esperado:* * / # inclui  // variáveis ​​para buttonconst int buttonPin =3; int oldButtonState =LOW; const int ledPin =5; // pino a ser usado para configuração do LEDvoid () {Serial.begin (9600); // configura o pino do botão como entrada pinMode (buttonPin, INPUT); pinMode (ledPin, OUTPUT); // inicializa o hardware BLE BLE.begin (); Serial.println ("BLE Central - controle de LED"); // inicia a varredura de periféricos BLE.scanForUuid ("19b10000-e8f2-537e-4f6c-d104768a1214");} void loop () {// verifique se um periférico foi descoberto BLEDevice periférico =BLE.available (); if (periférico) {// descobriu um periférico, imprime o endereço, o nome local e o serviço anunciado Serial.print ("Encontrado"); Serial.print (periférico.address ()); Serial.print ("'"); Serial.print (periférico.localName ()); Serial.print ("'"); Serial.print (ipher.advertisedServiceUuid ()); Serial.println (); // parar a varredura BLE.stopScan (); controlLed (periférico); // periférico desconectado, comece a varredura novamente BLE.scanForUuid ("19b10000-e8f2-537e-4f6c-d104768a1214"); }} void controlLed (BLEDevice periférico) {// conectar ao periférico Serial.println ("Conectando ..."); if (universe.connect ()) {Serial.println ("Conectado"); } else {Serial.println ("Falha ao conectar!"); Retorna; } // descobrir atributos periféricos Serial.println ("Descobrindo atributos ..."); if (universe.discoverAttributes ()) {Serial.println ("Atributos descobertos"); } else {Serial.println ("Falha na descoberta de atributo!"); periférico.disconnect (); Retorna; } // recuperar a característica do LED BLECharacteristic ledCharacteristic =universe.characteristic ("19b10001-e8f2-537e-4f6c-d104768a1214"); if (! ledCharacteristic) {Serial.println ("Periférico não possui característica de LED!"); periférico.disconnect (); Retorna; } else if (! ledCharacteristic.canWrite ()) {Serial.println ("Periférico não possui característica de LED gravável!"); periférico.disconnect (); Retorna; } while (universe.connected ()) {// enquanto o periférico está conectado // lê o pino do botão int buttonState =digitalRead (buttonPin); if (oldButtonState! =buttonState) {// botão alterado oldButtonState =buttonState; if (buttonState) {Serial.println ("botão pressionado"); // botão é pressionado, escreva 0x01 para ligar o LED ledCharacteristic.writeByte (0x01); digitalWrite (ledPin, LOW); } else {Serial.println ("botão liberado"); // botão é liberado, escreva 0x00 para ligar o LED de ledCharacteristic.writeByte (0x00); digitalWrite (ledPin, HIGH); }}} Serial.println ("Peripheral desconectado");} / * Exemplo de controle de LED central do Arduino BLE Copyright (c) 2016 Arduino LLC. Todos os direitos reservados. Esta biblioteca é um software livre; você pode redistribuí-lo e / ou modificá-lo sob os termos da GNU Lesser General Public License conforme publicada pela Free Software Foundation; tanto a versão 2.1 da Licença, ou (por sua opção) qualquer versão posterior. Esta biblioteca é distribuída na esperança de que seja útil, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Consulte a GNU Lesser General Public License para obter mais detalhes. Você deve ter recebido uma cópia da GNU Lesser General Public License junto com esta biblioteca; se não, escreva para Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * / 

Peças personalizadas e gabinetes

Esquemas

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

Processo de manufatura

  1. Óculos de sol
  2. Bateria
  3. UnifiedWater v1
  4. Arduino Power
  5. Vingador montado:Capacete do Homem de Ferro e Reator Arc
  6. Caixa de votação móvel
  7. Intel Arduino 101 BLE Blynk Tank
  8. Entendendo a bateria usada em automóveis
  9. Diferentes maneiras de testar um alternador
  10. 7 sinais de alternador ruim ou defeituoso