admin

Cxemcar - Android-Управление Машинкой По Bluetooth

59 сообщений в этой теме

admin    2 326

Представляю вам свой проект, предназначенный для повторения начинающими роботостроителям: Android-управление машинкой по Bluetooth при помощи акселерометра. Проект полностью Open Source, все исходники прикреплены внизу статей.

Видео работы:

Вводная статья на сайте

Проект под STM32

Проект под Arduino

Проект под .NET Micro Framework

Данный топик - тема поддержки проекта, т.к. по связи Android <-> МК возникает много вопросов, как правило по части ПО (Java).

Видео работы на другом шасси:

Изменено пользователем admin
Обновил
  • Одобряю 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Gigagerts    0

Интересное устройство, хочу собрать себе что-то похожее после НГ, только уместить всё это в корпус БТРа)

Попробовал установить приложение на Gigabayte GSmart 1315, выдало синтаксическую ошибку: "При синтаксическом анализе пакета возникла неполадка". Что может быть не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 326

Какая версия Android? Я все делал под 4.0.3, под меньшие версии протестировать нет устройства

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

admin    2 326

Должна быть версия Android не ниже 3.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 326

Вышла версия 1.2 (от 15.02.2013)

Изменения:

- дополнен класс cBluetooth на предмет установки соединения с устройством (полезно при отладке).

- изменения в классе Handler (исправлены все ошибки с static).

- реализован новый вид управления - "виртуальный руль".

Все исходники обновлены.

Видео работы режима "Виртуальный руль":

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
b1b    0

Должна быть версия Android не ниже 3.0

Здравствуйте! При установке android приложения на смартфон с версией 4.0.4 выдается следующая ошибка: Socket failed

f36e9713d55b.png

Поставил программу на планшет с версией 4.2 - ошибка иногда выскакивает при переключении режимов управления машинкой.

Изменено пользователем b1b

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimonyhic    6

Конечно идея ,и даже игрушки с управлением по bluetoh есть например вертолет i-helper управляется с iphone .так что идея полезная

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
avocado    0

почему нельзя поключить к 1 аккумулятору?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 326

При подключении к 1 аккумулятору из-за высоких бросков тока МК или блютуз могут сбоить. У меня при резком старте терялась связь к примеру

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
aitras    1 447

Было бы интересно, если в режиме "Вирт. руль" на экране планшета транслировалось видео с камеры впереди машинки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
avocado    0

может есть возможнось подключить VGA камеру к ардуино через дополнительный канал и апгрейднуть програму чтоб транслировалось видео икликом на смартфоне-планшете делалось фото

VGA камеру можно достать изстарого телефона

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
avocado    0

http://www.ebay.com/...984.m1423.l2649

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

3-х для работы l298n и 4-х паралельно подключенных (по 2) вибродвигателей?

вес 38 г без солнечных батарей

Изменено пользователем avocado

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
VAD3333    3

очень интересно!

а будет проект под PIC?

ардуино покупать надо, а PIC-и уже есть.ЛУТ меня не пугает. :bye:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snzh    0

Здравствуйте. Собираю по данной схеме устройство. Использую Arduino Uno и Bluetooth Shield v1.1 by Seeed Studio. После загрузки скетча в ардуино блютуз не определяется ни телефоном ни компьютером. Подскажите пожалуйста, в чем может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 326

С шилдами не сталкивался, поэтому не могу сказать. Если питание подано на шилд, то по идее его уже должен кто-то видеть

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snzh    0

С шилдами не сталкивался, поэтому не могу сказать. Если питание подано на шилд, то по идее его уже должен кто-то видеть

Со скетчами из статей "ардуино и bluetooth" "cxemCAR" шилд не работает(не обнаруживается другими устройствами). Нашел сайт, где описывается подключение шилда к uno. http://arduinobasics.blogspot.ru/2013/01/arduino-basics-bluetooth-tutorial.html . Там тоже есть скетч. Загрузил его, шилд начал обнаруживаться и коннектиться. В чем может быть разница между шилдом и модулем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 326

Попробуйте этот скетч:

int cnt = 0; // счетчик

void setup() {
 Serial.begin(9600); // инициализация порта
}

void loop() {
 cnt++;
 Serial.print("Hello BB from Arduino! Counter:"); // выводим надпись
 Serial.println(cnt); // выводим значение счетчика и переводим на новую строку
 delay(1000); // ждем 1 секунду
}

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

И посмотрите виден или нет модуль

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snzh    0

Загрузил, но с такой ошибкой "avrdude: stk500_getsync(): not in sync: resp=0x00". Ни смартфон ни компьютер не находят блютуз шилд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 326

