Редактирование: Очки с функцией костной проводимости
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
[[File:Boneconduction gif1.gif|thumb]] | [[File:Boneconduction gif1.gif|thumb]] | ||
+ | [[File:Boneconduction gif2.gif|thumb]] | ||
− | ==Суть проекта== | + | ===Суть проекта=== |
− | Создание очков, обладающих функционалом гарнитуры на костной проводимости | + | Создание очков, обладающих функционалом гарнитуры на костной проводимости |
− | ==Проектная команда== | + | ===Проектная команда=== |
* [[Дрепин Михаил]] | * [[Дрепин Михаил]] | ||
* [[Серов Александр]] | * [[Серов Александр]] | ||
− | ==Поставленные цели== | + | ===Поставленные цели=== |
* Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств | * Осуществление коммуникаций и прослушивание музыки без использования большого количества дорогостоящих устройств | ||
* Использование безопасных для здоровья и жизни беспроводных девайсов | * Использование безопасных для здоровья и жизни беспроводных девайсов | ||
− | ==Альтернативные | + | ===Альтернативные решения=== |
* Дорогостоящие импортные очки с гарнитурой | * Дорогостоящие импортные очки с гарнитурой | ||
* Наушники с гарнитурой | * Наушники с гарнитурой | ||
* Ушная Bluetooth гарнитура | * Ушная Bluetooth гарнитура | ||
− | ==Технология костной проводимости== | + | ===Технология костной проводимости=== |
Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа, | Данный динамик позволяет передавать звук напрямую во внутреннее ухо через кости черепа, | ||
− | минуя наружное ухо (ушную раковину) и среднее ухо (барабанную перепонку, молоточек, наковальню, стремечко) | + | минуя наружное ухо(ушную раковину) и среднее ухо( барабанную перепонку, молоточек, наковальню, стремечко) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Работа по проекту== | ==Работа по проекту== | ||
Строка 32: | Строка 27: | ||
|- | |- | ||
|'''Срок''' | |'''Срок''' | ||
+ | |'''Возникающие проблемы''' | ||
|'''Задача''' | |'''Задача''' | ||
− | |||
|'''Что сделано к сроку''' | |'''Что сделано к сроку''' | ||
|- | |- | ||
Строка 51: | Строка 46: | ||
|Модель построена | |Модель построена | ||
|- | |- | ||
− | | | + | | 7.05.18 |
− | |||
− | |||
− | |||
− | |||
− | |||
|Работа с Arduino | |Работа с Arduino | ||
|Изучение электронного конструктора Arduino | |Изучение электронного конструктора Arduino | ||
Строка 77: | Строка 67: | ||
* Очки спроектированы и распечатаны на 3D-принтере | * Очки спроектированы и распечатаны на 3D-принтере | ||
* Собраны модули | * Собраны модули | ||
− | * С получившейся моделью можете ознакомиться | + | * С получившейся моделью можете ознакомиться на приложенных фотографиях |
− | |||
− | |||
− | |||
− | |||
− | |||
==Arduino прошивка== | ==Arduino прошивка== | ||
Строка 90: | Строка 75: | ||
<syntaxhighlight lang="javascript" line start="1" enclose="div"> | <syntaxhighlight lang="javascript" line start="1" enclose="div"> | ||
− | #include | + | #include "Arduino.h" |
− | + | #include "Cl_do_btn.h" | |
− | + | Cl_do_btn::Cl_do_btn(byte _pin, bool high, void (* _Do_Btn)()) { | |
− | + | pin = _pin; | |
− | + | low = !high; | |
− | + | Do_Btn = _Do_Btn; | |
− | + | } | |
− | + | void Cl_do_btn::setup() { | |
− | + | //pinMode(pin, INPUT);// подключить кнопку | |
− | + | pinMode(pin, INPUT_PULLUP);// подключить кнопку 1 с подтяжкой | |
− | void setup(){ | + | btn = read(); // прочитать реальное значение на выводе |
− | pinMode( | ||
− | pinMode( | ||
− | |||
} | } | ||
− | void loop(){ | + | void Cl_do_btn::loop() { |
− | + | if (! bounce && btn != read()) { // если прошел фронт изм на выводн | |
− | + | bounce = 1; // выставить флаг | |
− | + | past = millis(); // сделать временую засветку | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | else if ( bounce && millis() - past >= 5 ) { // если прошло антидребезговое время | |
− | + | bounce = 0; // то снять флаг | |
− | + | btn_old = btn ; | |
− | + | btn = read(); // прочитать реальное значение на выводе | |
− | + | if (! btn_old && btn) Do_Btn(); | |
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
} | } | ||
+ | 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> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Ссылки== | ==Ссылки== | ||
− | |||
− |