Очки с функцией костной проводимости — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Новая страница: « ===Суть проекта=== Создание очков, обладающих функционалом гарнитуры на костной проводим…»)
 
(Приложение)
 
(не показано 16 промежуточных версий 3 участников)
Строка 1: Строка 1:
  
===Суть проекта===
+
[[File:Boneconduction gif1.gif|thumb]]
Создание очков, обладающих функционалом гарнитуры на костной проводимости
 
  
===Проектная команда===
+
==Суть проекта==
 +
Создание очков, обладающих функционалом гарнитуры на костной проводимости - девайс, который был бы безопасен для здоровья, удобен и действительно изменил бы жизнь к лучшему
 +
 
 +
==Проектная команда==
 
* [[Дрепин Михаил]]
 
* [[Дрепин Михаил]]
 
* [[Серов Александр]]  
 
* [[Серов Александр]]  
  
===Поставленные цели===
+
==Поставленные цели==
 
* Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств
 
* Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств
 
* Использование безопасных для здоровья и жизни беспроводных девайсов
 
* Использование безопасных для здоровья и жизни беспроводных девайсов
  
===Альтернативные решения===
+
==Альтернативные варианты==
 
* Дорогостоящие импортные очки с гарнитурой
 
* Дорогостоящие импортные очки с гарнитурой
 
* Наушники с гарнитурой
 
* Наушники с гарнитурой
 
* Ушная Bluetooth гарнитура
 
* Ушная Bluetooth гарнитура
  
===Технология костной проводимости===
+
==Технология костной проводимости==
 
Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа,  
 
Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа,  
минуя наружное ухо(ушную раковину) и среднее ухо( барабанную перепонку, молоточек, наковальню, стремечко)
+
минуя наружное ухо (ушную раковину) и среднее ухо (барабанную перепонку, молоточек, наковальню, стремечко)
 +
 
 +
==Свойства устройства==
 +
* Bluetooth 4.0
 +
* Динамики костной проводимости
 +
* Автономное питание (до 10 часов) с зарядкой через micro usb
 +
* Эксклюзивная оправа, спроектированная во fusion 360
  
 
==Работа по проекту==
 
==Работа по проекту==
Строка 24: Строка 32:
 
|-
 
|-
 
|'''Срок'''
 
|'''Срок'''
 +
|'''Задача'''
 
|'''Возникающие проблемы'''
 
|'''Возникающие проблемы'''
|'''Задача'''
 
 
|'''Что сделано к сроку'''
 
|'''Что сделано к сроку'''
 
|-
 
|-
Строка 43: Строка 51:
 
|Модель построена
 
|Модель построена
 
|-
 
|-
| 7.05.18
+
| 02.05.18
 +
| Подобрать и спаять все модули
 +
| Отсутствие опыта пайки, минимизация размеров конструкции
 +
| Все модули спаяны и работают
 +
|-
 +
| 07.05.18
 
|Работа с Arduino
 
|Работа с Arduino
 
|Изучение электронного конструктора Arduino
 
|Изучение электронного конструктора Arduino
Строка 64: Строка 77:
 
* Очки спроектированы и распечатаны на 3D-принтере
 
* Очки спроектированы и распечатаны на 3D-принтере
 
* Собраны модули
 
