Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Arduino101 / tinyTILE BLE:подходящие солнцезащитные очки

Компоненты и расходные материалы

Intel tinyTILE
Или другие модули BLE
× 2
Arduino 101
Необязательно
× 2
Жидкокристаллический световой клапан Adafruit - управляемая ЖК-панель затемнения
× 2
Литий-ионный аккумулятор 100 мАч
× 2
2-контактный прямоугольный разъем SMT Adafruit JST-PH
× 4
Удлинительный кабель аккумулятора Adafruit JST-PH
× 2
Ползунковый переключатель
× 2
Резистор 10 кОм
× 3
Кнопочный переключатель SparkFun, 12 мм
× 1
LED (общий)
Они использовались на этапе разработки и не потребуются для окончательных прототипов.
× 2
Макет (общий)
Это использовалось на этапе разработки и не понадобится для окончательных прототипов.
× 1
Перемычки (общие)
Они использовались на этапе разработки и не потребуются для окончательных прототипов.
× 1

Необходимые инструменты и машины

3D-принтер (общий)
Паяльник (общий)

Приложения и онлайн-сервисы

IDE Arduino
Веб-редактор Arduino

Об этом проекте

Что, если бы вы могли посылать сигнал для зрительного контакта с кем-то, с кем вам интересно поговорить, в социальной обстановке, даже издалека, вместо использования приложения? Я не предлагаю другого способа начать свидание. Я изучаю новое использование Bluetooth в области взаимодействия с людьми.

Когда я узнал, что модули Intel Curie можно назначить в качестве центральных и периферийных устройств BLE, я сразу захотел сделать эти очки. (Узнайте больше о CurieBLE здесь.) Благодаря учебному пособию по Adafruit, легко доступна эталонная структура 3D-печатного ЖК-стекла. Что я добавил в учебник Adafruit, так это элемент управления BLE (вместо элемента управления переключателем) для двух очков одновременно, один из которых является главным, а другой - подчиненным, а также переработанные рамки, напечатанные на 3D-принтере.

Этот проект сначала был разработан на Arduino 101 и прототипирован на tinyTILE, оба имеют модули Intel Curie. Даже если вы не сможете получить модули Intel Curie в будущем, я надеюсь, что приведенная здесь методология все еще может быть полезной. Я могу представить множество различных способов применения центральных и периферийных возможностей Bluetooth, и я с нетерпением жду обсуждения этой темы.

Шаг 1 - Разработка

Два Arduino101 и два светодиода были использованы для разработки схемы и тестирования кодов. Из-за сложности конечных схем всегда рекомендуется начинать с макета, прежде чем все паять вместе.

Для периферийных устройств вы можете использовать код из примеров CurieBLE -> Peripheral -> LED и поменять местами HIGH и LOW (найдите причину на последнем шаге). Код для центрального предоставляется в конце проекта. Это почти то же самое, что и CurieBLE -> Central -> LEDcontrol с добавлением пары строк для ЖК-дисплеев.

TinyTILE - это почти что миниатюрная модель Arduino101. Главный центральный прямоугольник - это модуль Intel Curie. Их можно прошивать одними и теми же кодами. Контакты на Arduino101 всегда проще в использовании, но размер tinyTILE более привлекателен для носимых устройств. Мне нравится сначала разрабатывать на Arduino 101, а потом все переносить на tinyTILE. Ознакомьтесь с другим проектом, использующим tinyTILE, здесь. Если форм-фактор не является проблемой для вашего проекта, смело используйте Arduino101 (см. Пример здесь).

Я тестирую каждый компонент шаг за шагом, когда сменил Arduino101 на tinyTILE и заменил светодиоды на ЖК-дисплеи.

Шаг 2 - 3D-печать

Я переработал рамы с помощью SolidWorks поверх той, что предоставлена ​​Adafruit. Вы можете скачать их базовый дизайн здесь и изменить с помощью любого программного обеспечения, которое вы предпочитаете для 3D-печати. Если вам нравятся именно те образы, которые я создал, вы можете найти их в приложениях ниже. Почему я создал форму сердца и вселенную? Посмотрите видео для объяснения и используйте свое воображение.

Дизайн может быть изменен, чтобы лучше соответствовать вашему лицу. Мне было немного трудно удерживать свой маленький нос. В настоящее время есть компании, которые делают 3D-сканирование вашего лица и подбирают для вас очки, и это здорово.

Я думаю, что используемый 3D-принтер Ruiz Brothers от Adafruit должен быть лучше моего. Потому что я напечатал так много вспомогательных материалов внутри мест, из которых очень трудно выйти. Как UX-дизайнер, я могу многое сказать о неудобствах моего 3D-принтера. Я хотел бы иметь водорастворимые вспомогательные материалы или принтер, для которого не нужны вспомогательные материалы, или 3D-принтер на жидкой основе / светоотверждаемый.

Шаг 3 - Сборка

Советы в руководстве Adafruit по подключению, пайке и монтажу очень хороши. Вам стоит это увидеть. Мне просто пришлось добавить дополнительные tinyTILE и кнопку. Будьте осторожны, чтобы отрезать провода нужной длины.

Шаг 4 - Готово и получайте удовольствие!

Когда питание включено, на ЖК-дисплеи подается напряжение, что делает их темными солнцезащитными очками. Когда кнопка на главном устройстве нажата, напряжение на главном устройстве отключается, что в то же время сигнализирует об отключении напряжения на подчиненном устройстве через Bluetooth, делая оба стекла прозрачными.