Если такая ошибка, то значит не загрузил. Попробуй снять модуль и загрузить шилд. А потом обратно поставить модуль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: neon2k
      Доброго времени!

      Делаю часы на газоразрядных индикаторах, которые питаются от 180в. Сделал плату, которая получает на вход ШИМ 30кГц и 5в, а выдает 180в.

      На Arduino сгенерировать 30кГц получалось, однако сейчас необходимо это сделать на stm32. Есть знатоки?)

      Спасибо!
    • Автор: qwer qwer
      Требуется разработать блок управления сплит-системой с функцией обучения по ИК каналу через RS-485 интерфейс на базе МК STM32. Есть ТЗ и список команд управления. Разработка в 2 этапа: 1-разработка принципиальной электрической схемы с указанием элементов на основе структурной из ТЗ (можно в карандаше), 2-написание ПО для МК STM32 в соответствии с ТЗ и списком команд. Оплата поэтапно. Кому интересно - уточняйте детали и оценивайте стоимость работы.
      Блок управления по ИК каналу Описание.docx
      Команды MODBUS.xlsx
    • Автор: AronIIStone
      Добрый день
      Возникла ситуация: имеется ноутбук IBM ThinkPad t20 с запароленым Bios. Пароль никто не помнит, но он зашит в 24rf08. Его можно прочитать програмкой для считывания данной микросхемы, но для этого нужен программатор. Можно ли использовать в качестве такого программатора Ардуино, чтобы он вопринимался этой программой как надо, и если можно, то как нужно подключить их и какой скетч залить в ардуинку? 
      Саму программу выложу чуть позже, если необходимо - с мобильника сижу. 
      Спасибо 
    • Автор: Korchagin
      В наличии 2 штуки. Цена 1300 рублей за штуку. Новые в упаковке производителя.
    • Автор: myhhyk
      Всем здравствуйте. Захотелось считать,в целях саморазвития, информацию с чипа DS2430A и заодно освоить способ связи по однопроводной шине. Посмотрел даташит, много гуглил, вроде более менее понял.С чипом можно связаться по интерфейсу 1-wire. И я решил попробовать это провернуть с помощью ардуины. Написал скетч. Пока получается только считать сигнал присутствия ведомого на шине,а считать из памяти ничего не получается,выдаются одни единицы.Пробовал менять РОМ команды,начинать со старшего бита,младшего,всё равно ничего не получается .Нужна хэлпа, подскажите пожалуйста, где мог допустить ошибку в скетче. И еще если можно мб какую нибудь литературу.
      /*Подключить пин Мастера надо через полевой транзистор, чтобы отпускать линию было проще   для прерывания будет использоваться пин №2 на плате(0 по обозначению)   Подключаемся к DS2430A*/ unsigned long save;//переменная для хранения времени byte pinMas = 5;//пин мастера volatile byte pinRead = 6;// пин для чтения линии volatile boolean infa = 1;//пин для хранения состояния линии byte adr[256] = {};//массив для хранения данных int i; /***********************************************************/ void reader() //для записи состояния линии {   infa = digitalRead (pinRead);//  считвываем состояние линии } /***********************************************************/ void pulseReset() {   delayMicroseconds(480);//заряжаем линию, ждём 500 мкс   /*___________________________________________________________________*/   digitalWrite(pinMas, 0); //подаем 0, открываем полевик=опускаем линию на ноль   delayMicroseconds(480);//ждём 480 мкр   digitalWrite (pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   infa = 1;//чтобы в значение линии не сохранился ноль, когда линию дёргает ведущий   delayMicroseconds (15);//ждём переходный процесс 15 мкр   /*___________________________________________________________________*/   save = micros();   while (micros() - save < 240) {};//Здесь должно сработать прерывание и сохранение значения переменной   Serial.print("Presence = ");//выводим состояние линии, если ведомый опустит линию, то   Serial.println(infa);       //в infa запишется ноль } void comWr0()//передача нуля { digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль   delayMicroseconds(80);//ждём 80 мкc   digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   delayMicroseconds(20);//ждём переходный процесс 15 мкр } void comWr1()//передача единицы {   digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль на 2 мкс   delayMicroseconds(3);//ждём 3 мкc   digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   delayMicroseconds(90);//ждём переходный процесс 90 мкc } int comRead() {   digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль на 2 мкс   delayMicroseconds(2);//ждём 2 мкc   digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   delayMicroseconds(15);   infa = digitalRead(pinRead);//читаем линию   return infa;//возвращаем значение переменной infa   delayMicroseconds(48);//ждём переходный процесс 48 мкc } void setup() {   Serial.begin(9600);   attachInterrupt(0, reader, FALLING);   pinMode(pinMas, OUTPUT);   pinMode (pinRead, INPUT);   pulseReset();   /*******************************/   //comWr1(); comWr1(); comWr0(); comWr0(); comWr1(); comWr1(); comWr0(); comWr0();    comWr0(); comWr0(); comWr1(); comWr1(); comWr0(); comWr0(); comWr1(); comWr1();//SKIP ROM CCh с младшего бита   /*******************************/   comWr0(); comWr0(); comWr0(); comWr0(); comWr1(); comWr1(); comWr1(); comWr1();   //comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1();   //comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); //поcылаем AAh с младшего бита   /*******************************/   comWr0(); comWr0();  comWr0();  comWr0(); comWr0(); comWr0(); comWr0();  comWr0(); //посылаем адрес   for ( i = 0; i < 256; i++) //записываем значение состояний линии в массив   { comRead();     adr[i] = comRead();     /* Serial.print("Bit");       Serial.print(i);       Serial.print(" = ");       Serial.println(adr[i]);*/   }   for (i = 0; i < 256; i++) {     Serial.print("Bit");     Serial.print(i);     Serial.print(" = ");     Serial.println(adr[i]);   } } void loop() { }