Качественный usb кабель своими руками. Самодельная флешка

Расскажу о том, как я сделал свой беспроводной USB-адаптер повышенной точности для симулятора. USB-адаптер был опробован в Heli-X , FPVFreeRider и LiftOff и показал прекрасный результат, оправдал все мои ожидания!


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


Открываем файл Joystick.cpp внутри каталога...\Arduino\libraries\Joystick\src, находим строчку:

#define JOYSTICK_AXIS_MINIMUM -32767

и заменяем ее на:

#define JOYSTICK_AXIS_MINIMUM 0

Дело в том, что FPVFreeRider в Windows получает данные с джойстика в обход системы и никакая системная калибровка джойстика не нужна. Но тут есть маленький подвох. Симулятор FPVFreeRider понимает значения с осей джойстика в диапазоне от 0 до 32767, а системный джойстик может работать в диапазоне -32767 до 32767. Поэтому, если ваш джойстик может выдавать отрицательные значения, то у вас будут проблемы с его калибровкой в FPVFreeRider . Это касается только Windows, в других системах такой проблемы нет и ничего менять не надо.

Скачиваем код скетча , открываем его в среде Arduino и сразу же загружаем в USB-адаптер кнопкой "Загрузка". Все должно пройти без проблем и ошибок.


В общем, USB-адаптер уже может работать, но пока что не настроен. Надо определить максимальное, минимальное и центральное значения PPM-импульса, поступающего на вход адаптера с приемника или тренерского разъема. В передатчике все каналы должны быть выставлены +/-100% и убраны все триммеры в ноль. В Ubuntu значения можно получить, выполнив в консоли простую команду:

# cat /dev/ttyACM0

Для Windows придется установить бесплатную программу TeraTerm . Распаковываем и запускаем ttermpro.exe. Создаем новое соединение, выбираем виртуальный COM-порт, подтверждаем и видим на экране шесть колонок цифр. Это данные шести каналов, которые получает USB-адаптер со своего входа.


Шевелим стиками и смотрим на цифры. Надо определить и записать минимальное, максимальное и значение в центральном положении стика. Значения могут немного плыть на 1-4 единицы. Для минимального надо выбрать максимально минимальное. Для максимального минимально максимальное, для среднего - среднее. Например, у меня минимальное значение гуляет в диапазоне 2210-2214, значит беру 2214. Максимальное гуляет 3810-3812, беру 3810. Среднее гуляет 3011-3013, беру 3012.

Если все получилось, то в программе можно отключить вывод данных, поставив комментарий на следующую строку. Было:

#define SERIALOUT

// #define SERIALOUT

Подставляем полученные значения в переменные ниже.

#define MIN_PULSE_WIDTH 2214 // Minimal pulse
#define CENTER_PULSE_WIDTH 3012 // Middle pulse
#define MAX_PULSE_WIDTH 3810 // Maximal pulse

Если у вас Windows, то меняем значение переменной USB_STICK_MIN на ноль. Для других операционных систем оставляем как есть.

#define USB_STICK_MIN 0

Заливаем скетч в USB-адаптер и проверяем его работу. В Ubuntu это можно сделать в программе jstest-gtk. Если она не установлена, то ставим:

# sudo apt-get install jstest-gtk

В самой программе заходим в калибровку и сбрасываем значения кнопкой Raw Events.


Значения должны изменяться от -32767 до 32765. В около-нулевой зоне стика будет небольшой дребезг. Надо добиться того, чтобы эти значения гуляли как в положительную зону, так и в отрицательную. Придется подкорректировать переменные MIN_PULSE_WIDTH, CENTER_PULSE_WIDTH и MAX_PULSE_WIDTH несколько раз, чтобы добиться нужного результата. При этом не должно быть холостого хода стика в крайних положениях. Калибровку выполнять не надо, а еще лучше сохранить обнуленные значения командой:

# sudo jscal-store /dev/input/js0

В Windows проверку диапазона работы USB-адаптера можно выполнить с помощью программы Joystick Tester . Значения по осям должны изменяться от 32767 до 65535, а центр должен быть на значении 49150. Как я уже говорил, это сделано для того, чтобы FPVFreeRider смог нормально работать с USB-адаптером.


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

