?

Log in

No account? Create an account

khdavid


Давид Худавердян


Previous Entry Share Flag Next Entry
Управляемая через блютус машинка.
khdavid
Сразу хочу оговорить, что я не являюсь специалистом ни в робототехнике, ни в электронике, ни в программировании, поэтому прошу простить подкованного в этих делах читателя за, может быть, наивность и небрежность письма. Я расскажу как я сделал машинку, которая управляется с мобильного телефона. Вы не найдете тут полной исчерпывающей инфоромации как это сделать. Но я надеюсь, что эта статья вдохновит человека, который мечтает соприкоснуться с миром электроники создать что-нибудь свое.
Моей целью было сделать машинку, которую можно управлять, круча в воздухе мобильным телефоном. Надо четко понимать, что сердцем проектов такого типа является микроконтроллер. Микроконтроллер - это что то типа процессора с памятью для программы. Грубо говоря, микроконтроллер - программируемая микросхемка, у которой есть несколько входов, на которые можно подавать напряжение от 0 до 5 вольт, и есть несколько выходов, на которые микроконтроллер согласно зашитой программе, и в зависимости от входных напряжений и шага программы может выдавать напряжение или 0 В, или 5 В. Вот так выглядит типичный микроконтроллер:



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



Вот, к примеру, ссылка для покупки arduino nano. Многое про ардуино я тут говорить не буду. Скажу лишь, что исчерпывающая информация об ардуино представлена на сайте arduino.cc и на его русскоязычной версии arduino.ru. Язык программирования очень похож на Си, а зашивать програмки надо через miniUSB-кабель.
Следующий шаг - это выбор машинки. Мне нужна была очень простая машинка: колеса да моторы, и чтобы крепить было все удобно. Я нашел прекрасное решение: ссылка, хотя я и не настаиваю на нем. Сгодится любая машинка с моторами.



Недостаток этой машинки в том, что там не поворачиваются влево-вправо передние колеса, поэтому во время езды надо использовать технику поворотов танков. Машинке чтобы повернуться, левые колеса должны крутиться в одну сторону, а правые в другую.
Следующий шаг немного нетривиальный. Дело в том, что, как я уже говорил, наш микроконтроллер может подавать на выходе напряжение 5 В, но не может пропускать через себя ток, достаточный для того чтобы крутить моторы. То есть этими 5 В нельзя питать моторы. Существует специальная микросхема (что-то типа транзистора), которая называется драйвером двигателей. На нее можно подавать с микроконтроллера "информационные"  5 В, а микросхема уже включает или выключает питание на моторах. Вот она: ссылка.



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




Вот, что получилось в собранном виде:




Для меня самая сложная часть проекта была написание приложения на телефоне. У меня на телефоне система android и я не имел ни малейшего представления как писать на нем приложения. Я совершенно не знал язык Java, на котором все это пишется. Мне очень сильно помог вот этот полуторачасовой видеоролик, где очень доступно, поэтапно показывается как написать простейшее приложение.

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



На экране есть большая кнопка запуска и выводятся проекции гравитационного поля на оси координат.
Вот, собственно, что из этого всего вышло: ссылка



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


  • 1
В программе eclipse. В видюшке, которую я упоминаю в тексте все хорошо показано, как писать простейшие приложения. Очень советую посмотреть, тогда все вопросы сами собой уйдут.

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

нет не получилось слушай помоги но не силён я в этом пожалуйста большую кнопку поставь там название запуск и цензур так как я должен буду показать это учителю и поиеняй мак адрес вот он мак блютуса на ардуино 00:12:06:05:91:74 прошу поменяй ну убей даже тогда не смогу это сделать и если не трдно можеш это залить куданибудь чтоб потом с телефона скачать это сразу на него

  • 1