Редактирование: Очки с функцией костной проводимости

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

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

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)