Переменная CENTER_PULSE_JITTER убирает дребезг в около-нулевой зоне стика. При нулевом значении фильтр не работает. Если не нравится наличие небольшого дребезга, то можно поставить значение от 5 до 10. Большие значения лучше не ставить, иначе потеряется чувствительность в около-нулевой зоне.

Переменная RC_CHANNELS_COUNT отвечает за количество входящих каналов. У меня с приемника идет восемь каналов, поэтому весь скетч сформирован именно под это число. Это можно изменить, но придется еще глубже залезать в дебри кода.

Следующая строка формирует собственно джойстик с заданными параметрами:

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 2, 0, true, true, true, true, true, true, false, false, false, false, false);

Третий параметр, там где стоит цифра 2, задает количество кнопок джойстика. Начиная с пятого параметра идет определение наличия осей. Шесть раз подряд true - это шесть осей USB-адаптера. Потом идет false - запрет оси. Всего можно задать 11 осей. Например, для USB-адаптера без кнопок и с четырьмя осями будет вот такая строка:

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 0, 0, true, true, true, true, false, false, false, false, false, false, false);

Переменная NEWFRAME_PULSE_WIDTH отвечает за определение паузы в микросекундах между PPM-пакетами. Лучше ее не изменять.

Следующий блок задает пороговые значения по осям:





Joystick.setRyAxisRange(USB_STICK_MIN, USB_STICK_MAX);
Joystick.setRzAxisRange(USB_STICK_MIN, USB_STICK_MAX);

Если осей меньше шести, то количество строк можно сократить. Для четырех осей будет так:

Joystick.setXAxisRange(USB_STICK_MIN, USB_STICK_MAX);
Joystick.setYAxisRange(USB_STICK_MIN, USB_STICK_MAX);
Joystick.setZAxisRange(USB_STICK_MIN, USB_STICK_MAX);
Joystick.setRxAxisRange(USB_STICK_MIN, USB_STICK_MAX);
В следующем блоке происходит преобразование полученных на входе значений в данные джойстика:





Joystick.setRyAxis(stickValue(rcValue));
Joystick.setRzAxis(stickValue(rcValue));
Joystick.setButton(0, rcValue > CENTER_PULSE_WIDTH);
Joystick.setButton(1, rcValue > CENTER_PULSE_WIDTH);

Последние две строки формируют значения кнопок. Первый параметр в этой строке - это номер кнопки. Нумерация идет с нуля. Если оставить четыре оси и убрать кнопки, то блок будет выглядеть так:

Joystick.setXAxis(stickValue(rcValue));
Joystick.setYAxis(stickValue(rcValue));
Joystick.setZAxis(stickValue(rcValue));
Joystick.setRxAxis(stickValue(rcValue));

Можно еще немного подчистить код, убирая лишние данные, но пусть это будет "домашним заданием" для желающих копнуть еще глубже:)

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

На следующем этапе попробую заставить работать USB-адаптер с приемником через шину S.BUS. Это должно еще больше поднять точность управления в симуляторе. Успешных тренировок!


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

Сегодня хочу представить вашему вниманию OTG – переходник.

Для начала хочу рассказать Вам что такое OTG? Это способ подключения к вашему планшету или телефону который поддерживает функцию OTG, принтер, флешку и даже жесткий диск. Еще это подключение называют - USB-host.

Также можно подключить клавиатуру или мышь к Вашему гаджету, если гаджет такую функцию поддерживает.

И так, для создания этого чудо кабеля, нам понадобится:
Старый удлинитель USB
Micro USB разъем (достать можно из обычного USB кабеля для вашего девайса)
Паяльник и паяльные принадлежности

И так, поехали, чтобы нам сделать такой кабель, нам будет необходимо соединить 4й контакт с 5м контактом разъема micro USB

Мы должны добраться до четвёртого контакта и соединить его перемычкой с проводом GND так как показано на картинке


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

Но это еще не всё, чтобы подключить к телефону или планшету жесткий диск, этого переходника нам будет недостаточно. Для подключения устройств у которых потребление больше чем 100мА, а именно 100мА может выдать порт вашего устройства, нам потребуется подключить к нашему OTG-кабелю дополнительное питания которого должно быть достаточно чтобы ваш жесткий диск заработал.

Вот схема такого переходника