* Собраны модули
* С получившейся моделью можете ознакомиться на приложенных фотографиях
+
* С получившейся моделью можете ознакомиться [https://a360.co/2EAvkOd здесь] или на приложенных фотографиях
  
 +
<gallery mode="slideshow">
 +
File:Boneconduction pic1.jpg| Модель в собранном виде
 +
File:Boneconduction pic2.jpg| Модель в разобранном виде
 +
File:Boneconduction pic3.jpg| Дужка
 +
</gallery>
  
 
==Arduino прошивка==
 
==Arduino прошивка==
Строка 72: Строка 90:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
  
#include <Servo.h>         // Библиотека для сервопривода
+
#include <Volume.h>
Servo servo1;               // Объявление переменных
+
int inPin = 2; //пин, отвечающий за кнопку
int timestep;
+
int spkr = 5; //пин, отвечающий за колонки
int timestep1;
+
int reading; //актуальное значение кнопки
boolean flag = 0;
+
int previous = LOW; //старое значение кнопки
boolean flag1 = 0;
+
long time = 0; //время работы
boolean battle;
+
long debounce = 200; //антидребезговое время
byte i;
+
bool play = false; // флаг, включено ли проигрывание
byte j;
+
Volume vol; //
byte v;
+
float mv = 0; //
byte c;
+
void setup(){
void setup() {
+
   pinMode(inPin, INPUT);
  servo1.attach(4);        // Задание пинов на вход и выход
+
   pinMode(spkr, OUTPUT);
   pinMode(3,INPUT_PULLUP);
+
   vol.begin();
  pinMode(2,INPUT);
 
   pinMode(9,OUTPUT);
 
   Serial.begin(9600);
 
  servo1.write(0);
 
  // digitalWrite(9,LOW);
 
 
}
 
}
 
+
void loop(){  
void loop() {
+
   //проверяем, лежит ли значение, которое передаёт аналоговый потенциометр, в интервале от 0 до 100 и присваиваем его mv
   v = !digitalRead(2);
+
  mv = constrain(analogRead(A0) / 10, 0, 100) / 100.00;
   battle = !digitalRead(3);
+
   //задержка
   if (battle==1 && flag==0 && (millis()-timestep)>300){ // Отрабатываем нажатие кнопки..
+
  delay(20);
    flag = 1;
+
   if (play){
    i++;
+
     vol.tone(1000, 255 * mv); //устанавливаем громкость
     Serial.println(i);
 
    timestep = millis();
 
 
   }
 
   }
   if (battle==0 && flag==1)// ..и отжатие
+
   else{
    flag = 0;
+
    vol.noTone(); //выключаем звук
 
   }
 
   }
   if ((millis()-timestep)>2500 && i>1){ // Через 2.5 секунды после последнего нажатия кнопки запускается дальнейший скрипт
+
   reading = digitalRead(inPin);
    j = i;
+
   if (reading == HIGH && previous == LOW && millis() - time > debounce) {
  }
+
     if (!play) {
  //if (j>0 && (millis()-timestep)>5000 && (millis()-timestep)<6000){    Прошивка для двигателя (не использовалась)
+
      play = true;
  //  digitalWrite(9,HIGH);
+
     }
  //} else {
+
    else {
  //  digitalWrite(9,LOW);
+
      play = false;
  //}
+
      time = millis();
   if (j>0 && v==HIGH && flag1==0 && c<180 && (millis()-timestep1)>1000){ // Снятие показания с датчика препятствий и
+
    }
     flag1 = 1;
 
    timestep1 = millis();
 
    c += 180/j;
 
     servo1.write(c);                                                    // подача сигнала на сервопривод
 
  }
 
  if (j>0 && v==LOW && flag1==1 && (millis()-timestep1)>300){
 
    flag1 = 0;
 
    timestep1 = millis();
 
 
   }
 
   }
 +
  previous = reading;
 +
}
 +
  
}
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div>
 
</div>
 
</div>
 
</div>
 +
 +
==Перспективы работы==
 +
В настоящий момент разрабатывается пользовательское приложения для работы с очками.
 +
Оно позволяет настроить функционал под себя:
 +
* Отвечать в одно касание на звонки
 +
* Делать фото на встроенную камеру по касанию
 +
* Переключать касанием музыку
 +
* Получать аудио уведомления от определённого круга приложений
 +
Так же в процессе создание новой модели внешне практически не отличающейся от обычных очков
 +
 +
==Приложение==
 +
