В моём распоряжении были следующие коннекторы: USB гнездо, предназначенное для установки в печатную плату и 80 сантиметровый кусок кабеля с USB вилкой на конце.


Вначале, я попытался изготовить гибкий удлинитель из 4-метрового аудио-видео кабеля, но попытка не увенчалась успехом. Когда я вставил флэшку в этот кабель, ОС «сказала», что устройство работает неправильно.



Так что, было решено использовать витую пару, тем более что у меня имелось несколько кусков сетевого Ethernet-овского кабеля, оставшегося со времён раздачи Интернета через локальную сеть. Сетевые кабеля оказались самого низкого качества, так как никаких экранов не имели. Во всех кусках кабеля имелось по четыре витые пары в пластиковой изоляции. Судя по цвету и жёсткости самих жил, изготовлены они были из какого-то медного сплава, похожего на латунь.

Для передачи сигнала и питания в формате USB2.0, на расстояние до 5-ти мтеров, вполне достаточно всего двух витых пар. Оставшиеся витые пары можно не использовать.


Однако если сопротивление жил кабеля велико, а подключенное к концу кабеля устройство потребляет значительный ток, то можно пустить питание сразу по двум или даже трём витым парам.


Давайте рассмотрим этот момент подробнее.

Например, если потребляемый USB устройством ток составляет 400мА, а сопротивление одной пары 2 Ома (в оба конца), то сопротивление USB устройства будет равно:


5 / 0,4 = 12,5 (Ом)


При этом падение напряжения на кабеле составит:


5 * 2/ (12,5 + 2) ≈ 0,69 (Вольт)


Что, конечно, многовато.


Но, если использовать сразу три пары:


2 / 3 ≈ 0,67 (Вольт)

5 * 0,67/ (12,5 + 0,67) ≈ 0,25 (Вольт)


То падение напряжения на кабеле снизится и уже не будет столь критичным.

О цоколёвке (распиновке) USB вилок и гнёзд

На картинке показана цоколёвка гнезда и вилки USB 2.0.


Для передачи данных (+Data и –Data) можно использовать любую из четырёх имеющихся витых пар.


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


Как закрепить гнездо USB на жёстком сетевом кабеле

Сборка моего кабеля несколько осложнилась в связи с тем, что в моём распоряжении оказалось не кабельное USB гнездо, а гнездо для печатных плат.


Пришлось сначала изолировать контакты от задней стенки корпуса.


А потом и от нижней стенки корпуса (на фото показано сверху).

Для не очень жёсткого кабеля, например, состоящего из всего двух витых пар, можно применить вот такой метод крепления гнезда к кабелю.


Сначала с помощью швейных ниток крепим к кабелю отрезок полихлорвиниловой трубки (кембрика). Конец нити можно закрепить расплавленной канифолью. На кембрике и изоляции кабеля делаем по два продольных разреза.


Должно получиться примерно так. Образовавшиеся «лепестки» должны быть расположены в виде креста.


Затем можно припаять концы витых пар к соответствующим выводам.


Крепим «лепестки» к корпусу гнезда швейными нитками. Конец нитки закрепляем канифолью.

Теперь можно облагородить гнездо, надев термоусадочную трубку или покрыв полиэтиленом (из пистолета).

Но, у меня был только очень жёсткий кабель, поэтому и крепление пришлось изготовить более серьёзное.


Сначала я намотал на край кабеля медный провод диаметром 1,3мм. Потом припаял концы этого провода к боковым стенкам гнезда USB.


Для придания дополнительной жёсткости конструкции, покрыл место соединения кабеля с гнездом USB низкотемпературным термоклеем.



Для придания более благообразной формы и улучшения внешнего вида разъёма, покрыл его термоусадочной трубкой. В

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

В связи с учебой за границей, пришлось пересесть полностью на ноутбук. С собой взял свою геймерскую мышку SS Kana. Само собой, проводная мышь не рассчитана на частые перемещения, со временем шнур стал заламываться у самого основания, все чаще контакт стал пропадать. В течение последних трех месяцев я старался поддерживать работоспособность мышки, даже перестал брать её на занятия, но наступил день П, и контакт пропал окончательно; никакие манипуляции уже не давали результата.
Мои Жадность за дорогую мышку и Лень идти покупать новую сплотились против меня и заставили чинить контакт. Сразу оговорюсь, что данную статью пишу пост-фактум, пошагово я ничего не записывал, но я покажу на примере, как это делается. Качество фотографий оставляет желать лучшего, но суть уловить можно.

Оборудование

Нож. Все. Изоленты или каких-нибудь инструментов у меня под рукой нет.
Обычный кухонный нож. Достаточно острый, чтобы без проблем резать изоляцию.
Первоначальный вариант включал в себя пайку казеным паяльником, полученным в универе, однако в силу некоторых обстоятельсв, которые я опишу далее, пришлось все переделывать заного.

Первоначальный вариант

Как я уже сказал, кабель переломился у самого основания. Чтобы хоть немного получить места, я обстрогал ножом штекер и зачистил все четыре провода. Оплетку кабеля скрутил и отвернул в сторону, после чего отправился в универ за паяльником. Мне дали старенький паяльник, катушку с миллиметровым припоем и баночку с флюсом. Опыт пайки у меня есть, поэтому получилось нормально. Единственный недостаток - так как все четыре провода очень короткие, расположены на одном уровне, а изоляции у меня не было, получилась своеобразная «розочка» из проводов, торчащих в разные стороны. Однако, пробный запуск оказался удачным - мышка ожила, и я, гордый собой, вернулся в общежитие.
Но там меня ждало разочарование. Не вдаваясь в подробности, у меня, скорее всего, коротнули черный и красный провода и ноут заблокировал USB-гнездо. Поэтому что бы я дальше не делал, мышка не реагировала.
Я, пытаясь разобраться, стал грешить на оплетку (что она коротит провода), даже отрезал её, он ничего не помогло. В итоге, я полностью отрезал вилку и решил сделать все по-новой. Стоило бы перезагрузить компьютер и попробовать снова, скорее всего, мышь бы заработала. Кто знает...

Соединение очень мелкое, нормальной камеры у меня нет. Просто все четыре провода торчат пучком из штекера и к каждому припаян соответствующий провод. Оплетка отрезана, т.к. я думал, что она коротит провода. Неважно.

Соединение кабелей

Уже под вечер я достал мышь из ящика стола и принялся за дело. Первым делом, я взял новую вилку от ненужного mini-USB кабеля.

USB-шнуры мало чем отличаются друг от друга - четыре провода (черный и красный для питания, белый и зеленый для информации) и оплётка. Поэтому любой USB-кабель подойдет.

При починке я использовал метод, описанный . Вкратце - многожильные кабели соединяются «лесенкой». Таким образом, провода не касаются друг-друга и соединение получается тоньше.
На примере оставшегося куска провода я покажу, как это делается. Сперва, аккуратно отрезаем верхнюю изоляцию на длину около четырех-пяти сантиметров.


Расплетаем оплётку и отводим в сторону.


Затем оголяем 4 провода «лесенкой» - красный только самый кончик, чтобы скрутить; белый чуть подлиннее, с расчетом, чтобы не задевать красный; затем зеленый. Черный зачищаем дальше всех. Другой кабель оголяем точно так же, только зеркально - черный только кончик, затем зеленый, белый и красный у самого основания. Таким образом, мы исключаем замыкание проводов между собой.


Осталось только соединить два кабеля между собой. Каждый провод соединяем скруткой. Надеюсь, цвета Вы не перепутаете. После скрутки, лишние провода лучше обрезать, чтобы избежать ненужных контактов.


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


После обработки изолентой, разумеется, это все примет божеский вид, а пока оплётка будет нависать таким странным образом. Соединение рабочее, никаких лишних контактов нет. Мышка работает как новая!

Однако

Сразу мышка работать отказалась. Уже было совсем отчаявшись, я заметил сообщение системы о нарушениях работы USB-входов. Как я уже говорил, первоначальный вариант закоротил контакты и ноут отрубил USB-входы. После перезагрузки, мышь снова заработала. Конечно, соединение недолговечное, без изоленты никак, однако мышь работает.

Спасибо за внимание. Надеюсь, эта статья Вам помогла.

P.S. это моя первая статья на Хабре. Спасибо за инвайт!

Было использовано:

1. Картонная коробка от бытовой техники;
2. Медные проводки от старой электроники;
3. 2 динамика от старых компьютерных колонок;
4. Клавиатура от старого сотового телефона;
5. Аккумуляторная батарея от старого сотового телефона;
6. Выключатель ();
7. 4 самореза;
8. Модуль заряда аккумуляторных батарей ();
9. Mp3 плеер без корпуса ();
10. Декоративная пленка на клейкой основе;
11. Термоклей, супер клей, изолента.

Из инструментов:

1. Плоскогубцы;
2. Ножницы;
3. Канцелярский нож;
4. Отвертка;
5. Клеевой пистолет;
6. Паяльник ( , очень удобный);
7. Третья рука.


Изготовление плеера

Нарезаем картон на парные куски, по 4шт каждого размера.
1. 4см х 8см, 3,6см х 7,6см;
2. 4см х 6,5см, 3,6см х 6,1см;
3. 6,5см х 8см, 6,1см х 7,6см.

И склеиваем их между собой. Это придаст конструкции жесткость.


Электроника, которая будет использована в самоделке.


Дешевый mp3 плеер с USB и microSD разъемами (). Питается от сети 5в или 3.7в от аккумулятора. Усилитель сигнала на 3вт в нем уже встроен. Так же встроен стабилизатор напряжения. Подключение питания через microUSB и две клеммы для аккумулятора.


Модуль заряда литиевых батарей 18650 на TP4056 5В 1А с micro USB интерфейсом (). Он подойдет для заряда аккумуляторов от сотовых телефонов.


Аккумуляторная батарея Philips 1100mAh. Вытащил из сломанного телефона.


Динамики из старых компьютерных колонок.


Недавно заказывал выключатели () хорошего качества для ремонта настольной лампы. Как раз одна осталась.


И несколько кнопок с клавиатуры сломанного телефона.


Вырезаем место под динамик, чтобы плотно сидел на месте.


Приклеиваем термоклеем основание корпуса, боковую стенку и примеряем будущее расположение аккумулятора.

Проклеиваем с внутренней стороны термоклеем для надежного скрепления.


Прикидываем будущее размещение модуля заряда.
Модуль заряда и аккумулятор будут находиться в корпусе второй колонки. В корпусе первой колонки будут расположены плата плеера и кнопки управления.


Вырезаем отверстия для USB и microSD разъемов на верхней части корпуса.


Выпаиваем штатные кнопки из платы плеера. Их разместим на той же верхней части корпуса для удобства управления.

Припаиваем проводки к кнопкам. Я брал 4 пары разных по цвету проводов, чтобы потом было удобнее паять на плате плеера.


Берем декоративную пленку на клейкой основе(у меня осталась черная) и обклеиваем ей части корпуса.


Должно получиться так.


Вырезаем отверстие под кнопку на верней части корпуса первой колонки и размещаем там кнопку управления.


С обратной стороны фиксируем термоклеем для надежности.


То же проделываем и с остальными кнопками. 2 верхние кнопки будут отвечать за переключение треков и громкость, нижняя левая плей/пауза, а нижняя правая кнопка повтора трека.

Получилось как то так.



Теперь можно припаивать проводки от кнопок на плату плеера.


Заливаем места пайки термоклеем для надежной фиксации проводков. Можно их собрать в кучу и обмотать изолентой, чтобы не мешались.


