<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412262&amp;view=findpost&amp;p=3763393</guid>
        <pubDate>Sun, 11 Mar 2018 13:19:40 +0000</pubDate>
        <title>Bluetooth USB-hub</title>
        <link>https://forum.sources.ru/index.php?showtopic=412262&amp;view=findpost&amp;p=3763393</link>
        <description><![CDATA[altairus0820: Доброго времени суток.<br>
<br>
<strong class='tag-b'><em class='tag-i'><span class='tag-u'>Немного оффтопа:</span></em></strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">Прекрасное время – последний курс института. Диплом начинается. Просто восхитительно, когда при этом еще и особо не шаришь в теме своего диплома. В общем, к концу апреля мне нужно уже доделать эту работу хотя бы на процентов так 90, поэтому очень надеюсь на Вашу помощь в разборе материала. Я далее изложу задание и то, к чему я пока пришел. Хотелось бы не только ответы на вопросы получить, но и может какие-то комментарии или полезные ссылки, если таковые имеются.<br>
Заранее спасибо за помощь.</div></div><br>
<br>
<strong class='tag-b'><em class='tag-i'><span class='tag-u'>Задание:</span></em></strong><br>
Создание программного обеспечения для устройства и мобильника.<br>
Суть устройства проста это своего рода usb хаб, только с некоторыми особенностями. Это автономное устройство, которое через Bluetooth подключается к мобильнику и в приложении на телефоне производятся операции с файлами – удаление, перемещение, копирование.<br>
Данная задача актуально поскольку половина телефонов не поддерживают работу с usb накопителями, и поэтому создать некое универсальное устройство (в меру универсальное, не надо нам через него мышки, клавиатуры, жесткие диски и прочее подключать, только обычные флешки)<br>
<br>
<strong class='tag-b'><em class='tag-i'><span class='tag-u'>Некоторые дополнения к заданию (дополнительные условия):</span></em></strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">По условиям задачи мобильник на платформе android. Устройство на основе микроконтроллера семейства AVR. Принципиалки в данный момент нет, поскольку физическое исполнение проекта поручено другому человеку. Мне исключительно программная составляющая поручена.<br>
С товарищем ответственным за железо сошлись пока на том, что будем делать на AT90USB162, а для экспериментов и постепенного решения задач используем отладочную плату AVR USB 162. Также были куплены два обычных USB type А и Bluetooth модуль НС-06.</div></div><br>
<br>
<strong class='tag-b'><em class='tag-i'><span class='tag-u'>Мое понимание задачи:</span></em></strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">Есть устройство и мобильник. Соответственно нужно рассматривать две отдельные системы, которые через bluetooth будут взаимодействовать между собой.<br>
Система для устройства представляет собой переходник по своей сути от usb к bluetooth, поэтому в моем представлении ее можно разбить на три основные элемента:<br>
1.	«Ядро» программы<br>
2.	Модуль usb<br>
3.	Модуль bluetooth<br>
Соответственно модули позволяют производить инициализацию устройства, отключение, чтение данные поступающих с него, и отправку данных на него. И они в отличии от драйверов будут просто закомпилены вместе с условным ядром в цельную программу.<br>
Система для телефона представляет собой своеобразный файловый менеджер, который в моем представлении можно разбить на три составляющие:<br>
1.	Пользовательский интерфейс<br>
2.	«Ядро» программы<br>
3.	Модуль bluetooth, аналогичный тому, что будет на МК<br>
Для исправной работы всего этого комплекса необходимо, чтобы usb модуль соответствовал стандартам. А протокол общения по bluetooth можно выбрать любой (вплоть до разработки своего на коленке), главное, чтобы он был одинаков на обоих устройствах.</div></div><br>
<br>
<strong class='tag-b'><em class='tag-i'><span class='tag-u'>Основные вопросы на данном этапе разбитые по темам:</span></em></strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">1.	Правильно ли я понимаю саму структуру этого проекта? <br>
2.	Реализуемо ли это в принципе за данные сроки? Если нет, как можно упростить данную задачу? Учитывая, что я знаю только Си с щепоточкой С++, и имел небольшой опыт работы с МК на Си и ассемблере, думаю проблема не так велика, но хотелось бы узнать мнение людей, более просвещенных в данной области, если таковые читают этот длиннопост (попытаться договориться на счет упрощения думаю получится, если не урезать задачу в разы)<br>
3.	Для usb можно попытаться нашаманить что-то при помощи библиотеки v-usb. Это оптимальный вариант? Или есть какие-нибудь предложения получше? Если есть готов выслушать. Если нет, хотелось бы тогда узнать есть ли на русском полноценная о нем информация? (на английском много нашлось, но если возможно упрощение, я бы хотел им воспользоваться в любом случае :D) Или может быть лучше использовать встроенные в МК возможности использования USB? Если последний вариант лучше, то как это сделать? Мне не удалось понять. Особенно на отладочной плате, в которой нет возможности подключиться дополнительно к этим портам, но если купить отдельно МК, то возможно и получится. Как я понял USB у АТ90USB162 нужен только для программирования, но если я не прав, буду рад поправкам<br>
4.	Для bluetooth я нашел, что вроде протоколы общения есть, но они все разные для разных нужд, получается если я соберу полный набор команд, которые мне нужно передавать между телефоном и устройством я могу и сам составить свой, более приспособленный к моим навыкам программирования протокол общения?<br>
5.	Есть ли возможность писать программы на андроид на Си? Или тут только ява, только хардкор? (пока я ее не знаю, для меня это какая-то дичь, все через классы и объекты делать, это слишком мощно для меня, возможно именно поэтому я на С++ не перешел полноценно, а тут это похоже еще больше внедрено в структуру программирования)</div></div>]]></description>
        <author>altairus0820</author>
        <category>Микроконтроллеры</category>
      </item>
	
      </channel>
      </rss>
	