Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2018, 16:04   #1
sbhx
Новичок
Джуниор
 
Регистрация: 11.03.2018
Сообщений: 1
По умолчанию bluetooth usb хаб

Доброго времени суток.

Немного оффтопа:
Прекрасное время – последний курс института. Диплом начинается. Просто восхитительно, когда при этом еще и особо не шаришь в теме своего диплома. В общем, к концу апреля мне нужно уже доделать эту работу хотя бы на процентов так 90, поэтому очень надеюсь на Вашу помощь в разборе материала. Я далее изложу задание и то, к чему я пока пришел. Хотелось бы не только ответы на вопросы получить, но и может какие-то комментарии или полезные ссылки, если таковые имеются.
Заранее спасибо за помощь.

Задание:
Создание программного обеспечения для устройства и мобильника.
Суть устройства проста это своего рода usb хаб, только с некоторыми особенностями. Это автономное устройство, которое через Bluetooth подключается к мобильнику и в приложении на телефоне производятся операции с файлами – удаление, перемещение, копирование.
Данная задача актуально поскольку половина телефонов не поддерживают работу с usb накопителями, и поэтому создать некое универсальное устройство (в меру универсальное, не надо нам через него мышки, клавиатуры, жесткие диски и прочее подключать, только обычные флешки)

Некоторые дополнения к заданию (дополнительные условия):
По условиям задачи мобильник на платформе android. Устройство на основе микроконтроллера семейства AVR. Принципиалки в данный момент нет, поскольку физическое исполнение проекта поручено другому человеку. Мне исключительно программная составляющая поручена.
С товарищем ответственным за железо сошлись пока на том, что будем делать на AT90USB162, а для экспериментов и постепенного решения задач используем отладочную плату AVR USB 162. Также были куплены два обычных USB type А и Bluetooth модуль НС-06.

Мое понимание задачи:
Есть устройство и мобильник. Соответственно нужно рассматривать две отдельные системы, которые через bluetooth будут взаимодействовать между собой.
Система для устройства представляет собой переходник по своей сути от usb к bluetooth, поэтому в моем представлении ее можно разбить на три основные элемента:
1. «Ядро» программы
2. Модуль usb
3. Модуль bluetooth
Соответственно модули позволяют производить инициализацию устройства, отключение, чтение данные поступающих с него, и отправку данных на него. И они в отличии от драйверов будут просто закомпилены вместе с условным ядром в цельную программу.
Система для телефона представляет собой своеобразный файловый менеджер, который в моем представлении можно разбить на три составляющие:
1. Пользовательский интерфейс
2. «Ядро» программы
3. Модуль bluetooth, аналогичный тому, что будет на МК
Для исправной работы всего этого комплекса необходимо, чтобы usb модуль соответствовал стандартам. А протокол общения по bluetooth можно выбрать любой (вплоть до разработки своего на коленке), главное, чтобы он был одинаков на обоих устройствах.

Основные вопросы на данном этапе разбитые по темам:
1. Правильно ли я понимаю саму структуру этого проекта?
2. Реализуемо ли это в принципе за данные сроки? Если нет, как можно упростить данную задачу? Учитывая, что я знаю только Си с щепоточкой С++, и имел небольшой опыт работы с МК на Си и ассемблере, думаю проблема не так велика, но хотелось бы узнать мнение людей, более просвещенных в данной области, если таковые читают этот длиннопост (попытаться договориться на счет упрощения думаю получится, если не урезать задачу в разы)
3. Для usb можно попытаться нашаманить что-то при помощи библиотеки v-usb. Это оптимальный вариант? Или есть какие-нибудь предложения получше? Если есть готов выслушать. Если нет, хотелось бы тогда узнать есть ли на русском полноценная о нем информация? (на английском много нашлось, но если возможно упрощение, я бы хотел им воспользоваться в любом случае :D) Или может быть лучше использовать встроенные в МК возможности использования USB? Если последний вариант лучше, то как это сделать? Мне не удалось понять. Особенно на отладочной плате, в которой нет возможности подключиться дополнительно к этим портам, но если купить отдельно МК, то возможно и получится. Как я понял USB у АТ90USB162 нужен только для программирования, но если я не прав, буду рад поправкам
4. Для bluetooth я нашел, что вроде протоколы общения есть, но они все разные для разных нужд, получается если я соберу полный набор команд, которые мне нужно передавать между телефоном и устройством я могу и сам составить свой, более приспособленный к моим навыкам программирования протокол общения?
5. Есть ли возможность писать программы на андроид на Си? Или тут только ява, только хардкор? (пока я ее не знаю, для меня это какая-то дичь, все через классы и объекты делать, это слишком мощно для меня, возможно именно поэтому я на С++ не перешел полноценно, а тут это похоже еще больше внедрено в структуру программирования)
sbhx вне форума Ответить с цитированием
Старый 20.03.2018, 14:39   #2
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Ха-ха-ха!!!!! Я сам делал подобное устройство на микроконтроллере AT90USB162 - хороший микроконтроллер всем рекомендую. Тут даже по-моему где тема есть на этом форуме, а вообще я все делал по статье - находится с полпинка. Там все расписано что и как надо делать.
Вот эта статья:
http://avr-start.ru/?p=3064
Только там опечатка, программа, в которой работаешь называется CVAVR - хорошая вещь.:D
Ответы на вопросы:
3)USB у этого микроконтроллера может использоваться и для программирования и для всего подряд. Чистый USB порт использовать очень сложно. Там используется виртуальный COM-порт, с ним легче.
5) Ну сейчас все на классах и объектах делается. Это мода времени и ничего с этим не поделаешь. Там все легко и не нужно этого боятся.
Объекты сейчас везде используются, но в микроконтроллерах их меньше всего - так что нормально.:D
Если будут какие-нибудь вопросы - обращайтесь. Желательно небесплатно.:D
По Bluetooth я не специалист, там по-моему какая-то микросхема используется и связь с ней по SPI интерфейсу. Может быть кто-нибудь здесь и подскажет.

Последний раз редактировалось Cuprum5; 20.03.2018 в 14:57.
Cuprum5 вне форума Ответить с цитированием
Старый 20.03.2018, 14:58   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от sbhx Посмотреть сообщение
1. Правильно ли я понимаю саму структуру этого проекта?
В первом приближение сойдет. Только где-то потерялся слой файловой системы.

Цитата:
Сообщение от sbhx Посмотреть сообщение
2. Реализуемо ли это в принципе за данные сроки?
Зависит от суммы. Кто знает может вы наймете людей на 20 часов в сутки.

Цитата:
Сообщение от sbhx Посмотреть сообщение
3. Для usb можно попытаться нашаманить что-то при помощи библиотеки v-usb. Это оптимальный вариант? Или есть какие-нибудь предложения получше?
Странно брать софтварную реализацию для медленного усб, когда у вас есть железная поддержка усб и надо работать с дисками.

Цитата:
Сообщение от sbhx Посмотреть сообщение
получается если я соберу полный набор команд, которые мне нужно передавать между телефоном и устройством я могу и сам составить свой, более приспособленный к моим навыкам программирования протокол общения?
Нк да. Можете даже rest поверх синегозуба организовать.

Цитата:
Сообщение от sbhx Посмотреть сообщение
5. Есть ли возможность писать программы на андроид на Си? Или тут только ява, только хардкор?
Теоретически есть, но если вам надо быстро и нет знаний, то лучше Java. И примеров побольше, и книжки есть, и интерфейс быстро наклепать можно.
p51x вне форума Ответить с цитированием
Старый 20.03.2018, 15:27   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

А, тут, UART - ну тогда тут вообще все легко:
http://mkprog.ru/avr/bluetooth-modul...-dlya-avr.html
SBHX, нарисуйте, пожалуйста структурную схему этого устройства, я что-то не совсем представляю как микроконтроллер будет общаться с винтом? И какие там вообще винты: IDE, SATA или по USB?
По поводу COM-порта: библиотека V-USB - по-моему, она и есть.:D
Железяка вообще будет делаться в дипломном проекте или ограничитесь теорией?
Cuprum5 вне форума Ответить с цитированием
Старый 20.03.2018, 15:33   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Cuprum5, что вы несете? У него USB и жесткие диски/флешки через него. А про либу с офф сайта:
Цитата:
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
распайка с usb на micro usb Terikon Компьютерное железо 5 07.02.2015 22:05
Возможно ли соединить 2 компа кабелем USB-USB? Ghost3 Компьютерное железо 21 06.08.2014 09:22
Bluetooth USB Dongle (БЮД) Black-Man1993 Софт 16 29.10.2010 14:33
комп-хаб-модем BaiAs Компьютерное железо 3 27.08.2010 07:57
BlueTooth subsonic Общие вопросы Delphi 4 24.07.2008 16:19