roboforum.ru

Технический форум по робототехнике.

Тележка с манипулятором и брандспойтом

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 03:49

Angel71, мож я неудачно сострил. У меня срабатывает только каждая 1/10-я шутка :)

Ну шо? Поможем бедному зверю?
Посмотрел код:
При вкл. питания выставляется "mode=0: I2C"
Потом идет проверка на сигнал с RC пультов, если сигнал есть, mode меняется на:
mode=1: Radio Control
И бибикает 3 раза двигателем. Т.к. у тебя нет RC приемника, контроллер продолжает проверку "Bluetooth module". На скорости 9600 выдается команда "AT". Если в ответ приходит "OK" (десятичные коды: 79 75), то считается что модуль установлен и происходит конфигурация модуля командами:
"AT+NAMET'REX"
"AT+PIN1234"

Вот это запоминаем...

Значит так, достал дуину на атмеге 168 (других свободных нет).
В ide выставил:
сервис\плата\что-то там с Atmega168
сервис\программатор\ "arduino as ISP"

Шутки ради поменял строку:
"Serial.print("AT+PIN1234");" на "Serial.print("AT+PIN1111");"
Нажал кнопку сохранить.
Нажал кнопку "проверить" (это откомпилить):
"Размер скетча в двоичном коде: 9 918 байт (из 14 336 байт максимум)"
Т.е. лезет в мою дуину168, ок.
Нажал кнопку "загрузить". Ждем секунд десять, пока кнопка не поменяет цвет с желтой на хз какой цвет :) Все залилось. Закрываем программу ide дуины. Запускаем терминалку на скорости 9600 и коннектимся к плате. Секунд через 10 прилетает текст: "AT". Быстро набираем большими буквами на английском "OK" и жмем enter. В ответ прилетает "AT+NAMET'REXAT+PIN1111" (с нашим измененным pin).
Резюме:
Блютус висит на компорте дуины, с платой можно общаться без модуля через терминалку (например крутить двигатели). Во время программирования дуины, модуль надо отключать, ибо он будет мешать программирования. Добейся этих результатов и поедем дальше...

Да, после просмотра последних 2-х стр: ты от батареек пытаешься крутить двигатели? :shock: Забудь, у тебя от таких просадок питания будет глючить все и вся. И ты никогда не поймешь что там творится. На время экскрементов :) отключай двигатели, ставь слаботочную нагрузку в виде лампочек и добивайся стабильных результатов по программированию платы из ide/ковырянию в терминалке (зажигать лампочки кодами). А потом только переходи на силовые упражнения.

Йа фсе... :)

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 09:09

Дмитрий спасибо что вникли в мою проблему и уделили столько времени :)

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

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

как вы правильно сказали программ разбита на модули мод0 мод 1 мод 2 мод 3...
так вот при переходе платы в какойто мод она издает число биков равное моду....
если блютус то должно быть 2!
а у меня изначально было 1 бип

об этом мне еще позавчера сказал америкос из чата поддержки этого продукта, спросил сколько бипов я слышу и сказал что при 1м бипе - нераб модуль блюткса.

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

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 10:50

slom писал(а):но от батареек оно хотя бы дергнутся должно, сами движки от них напрямую крутились, и я видел видео где от батареек хоть и медленно но ездит...

Если батарейки питают кардиостимулятор сердца и силовые моторы, как думаешь должно хотя бы дернутся? :) Так и тут. Двигатели стартонули, напряжение упало, микроконтроллер (читай - мозги) зависли. Вот ты раскомментировал DiagnosticMode, запустил, тест не заработал и пытаешься идти дальше. Тебя ничего не смущает??? Какой нафиг блютус? Добейся от теста корректной работы, это же специально сделано для раздробления сложных вопросов на более простые:
Код: Выделить всёРазвернуть
 //---------------------------------------- Diagnostic Mode ------------------------------------//
  //  This simple routine runs the motors forward / backward and brakes to test the "H" bridges  //
  //  Battery voltage, accelerometer data and motor current draw is displayed on serial monitor  //
  //             When LEDs are connected to servo outputs they will chase in sequence            //
  //---------------------------------------------------------------------------------------------//