Теперь пора приступить к сбору
Берем старый удлинитель USB и разрезаем его не сильно далеко от разъема 2.0, так как ток всего лишь 100мА, чтобы избежать больших потерь. Отрезаем приблизительно в том месте как показано на фото


После зачищаем наш провод



Я соединил каплей припоя 4 и 5 контакты.

Ну и вот весь наш кабель в сборе


Осталось только проверить работоспособность, берем планшет, вставляем «переходник» и вставляем в него флешку, все работает о чем нам говорит мигающий светодиод на флешке и планшет определяющий флешку.


Хороший кабель, с хорошим, прочным штекером для зарядки телефона подобрать в магазине крайне не просто. Зачастую, заявленное на упаковке качество товара не соответствует действительности. Если сам штекер micro usb, который подключается к разъёму Вашего телефона, или другого гаджета, выполнен из некачественной стали, он очень скоро разболтается, или погнётся, и будет неплотно сидеть в разъёме, вызвав тем самым сбои при зарядке аккумулятора. Или же перестанет передавать и принимать файлы с других устройств, например, с компьютера или флэш-накопителя. И очень неприятно, когда имеющийся у Вас кабель с хорошим штекером вдруг перестал работать по причине разрыва жил кабеля, возле этого самого штекера. Это случается от постоянных перегибов кабеля при использовании. Когда это произойдёт – вопрос времени. В зависимости от интенсивности использования. Можно пойти, и купить новый, а можно отремонтировать старый – это дело каждого индивидуальное. Лично мне, более по душе второй вариант. Не столько из-за суеты выбора и хождениям по салонам связи, сколько ради собственного интереса. Да и тратиться, опять же, не придётся... В общем, недавно мне принесла такой неисправный кабель дочь. Уж не знаю, что она с ним делала, но повреждён он оказался у оснований сразу обоих штекеров – usb, и micro usb.


Взялся я за это дело, ещё и потому, что этот кабель был "родной" от её телефона, который шёл в комплекте с телефоном, зарядкой и наушниками. Пользоваться другим она категорически отказалась, из-за боязни испортить телефон. И покупать оригинальный кабель тоже не захотела. Пришлось отдать ей свой (благо, у нас телефоны одинаковые), а себе ремонтировать сломанный. Работа заняла у меня около часа.

Понадобится

  • Паяльник, олово и флюс.
  • Ножницы.
  • Нож канцелярский.
  • Секундный клей.
  • Термоусадочная трубка (желательно под цвет кабеля).
  • Зажигалка.
  • Маленькие кусачки.

Ремонт кабеля

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


Далее, при помощи канцелярского ножа, разрезаем штекер по шву. У меня корпусы штекеров были спаянные по шву, по этому, мне пришлось повозиться. Но бывают штекеры с разборным корпусом – тут кому как повезёт. Тем не менее, проведя несколько раз новым лезвием канцелярского ножа по швам корпуса, я отделил его довольно легко и быстро. Сняв корпус, разбираем штекер на составляющие части.



Тут надо быть внимательным. В плане контактов штекера: к какому из них припаян какой провод. Чтобы не запутаться, можно помечать контакты разноцветными маркерами, в цвет проводов. Мне это ни к чему, я давно знаю раскладку usb наизусть... Вот на всякий случай:


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


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


Убедившись, что всё находится на своих местах, ничего и нигде не торчит, приклеиваем секундным клеем пластмассовый корпус к штекеру. Внимательно следим, чтобы клей не попал на контакты штекера.


Далее, надеваем на кабель (с другого конца) термоусадочную трубку, и усаживаем её зажигалкой. Ещё одно примечание: если Вы ремонтируете только один штекер, позаботьтесь о том, чтобы термотрубка оказалась надета на кабель раньше, чем Вы припаяете штекер к кабелю и приклеите корпус, иначе потом, придётся всё заново разбирать, чтобы исправить этот недосмотр. После усадки, трубка плотно обхватит кабель вместе с резиновым уплотнителем; получится почти монолитная оплётка, как раньше.



Теперь второй штекер – micro usb. Продеваем заранее термотрубку на кабель, чтобы потом не забыть. Разбираем штекер. Так же, как и предыдущий: при помощи канцелярского ножа.


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


Далее собираем штекер воедино, как и предыдущий.


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


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



В моём распоряжении были следующие коннекторы: 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 низкотемпературным термоклеем.



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

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

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

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в.

Поделиться: