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

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

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

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
  
 
[[File:Boneconduction gif1.gif|thumb]]
 
[[File:Boneconduction gif1.gif|thumb]]
 +
[[File:Boneconduction gif2.gif|thumb]]
  
==Суть проекта==
+
===Суть проекта===
Создание очков, обладающих функционалом гарнитуры на костной проводимости - девайс, который был бы безопасен для здоровья, удобен и действительно изменил бы жизнь к лучшему
+
Создание очков, обладающих функционалом гарнитуры на костной проводимости
  
==Проектная команда==
+
===Проектная команда===
 
* [[Дрепин Михаил]]
 
* [[Дрепин Михаил]]
 
* [[Серов Александр]]  
 
* [[Серов Александр]]  
  
==Поставленные цели==
+
===Поставленные цели===
 
* Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств
 
* Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств
 
* Использование безопасных для здоровья и жизни беспроводных девайсов
 
* Использование безопасных для здоровья и жизни беспроводных девайсов
  
==Альтернативные варианты==
+
===Альтернативные решения===
 
* Дорогостоящие импортные очки с гарнитурой
 
* Дорогостоящие импортные очки с гарнитурой
 
* Наушники с гарнитурой
 
* Наушники с гарнитурой
 
* Ушная Bluetooth гарнитура
 
* Ушная Bluetooth гарнитура
  
==Технология костной проводимости==
+
===Технология костной проводимости===
 
Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа,  
 
Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа,  
минуя наружное ухо (ушную раковину) и среднее ухо (барабанную перепонку, молоточек, наковальню, стремечко)
+
минуя наружное ухо(ушную раковину) и среднее ухо( барабанную перепонку, молоточек, наковальню, стремечко)
 
 
==Свойства устройства==
 
* Bluetooth 4.0
 
* Динамики костной проводимости
 
* Автономное питание (до 10 часов) с зарядкой через micro usb
 
* Эксклюзивная оправа, спроектированная во fusion 360
 
  
 
==Работа по проекту==
 
==Работа по проекту==
Строка 32: Строка 27:
 
|-
 
|-
 
|'''Срок'''
 
|'''Срок'''
 +
|'''Возникающие проблемы'''
 
|'''Задача'''
 
|'''Задача'''
|'''Возникающие проблемы'''
 
 
|'''Что сделано к сроку'''
 
|'''Что сделано к сроку'''
 
|-
 
|-
Строка 51: Строка 46:
 
|Модель построена
 
|Модель построена
 
|-
 
|-
| 02.05.18
+
| 7.05.18
| Подобрать и спаять все модули
 
| Отсутствие опыта пайки, минимизация размеров конструкции
 
| Все модули спаяны и работают
 
|-
 
| 07.05.18
 
 
|Работа с Arduino
 
|Работа с Arduino
 
|Изучение электронного конструктора Arduino
 
|Изучение электронного конструктора Arduino
Строка 90: Строка 80:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
  
#include <Volume.h>
+
#include "Arduino.h"
int inPin = 2; //пин, отвечающий за кнопку
+
#include "Cl_do_btn.h"
int spkr = 5; //пин, отвечающий за колонки
+
Cl_do_btn::Cl_do_btn(byte _pin, bool high, void (* _Do_Btn)()) {
int reading; //актуальное значение кнопки
+
  pin = _pin;
int previous = LOW; //старое значение кнопки
+
  low = !high;
long time = 0; //время работы
+
  Do_Btn = _Do_Btn;
long debounce = 200; //антидребезговое время
+
}
bool play = false; // флаг, включено ли проигрывание
+
void Cl_do_btn::setup() {
Volume vol; //
+
   //pinMode(pin, INPUT);// подключить кнопку
float mv = 0; //
+
   pinMode(pin, INPUT_PULLUP);// подключить кнопку 1 с подтяжкой
void setup(){
+
   btn = read(); // прочитать реальное значение на выводе
   pinMode(inPin, INPUT);
 
   pinMode(spkr, OUTPUT);
 
   vol.begin();
 
 
}
 
}
void loop(){  
+
void Cl_do_btn::loop() {
   //проверяем, лежит ли значение, которое передаёт аналоговый потенциометр, в интервале от 0 до 100 и присваиваем его mv
+
   if (! bounce && btn != read()) { // если прошел фронт изм на выводн
  mv = constrain(analogRead(A0) / 10, 0, 100) / 100.00;
+
     bounce = 1;                   // выставить флаг
  //задержка
+
     past = millis();               // сделать временую засветку
  delay(20);
 
  if (play){
 
     vol.tone(1000, 255 * mv); //устанавливаем громкость
 
  }
 
  else{
 
     vol.noTone(); //выключаем звук
 
 
   }
 
   }
   reading = digitalRead(inPin);
+
   else if ( bounce && millis() - past >= 5 ) { // если прошло антидребезговое время
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
+
     bounce = 0;     // то снять флаг
     if (!play) {
+
     btn_old = btn ;
      play = true;
+
    btn = read(); // прочитать реальное значение на выводе
     }
+
     if (! btn_old && btn)  Do_Btn();
    else {
 
      play = false;
 
      time = millis();
 
     }
 
 
   }
 
   }
  previous = reading;
 
 
}
 
}
  
  
 +
void loop() {
 +
  v = !digitalRead(2);
 +
  battle = !digitalRead(3);
 +
  if (battle==1 && flag==0 && (millis()-timestep)>300){  // Отрабатываем нажатие кнопки..
 +
    flag = 1;
 +
    i++;
 +
    Serial.println(i);
 +
    timestep = millis();
 +
  }
 +
  if (battle==0 && flag==1){  // ..и отжатие
 +
    flag = 0;
 +
  }
 +
  if ((millis()-timestep)>2500 && i>1){ // Через 2.5 секунды после последнего нажатия кнопки запускается дальнейший скрипт
 +
    j = i;
 +
  }
 +
  //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:

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