Делай нормальное питание (аккумы), чтоб на Diagnostic Mode все нормально крутилось и не зависало.
slom писал(а):вобщем изменив прошивку я добился 2х бипов, блютус модуль выбран платой как мод2 но видимо я что то лишнее стер, команды не идут ))

Что мешает залить первоначальную прошивку? Пока есть страхи "ой, я что-то не то сделал" - дальше идти нет смысла. 2 бипа (судя по программе) означает что контроллер видит блютус (дал команду "AT", получил ответ "ОК"). Но дальше-то никто не знает что у тебя за программы. Можно долго гулять по граблям стека блютус. Тебе надо запустить этот блютус модуль отдельно от T'REXа, научится коннектится к нему.

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 11:00

Dmitry__ писал(а):Запускаем терминалку на скорости 9600 и коннектимся к плате. Секунд через 10 прилетает текст: "AT". Быстро набираем большими буквами на английском "OK" и жмем enter. В ответ прилетает "AT+NAMET'REXAT+PIN1111" (с нашим измененным pin).


у меня в обоих терминалках приходят корякули, предрпологнаю что со шрифтами что то или с каким то режимом ?

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 11:28

Вооооот. Это правильный вопрос :)
Возвращаясь к:
нажал конект
получил в верхнем окне
Код: Выделить всёРазвернуть
ATюярцfxxxшЂ<0>Ђ<0>ЂЂЂ
и плата пикнула

перевел считывалку в хекс формат(16 рич)
стало чтото более внятное :D

Код: Выделить всёРазвернуть
41 54 FE FF F0 F6 06 06 66 78 78 78 F8 80 00 80 00 80 80 80 



А ответ должен быть только:
Код: Выделить всёРазвернуть
ATfxxx

Если почесать репу, то можно предположить. что между "AT" и "fxxx" идет грязь. Кракозябры "юярц" с кодами "FE FF" как раз об этом и говорят :) Помеха по питанию запускает "старт бит", а потом считывается пустая линия: все "111111". имеем коды близкие к "ff, ef" и.т.д.
Вангую: или все очень плохо с питанием или на линии rs232 нет подтягивающих резисторов на "+5v", при этом сигналы линии rs232 с открытым коллектором. Гуглить "открытый коллектор", "Подтягивающий резистор"

Добавлено спустя 6 минут 17 секунд:
Да, после "AT" идет пауза около 5 секунд. Вот в этот момент контроллер и ждет "OK". И если нет "OK", то передается "f" и через паузу "xxx", получается "ATfxxx"

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 11:39

Dmitry__ писал(а):Делай нормальное питание (аккумы), чтоб на Diagnostic Mode все нормально крутилось и не зависало.



золотой вы человек! :friends:

вы были правы на 100%

достал я из бесперебойника акум на 12в 7000 емкости и подключил :D в режиме стандартной прошивки ничего не раб, блютус не раб, плата уходит в режим 1

в диагностическом режиме машина чуть из рук не выпрыгнула :crazy: :Yahoo!:
колеса быстро и мощно крутятся в режиме танкового разворота, если поставить на пол то телега вращается вначале в одну сторону делая поворот потом в обратную


значит все рабочее, осталось нашаманить код для блютуса :(

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 11:41

:) :beer:

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 11:48

вот тут https://www.sparkfun.com/products/12075

человек с ником Member #384877

написал

Well, I just got rid of the setup code for the BT device, and used the baudrate of my module in the Bluetooth.ino file (replace the BluetoothConfig function):

void BluetoothConfig() // This code intended for a DAGU bluetooth module - may not work with other brands
{
Serial.begin(115200);
mode=2;
}


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

так вот стандартный код:

Код: Выделить всёРазвернуть
void BluetoothConfig()                                         // This code intended for a DAGU bluetooth module - may not work with other brands
{
  long baud[]={9600,115200,57600,38400,19200,4800,2400,1200};  // try 9600 first as this is default setting then try other baud rates
  byte br=0,d;
  while(mode==0 && br<8)                                       // scan through different baud rates and attempt to configure bluetooth module
  {
    Serial.begin(baud[br]);                                    // enable T'REX serial at baud rate baud[br]
    Serial.print("AT");                                        // send "AT" to see if bluetooth module is connected
    delay(1500);                                               // wait for bluetooth module to respond
   
    if(Serial.available()>1)                                   // after 1 second the bluetooth module should respond
    {
      byte i=Serial.read();                                    // should be 79 "O"
      byte j=Serial.read();                                    // should be 75 "K"
      if(i==79 && j==75)                                       // if response is "OK" then cofigure bluetooth module
      {
        EmptyBuffer();                                         // clear buffer
        Serial.print("AT+NAMET'REX");                          // ensure name is set to "T'REX"
        delay(1500);                                           // wait for bluetooth module to respond
        EmptyBuffer();                                         // clear buffer
        Serial.print("AT+PIN1234");                            // ensure PIN is set to "1234"
        delay(1500);                                           // wait for bluetooth module to respond
        EmptyBuffer();                                         // clear buffer
        if(br!=0)                                              // if bluetooth baud rate was not 9600
        {
          Serial.print("AT+BAUD4");                            // set bluetooth baud rate to 9600
          delay(1500);                                         // wait for bluetooth module to respond
          EmptyBuffer();                                       // clear buffer
          Serial.end();                                        // close serial communications at current baud rate
          Serial.begin(9600);                                  // set T'REX controller serial communications to 9600
        }
        mode=2;                                                // bluetooth module successfully detected and configured - change to bluetooth mode
      }       
    }
    if(mode==0)                                                // bad response - bluetooth module not communicating at current baud rate
    {
      EmptyBuffer();
      Serial.end();                                            // close serial communications at this baud rate
      br++;                                                    // prepare to try next baud rate
    }
  }
}

void EmptyBuffer()
{
  byte b;
  while(Serial.available())                                    // empty buffer once response is received
  {
    b=Serial.read();
  }
}



если его переделать удалив все и оставив только:

void BluetoothConfig() // This code intended for a DAGU bluetooth module - may not work with other brands
{
Serial.begin(115200);
mode=2;
}


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

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

вот нужно както устранить проблему с игнором, проблема в распознании свой-чужой :)

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 12:37

slom писал(а):если его переделать удалив все и оставив только:

В этом коде ничего нет кроме установки скорости 115200. С чего он должен работать?
slom писал(а):а вот при стандартном коде все наоборот, инфа идет, диод мигает, терминал команды видит, но плата определяет блютус в режим 1, как будто его нет, хотя он есть и работает, его просто игнорят.

А тут наоборот все есть :) Вот и работает. Только фиг его знает, какой у тебя блютус модуль, прошит ли там PIN (это типа пароля доступа) или он игнорится, совпадает pin модуля с пином который пытается послать контроллер. Все эти вещи не связаны с TREX, я уже говорил, научись управлять этой блютуской с компа: подключи его к rs232 ttl и добейся ответов (смотреть в терминалке) от андроида.
У меня конечно тонны свободного времени, но и страниц уже много, не мог бы ты собрать все свое железо, блютуски в первом сообщении? :)

Добавлено спустя 7 минут 21 секунду:
А ты решил вопрос с кракозябрами в rs232?

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 16:01

Дмитрий может у вас есть скайп, было бы проще и быстрей по нему :)

насчет rs232 ttl не понял что это? и что за схему мне нужно собрать?

у меня сейчас вот что
Изображение

примотал изолентой к плате свинец на 12в и 7 ампер :D
причем все смотрится гармонично, черная телега, черный акум и черная изолента :P

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

Добавлено спустя 7 минут 2 секунды:
Dmitry__ писал(а):И бибикает 3 раза двигателем. Т.к. у тебя нет RC приемника, контроллер продолжает проверку "Bluetooth module". На скорости 9600 выдается команда "AT". Если в ответ приходит "OK" (десятичные коды: 79 75), то считается что модуль установлен и происходит конфигурация модуля командами:
"AT+NAMET'REX"
"AT+PIN1234"




подключил блютус и юсби одновременно, запустил терминал
перезагрузил, начало писать ATюярц[07][06]f я набрал ok ответило xxxшЂ[00]А[00]ААА

Добавлено спустя 25 минут 26 секунд:
только что пробовал, он все выполнял команды AT+NAMET'REX и с кодом и с сменой частоты, а сейчас чтото перестал ))

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 16:22

slom писал(а):Дмитрий может у вас есть скайп, было бы проще и быстрей по нему

Неа, нету, т.е. есть но давно не пользовался, т.к. линух (под чем я сижу) и скайп не совсем друзья, то и пошел он лесом :)
slom писал(а):насчет rs232 ttl не понял что это? и что за схему мне нужно собрать?

Это такая плата, которая позволяет подключать устройства с послед. интерфейсом к компу. Гуглить "юсб rs232 ttl конвертер".
slom писал(а):подключил блютус и юсби одновременно, запустил терминал
перезагрузил, начало писать ATюярц[07][06]f я набрал ok ответило xxxшЂ[00]А[00]ААА

Добавлено спустя 25 минут 26 секунд:
только что пробовал, он все выполнял команды AT+NAMET'REX и с кодом и с сменой частоты, а сейчас чтото перестал ))

Ты читал это? :shock:
http://roboforum.ru/forum35/topic14576-255.html#p313071

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 16:53

изменил в програме строчку

Код: Выделить всёРазвернуть
   Serial.print("Hello SLOM");                                        // send "AT" to see if bluetooth module is connected


теперь смотрю и радуюсь :D
Код: Выделить всёРазвернуть
Hello SLOMф[1C]щ  
пишу ок а он мне
Код: Выделить всёРазвернуть
¤эAяьяюА˜f[07]ЯаЯюЯ[00]˜Ь[06]ЬюЬжЬ[00]ЂxxxшxшxшxЂшЂx[00]ЂxЂxшЂш[00][00]ААА[00]А[00]АА[00]ААААА[00][00]А[00]АА[00][00]АА[00]ААЂ[00]АAT


я ему
PIN1234
а он мне фигу, хотя до этого писал OKsetpin странно.

Добавлено спустя 28 минут 48 секунд:
41 54 FE FF F0 F6 06 06 66 78 78 78 F8 80 00 80 00 80 80 80
код никак не воспринимает

Это такая плата, которая позволяет подключать устройства с послед. интерфейсом к компу. Гуглить "юсб rs232 ttl конвертер".


у меня такого нет

чтото явно в этом коне про блютус

почему если все "лишнее" удалить то он бикает 2 раза а если оставить то не бикает... плата почемуто игнорит блютус хотя он работает...

Re: Тележка с манипулятором и брандспойтом

Dmitry__ » 26 окт 2014, 16:56

ааааааааааауууууууууууууууууууууууууууууу, ты читаешь сообщения? :shock:
У тебя грязь идет, проверяй подтягивающий резистор на rs232.
http://roboforum.ru/forum35/topic14576-255.html#p313071

Re: Тележка с манипулятором и брандспойтом

slom » 26 окт 2014, 17:03

какй рс 232? нет у меня такого

где он тут?
Изображение

Re: Тележка с манипулятором и брандспойтом

Angel71 » 26 окт 2014, 17:48

уарт есть в квадратиках с кучей ножек, отот снизу слева + под теми 2-мя желтенькими выпирающими пофигеньками ака конденсаторами. +на плате на штырьках, как минимум оте снизу слева.


Rambler\'s Top100 Mail.ru counter