Соблюдая полярность припаиваем одну пару проводов от модуля заряда к аккумулятору.


Прикручиваем динамики к корпусу саморезами и фиксируем саморезы с обратной стороны термоклеем.


Приклеиваем верхнюю часть корпуса и фиксируем модуль заряда термоклеем для надежности.


Проделываем прорези для проводов идущих к первой колонке, фиксируем их термоклеем с внутренней стороны и проверяем работу модуля перед креплением задней части корпуса.


Скручиваем провода двух динамиков и припаиваем их к плате плеера соблюдая полярность.


Припаиваем провода питания к плате плеера и к выключателю. Соблюдайте полярность!


Болтающиеся части и провода фиксируем внутри термоклеем. Проверяем работу плеера перед креплением задней части корпуса.


Для фиксации колонок друг с другом и защиты проводов приклеиваем широкую полоску декоративной пленки с обеих сторон.

Получилась конструкция формы книжки, которая придает устойчивость и не обычный внешний вид данной самоделке.





Приклеиваем кнопки от клавиатуры старого телефона супер клеем. Будьте аккуратны, не залейте клеем кнопки управления.


Можно приступать к тесту.


Индикация.



USB флешки читает хорошо. Музыка играет громко. На максимальной громкости присутствует хрип динамиков, но и средней громкости вполне достаточно для прослушивания.
Работа от аккумулятора 1100mAh примерно 2-3 часа на средней громкости при воспроизведении с USB носителей, но остается энергия для воспроизведения с microSD карт. С microSD картами будет работать в 2-3 раза дольше, так как питание потребляется 3в, вместо 5в.

Хочу рассказать о своем небольшом проекте выходного дня, осветить трудности, с которыми пришлось столкнуться, дальнейших планах и получить консультацию более опытных Хабраюзеров. Формат статьи обзорный, так сказать, галопом по Европам. Если будет интерес, пройдусь подробнее по отдельным частям.

Коротко описать работу устройства можно так:

Электретный микрофон → Усилитель Max9812 → Микроконтроллер STM32F103 → Программное детектирование наличия звука → Кодирование звука в Speex → Отправка через ESP8266 на сервер → Скрипт PHP приема данных и оформления в звуковой контейнер Ogg. Кому интересно, прошу под кат.

Зачем все это надо?

Сама идея устройства у меня возникла к рождению дочки. В перспективе хочу сделать некое подобие радионяни: воткнул в розетку рядом с детской кроваткой, а сам в другой комнате сериальчик смотришь, тут хоп - на телефон пуш уведомление пришло и можно послушать что там происходит. Но по реализации последних пунктов у меня больше вопросов, нежели ответов. Об этом позже.

Возможно кто-то увидит другое применение такой поделке, но уверяю Вас, устройство не создается с целью негласного получения информации (ст.138.1 УК РФ) и любая такая попытка будет преследоваться по закону .

Попрошу сразу не критиковать саму идею, работа со звуком и Wi-Fi мне нужна в другом проекте, над которым я пока только думаю. А это - отдельный кусок, реализованный в самостоятельный девайс.

Корпус

По принципу “Design first” начал думать в каком конструктиве делать устройство. В поисках готовых корпусов на Ali наткнулся на корпуса для usb с отверстием под кабель и подумал про себя, что это идеальный вариант - дырку займет микрофон, а остальное как-нибудь впихнем.

Только вот заказывать 10шт за $5 я не хотел и начал искать варианты. В итоге заказал переходник USB-RS485 в точно таком корпусе за $0.84. А сам переходник пригодится на работе, а то Bolid’ы, стоимостью 1.5 тыс рублей, уходят как расходный материал.

Закупаем все необходимое

Во-первых, при ознакомлении с предметной областью предстоящей поделки, я наткнулся на статью Распознавание речи на STM32F4-Discovery . Там и прочитал про кодек Speex и его применение на микроконтроллерах. Признаюсь, это мой первый опыт работы с микроконтроллерами фирмы STM.