Двумя очками можно управлять довольно далеко друг от друга, если они находятся в пределах диапазона BLE. Тестировал дома. Сердце может привлечь внимание Вселенной на расстоянии не менее 15 шагов.

Представьте себе, что вы используете не кнопку, а жест, кивок или совпадающее сердцебиение!

  Сердце (master =central):«Мне нравится твой изощренный ум <3» Вселенная (slave =периферийное):«Я вижу тебя. Давай поговорим».  

Код

  • Кнопочное управление для центра
Кнопочное управление для центрального Arduino
Это почти то же самое, что и в примере CurieBLE.
 / * * Copyright (c) Intel Corporation, 2016. Все права защищены. * Условия лицензии см. В нижней части этого файла. * // * * Скетч:LedControl.ino * * Описание:* Это центральный скетч, который ищет конкретный сервис с * определенной характеристикой от периферийного устройства. После успешного обнаружения * он считывает состояние кнопки и записывает это значение в * периферийную характеристику. * * Примечания:* * - Ожидаемые периферийные службы:19b10000-e8f2-537e-4f6c-d104768a1214 * - Ожидаемые периферийные характеристики:19b10001-e8f2-537e-4f6c-d104768a1214 * - Ожидаемые периферийные эскизы:* * / # include  // переменные для buttonconst int buttonPin =3; int oldButtonState =LOW; const int ledPin =5; // вывод для использования LEDvoid setup () {Serial.begin (9600); // настраиваем вывод кнопки как входной pinMode (buttonPin, INPUT); pinMode (ledPin, ВЫХОД); // инициализировать оборудование BLE BLE.begin (); Serial.println («BLE Central - управление светодиодами»); // запускаем сканирование периферийных устройств BLE.scanForUuid ("19b10000-e8f2-537e-4f6c-d104768a1214");} void loop () {// проверяем, обнаружено ли периферийное устройство BLEDevice периферийное устройство =BLE.available (); if (периферийное устройство) {// обнаружило периферийное устройство, распечатало адрес, локальное имя и объявленную службу Serial.print ("Найдено"); Серийный.печать (периферийный.адрес ()); Serial.print ("'"); Serial.print (периферийное.localName ()); Serial.print ("'"); Serial.print (периферийное.advertisedServiceUuid ()); Serial.println (); // останавливаем сканирование BLE.stopScan (); controlLed (периферийный); // периферийное устройство отключено, снова начать сканирование BLE.scanForUuid ("19b10000-e8f2-537e-4f6c-d104768a1214"); }} void controlLed (периферийное устройство BLEDevice) {// подключаемся к периферийному устройству Serial.println ("Подключение ..."); если (периферийное.connect ()) {Serial.println ("Подключено"); } else {Serial.println ("Не удалось подключиться!"); возвращение; } // обнаруживаем периферийные атрибуты Serial.println ("Обнаружение атрибутов ..."); если (периферийные.discoverAttributes ()) {Serial.println («Атрибуты обнаружены»); } else {Serial.println ("Ошибка обнаружения атрибута!"); периферийный.disconnect (); возвращение; } // получаем характеристику светодиода BLECharacteristic ledCharacteristic =периферийное.characteristic ("19b10001-e8f2-537e-4f6c-d104768a1214"); if (! ledCharacteristic) {Serial.println («Периферийное устройство не имеет характеристики светодиода!»); периферийный.disconnect (); возвращение; } else if (! ledCharacteristic.canWrite ()) {Serial.println («Периферийное устройство не имеет возможности записи светодиода!»); периферийный.disconnect (); возвращение; } while (периферийное устройство.connected ()) {// пока периферийное устройство подключено // считываем вывод кнопки int buttonState =digitalRead (buttonPin); if (oldButtonState! =buttonState) {// кнопка изменена oldButtonState =buttonState; if (buttonState) {Serial.println ("кнопка нажата"); // нажата кнопка, записываем 0x01 для включения светодиода ledCharacteristic.writeByte (0x01); digitalWrite (ledPin, LOW); } else {Serial.println ("кнопка отпущена"); // кнопка отпущена, запишите 0x00, чтобы загорелся светодиод ledCharacteristic.writeByte (0x00); digitalWrite (ledPin, HIGH); }}} Serial.println («Периферийное устройство отключено»);} / * Пример центрального управления светодиодом Arduino BLE Copyright (c) 2016 Arduino LLC. Все права защищены. Эта библиотека является бесплатным программным обеспечением; вы можете распространять и / или изменять его в соответствии с условиями Стандартной общественной лицензии ограниченного применения GNU, опубликованной Free Software Foundation; либо версии 2.1 Лицензии, либо (по вашему выбору) любой более поздней версии. Эта библиотека распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Дополнительные сведения см. В Стандартной общественной лицензии ограниченного применения GNU. Вы должны были получить копию Стандартной общественной лицензии ограниченного применения GNU вместе с этой библиотекой; в противном случае напишите в Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * / 

Изготовленные на заказ детали и корпуса

Схема

Центральный использует контакт 3 для кнопки и 5 для ЖК-дисплея. Периферийное устройство использует контакт 6 для ЖК-дисплея.

Производственный процесс

  1. Солнцезащитные очки
  2. Батарея
  3. UnifiedWater v1
  4. Arduino Power
  5. Мститель в сборе:шлем Железного человека и дуговой реактор
  6. Мобильный ящик для голосования
  7. Intel Arduino 101 BLE Blynk Tank
  8. Понимание аккумуляторов, используемых в автомобилях
  9. Различные способы проверки генератора
  10. 7 признаков плохого или неисправного генератора