[http://mech.spbstu.ru/images/9/9a/Bone00.docx Электронная версия курсового проекта]
  
 
==Ссылки==
 
==Ссылки==
 +
* [[Фаблаб_Политех]]
 +
* [[Курсовые работы по программированию 2 курс 2018]]

Текущая версия на 14:48, 6 июня 2018

Boneconduction gif1.gif

Суть проекта[править]

Создание очков, обладающих функционалом гарнитуры на костной проводимости - девайс, который был бы безопасен для здоровья, удобен и действительно изменил бы жизнь к лучшему

Проектная команда[править]

Поставленные цели[править]

  • Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств
  • Использование безопасных для здоровья и жизни беспроводных девайсов

Альтернативные варианты[править]

  • Дорогостоящие импортные очки с гарнитурой
  • Наушники с гарнитурой
  • Ушная Bluetooth гарнитура

Технология костной проводимости[править]

Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа, минуя наружное ухо (ушную раковину) и среднее ухо (барабанную перепонку, молоточек, наковальню, стремечко)

Свойства устройства[править]

  • Bluetooth 4.0
  • Динамики костной проводимости
  • Автономное питание (до 10 часов) с зарядкой через micro usb
  • Эксклюзивная оправа, спроектированная во fusion 360

Работа по проекту[править]

Срок Задача Возникающие проблемы Что сделано к сроку
23.02.18 Найти динамик на костной проводимости Костная проводимость - нераспространенная технология Динамик был приобретен с помощью интернет сервиса
30.02.18 Рассмотреть легальность вопроса Во многих странах были запрещены подобные технологии из-за скрытого микрофона На очках будет эмблема микрофона, предупреждающая о его наличии
11.04.18 Проектирование 3D модели Изучение САПР Autodesk Fusion 360 Модель построена
02.05.18 Подобрать и спаять все модули Отсутствие опыта пайки, минимизация размеров конструкции Все модули спаяны и работают
07.05.18 Работа с Arduino Изучение электронного конструктора Arduino Подключение к очкам по Bluetooth, получение звука через динамик
15.05.18 Сборка первого прототипа 3D-принтер не смог осилить тонкости модели Прототип собран и функционирует

Смета[править]

  • Динамики - 500 рублей
  • Bluetooth аудио модуль BK8000L (F-6188 V4.0) - 200р
  • Аккумулятор Li-Pol Орбита 25*23*23 3.7В 110 мАч - 100р
  • Модуль заряда аккумуляторов TP4056 (micro USB) - 25 р

Результаты по проекту[править]

  • Очки спроектированы и распечатаны на 3D-принтере
  • Собраны модули
  • С получившейся моделью можете ознакомиться здесь или на приложенных фотографиях

Arduino прошивка[править]

 1 #include <Volume.h>
 2 int inPin = 2; //пин, отвечающий за кнопку
 3 int spkr = 5; //пин, отвечающий за колонки
 4 int reading; //актуальное значение кнопки
 5 int previous = LOW; //старое значение кнопки
 6 long time = 0; //время работы 
 7 long debounce = 200; //антидребезговое время
 8 bool play = false; // флаг, включено ли проигрывание
 9 Volume vol; //
10 float mv = 0; //
11 void setup(){
12   pinMode(inPin, INPUT);
13   pinMode(spkr, OUTPUT);
14   vol.begin();
15 }
16 void loop(){ 
17   //проверяем, лежит ли значение, которое передаёт аналоговый потенциометр, в интервале от 0 до 100 и присваиваем его mv
18   mv = constrain(analogRead(A0) / 10, 0, 100) / 100.00;
19   //задержка
20   delay(20);
21   if (play){
22     vol.tone(1000, 255 * mv); //устанавливаем громкость
23   }
24   else{
25     vol.noTone(); //выключаем звук
26   }
27   reading = digitalRead(inPin);
28   if (reading == HIGH && previous == LOW && millis() - time > debounce) {
29     if (!play) {
30       play = true;
31     }
32     else {
33       play = false;
34       time = millis();
35     }
36   }
37   previous = reading;
38 }

Перспективы работы[править]

В настоящий момент разрабатывается пользовательское приложения для работы с очками. Оно позволяет настроить функционал под себя:

  • Отвечать в одно касание на звонки
  • Делать фото на встроенную камеру по касанию
  • Переключать касанием музыку
  • Получать аудио уведомления от определённого круга приложений

Так же в процессе создание новой модели внешне практически не отличающейся от обычных очков

Приложение[править]

Электронная версия курсового проекта

Ссылки[править]