Итак, заказываем самую распространенную отладку с микроконтроллером STM32F103C8T6, к ней отладчик St-link v2, допиливаем его на коленке и уже можно жить. По приблизительным подсчетам ресурсов STM32F103C8T6 должно было хватить, но speex весьма прожорлив, да и сами драйвера HAL не такие уж компактные, в общем памяти для всех библиотек оказалось маловато. В конечном девайсе стоит STM32F103CBT6 с удвоенным количеством flash.

Во-вторых, нужен микрофон. Первой строчкой в поиске берем микрофонный модуль с усилителем max9812, а в довесок горстку более миниатюрных микрофонов типоразмера 6050 (ведь у нас уже есть корпус с отверстием, куда должен пролезть данный микрофон).

В-третьих, нужно подобрать модуль wi-fi, да такой, чтоб влез в купленный корпус. Выбор был сделан на миниатюрный ESP-03 с керамической антенной и несколько штук ESP-12 для макетирования.

Макетирование и программирование

В STM32CubeMX быстренько собираем необходимую периферию и идем дальше, в процессе работы все равно придется часто возвращаться к Кубу. Тут главное писать код в специально отведенных местах /* USER CODE */ и тогда новая генерация проекта никак не скажется на уже написанном.

Семплирование АЦП идет через DMA по триггеру таймера на частоте 8кГц в два кольцевых буфера размером 160 семплов, один буфер получается равен 20мс. Столкнулся с таким моментом, который не знал и потерял на этом время: DMA продолжает работать на брейкпоинте отладчика, при этом оба флага HT (половина передачи) и TC (передача закончена) установлены, а буферы заполнены всегда полностью.

С библиотекой Speex разобрался не сразу, контроллер постоянно вылетал в HardFault. Оказалось просто не хватало размеров стека и кучи. Нашел Application Note от Silicon Labs с описание необходимых ресурсов для кодирования/декодирования, в конце статьи есть ссылка. Установил значения с небольшим запасом CSTACK 0x800 и HEAP 0x1600. На выходе кодирования получаем размер фрейма 20 байт. Собираем их в пакеты для отправки.

Модуль Esp8266 за раз может принять не более 2048 байт данных. Формат команды отправки: POST-заголовок + данные. Размер пакета данных я ограничил до 1800 байт (90 фреймов по 20мс).

Прием данных сделал на PHP. Мне было стыдновато выкладывать код, тем более это мой первый опыт ООП в жизни. Прошу не хейтить, это не моя область, лучше научите как правильно. Суть скрипта в том, чтобы забрать данные из php://input, сформировать заголовок, посчитать необходимые контрольные суммы и сохранить все в файл Ogg (либо дописать старый, либо создать новый). Но у меня есть жуткое предчуствие, что принимать аудио через POST запросы очень глупо…

Вопрос к сообществу: что посоветуете для серверной части? В перспективе хочется получать стрим аудио в реальном времени. У меня лично есть небольшое желание познакомиться с Node.js.

Принципиальная схема и разводка печатной платы

Схему и разводку нарисовал в бесплатной версии Eagle CAD, благо размер платы небольшой. Вот они. Без комментариев.

Заказ плат

Платы заказал в американском OSH Park . Чем примечателен данный сервис, так это тем, что цена формируется от размера платы ($5 за квадратный дюйм), а доставка бесплатная. Ко всему прочему на сайт можно грузить сам файл.brd из Орла и есть предпросмотр, не надо перегонять в Gerber.

Получилось 3 платы за $3.35. Для макетного образца это выгоднее, чем переплачивать китайцам $15 за ненужные 10шт. До сих пор дома валяются горы ненужных плат от других проектов. Да к тому же пришло все это в фирменном пакете с конфетками внутри. Мелочь, а приятно. Трек номера не было, дошло за 40 дней с момента заказа. В производстве были 10 дней (с 29 декабря по 9 января, возможно праздники как-то сказались на сроках).

Качеством плат я остался доволен. Дорожки 8 mil. Переходные 13 mil. Платы пришли с золочением, слой маски относительно площадок везде ровный.

Сборка и настройка

Пока не понял в чем дело, но модуль Esp-03 практически не ловит сигнал, что странно в условиях наличия керамической антенны и расстояния до телефона (который на работе выступает в качестве раздающего wi-fi) в пределах полуметра, при этом модуль ощутимо греется. При поднесении телефона вплотную начинает обнаруживать сеть и подключается к ней. Заказывать новый или в чем может быть дело?

Дальнейшие планы

1. Доработать алгоритм VAD (Voice Activity Detection, запись при обнаружении звука) до более адекватного.
2. Проверить возможность воспроизведения звука на телефоне.
3. Сделать возможность настройки удаленно. Сейчас это реализовано путем ответа сервера (Settings=40,2000,10,), где задается чувствительность нынешнего алгоритма VAD (сигнал должен 40 раз превысить 2000 бубок) и длительность записи в секундах.

Итоговый вариант

Калькуляция
$2.03 - модуль ESP-03
$2.13 - микроконтроллер STM32F103CBT6
$0.39 - микрофоны типоразмера 6050
$1.12 - микрофонный модуль с MAX9812 и обвязкой
$0.84 - преобразователь USB-RS485 (корпус + usb type A male)
$0.50 - стабилизатор NCP3335A на 3.3V

Итого: $7.01 (~420 руб) на один девайс.

Цены могут отличаться в связи с последними событиями на Ali. В стоимости не учтены программатор и рассыпуха.

Спасибо за внимание!

Вопросы и предложения пишите в комментарии. Также допускается контакт или телеграмм, ник везде один.

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

Работает устройство очень просто - всего лишь нужно поставить карту памяти в определенное место на адаптере, а сам адаптер выполнен в виде юсб штекера который только нужно подключить к юсб порту ПК. Для нашей самодельной флешки под рукой нужно иметь именно такой адаптер с картой памяти от мобильного телефона и еще один штекер или соответствующий пластмассовый корпус для юсб.

Затем адаптер помещаем в кожух штекера и закрываем крышку и смотрим что у нас получилось.

Теперь это похоже на обрезанный юсб штекер, но никто даже не заподозрит, что там есть накопитель памяти! Теперь пришла очередь схематики. Проводов там 4, заранее снимаем небольшую часть изоляцию от проводов и залуживаем их. Далее берем пару новеньких деталей (лучше взять испорченные, но чтобы с виду были как новые) и паем их друг к другу. Тут конкретной схемы нет, паяйте что куда хотите, конструкция просто должна выглядеть как схема, она конечно работать не будет! Использовать можно конденсаторы, резисторы, полярные и неполярные конденсаторы и пару транзисторов, как известно некоторые флешки имеет сзади встроенный светодиодный индикатор, можно получить имитатор такого индикатора, чтобы наша самодельная флешка выглядела правдоподобно и не вызывала сомнения.

Для этого к статье прикреплена распаковка юсб гнезда и штекера, по боковым каналам подается питание которое нужно подключить к нашим проводам, затем собрать простейшую схему мигалки для одного светодиода, в таком случае у нас остаются еще два свободных провода к которым можно прицепить заранее изготовленную <блеф> схему накопителя памяти. Итак, подведем итоги - у нас получился довольно интересная конструкция, при подключении к usb порту компьютера светодиод начнет мигать и у посторонних он вызовет ощущение, что подключена флешка, но они удивятся больше когда компьютер будет уведомлять, что к нему подключен накопитель памяти! Да уж все станут верить что вы гений и попросят схему такой простейшей чудо флешки. Старайтесь сделать схему подключения деталей как можно запутанной, чтобы даже мастер на заподозрил в чем тут обман. Ну вот и все, подобные интересные вещицы можете увидеть в дальнейших статьях, до свидания друзья - Артур Касьян (АКА).