roboforum.ru

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

соединение 2х ардуин

Re: соединение 2х ардуин

Dmitry__ » 16 апр 2015, 01:09

slom, все новички проходят проверку angel-ом на робофоруме :D
Кста, скоро лето, надо мазать лыжи в Крым... :Yahoo!:
Мои мне уже все уши прожжжжжужжжжали, типа очень понравилось в Крыму, а я хотел зажать это лето на даче :cry:

Re: соединение 2х ардуин

Angel71 » 16 апр 2015, 01:10


Re: соединение 2х ардуин

ALS » 16 апр 2015, 01:37

slom, не проще ли сигнал с выхода БТ подать сразу на обе ардуины ?
И пусть каждая из них выцепляет из общего потока только ей предназначенные данные.

Re: соединение 2х ардуин

Angel71 » 16 апр 2015, 09:01

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

Re: соединение 2х ардуин

slom » 16 апр 2015, 10:50

Dmitry__ писал(а):slom, все новички проходят проверку angel-ом на робофоруме :D
Кста, скоро лето, надо мазать лыжи в Крым... :Yahoo!:
Мои мне уже все уши прожжжжжужжжжали, типа очень понравилось в Крыму, а я хотел зажать это лето на даче :cry:


да ангел - просто сатона адЦкий :D

вчера друг на тренировке сказал, надо бы на отдых куда то рвануть... :D
я ему, ну ну... все в Крым а крымчане из Крыма... :lol:

а вообще у нас конечно хорошо, но только не летом когда куча народу, еще больше машин.... но если вдруг соберетесь в СевастополЪ могу подсказать где море лучше и тд и тп... а то приедете и будите купаться на омеге :bad: :D



спасибо, мне это сильно поможет!
через года2-3 я стану мега программистом, сдую 5 сантиметровый слой пыли с робота и застаю его мне повиноваться... :D

ALS писал(а):slom, не проще ли сигнал с выхода БТ подать сразу на обе ардуины ?
И пусть каждая из них выцепляет из общего потока только ей предназначенные данные.



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

хотя по идее если соединить земли... и взять питание от одной из дуин... может провести эксперимент? по идее ведь ниче не сгорит? но с другой стороны это лишняя трата пинов.... на обоих ардуинах по 4 пина.... в сумме 8... расточительно, когда свободным остается уарт...


неужели никто никогда не соединял 2 ардуины? так чтоб на одной например датчики на другой моторы....

Re: соединение 2х ардуин

Dmitry__ » 16 апр 2015, 11:08

slom писал(а):а вообще у нас конечно хорошо, но только не летом когда куча народу, еще больше машин.... но если вдруг соберетесь в СевастополЪ могу подсказать где море лучше и тд и тп... а то приедете и будите купаться на омеге

Мы купались на серебряном пляже, до которых плыть надо на катере. Вообще Крым облазили весь, по 3-4 дня на каждом новом месте. Западный Крым - картинка с баунти :)

Если бы устроило одно место -Севастополь, то щаз бы тут была обьява:
Небольшая семья из 4-х человек готова писать программы для дуин за еду место под солнцем. :D

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

Тебе надо разделить управление дуинами так, чтоб одна дуина не отвечала блютуске. Тогда можно параллелить дуины. Т.е. тх от блютуски идет на 2 дуины, а на rx блютуски идет провод только от одной дуины.
А вообще можно и с rx/tx объединять, чуть сложнее, надо чтоб ответ от дуин был только при запросе с блютуски. А дуинам присвоить адреса, чтоб не отвечали не на свои сообщения.

Re: соединение 2х ардуин

slom » 16 апр 2015, 11:24

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

у меня не блютус в привычном виде а вот такая штука
http://robocontroller.ru/news/besprovod ... 3-10-19-32

Re: соединение 2х ардуин

Dmitry__ » 16 апр 2015, 11:37

slom писал(а):у меня не блютус в привычном виде а вот такая штука
http://robocontroller.ru/news/besprovod ... 3-10-19-32

Значит надо переделать этот протокол в rs232, а его уже кидать по дуинам. Вылезает 3-я дуина :D
Я делал переходник PlayStation -> rs232, правда не на дуинах, а на pic12f675.
Во, или 1-я дуина работает с приемником джойстика и передает по tx команды другой дуине, не оно?:
http://forum.amperka.ru/threads/arduino-playstation-joystick-serial-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-2-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8.4053/

Re: соединение 2х ардуин

Angel71 » 16 апр 2015, 12:17

slom, а вам больше нравиться общаться с людьми, потакающим постоянным хотелкам, доходящих до уровня "сделайте всё за меня"? или с теми, кто с фразой на подобии "дануна тратить время на людей с ветром в голове" просто оставляют вас на едине с вашими хотелками? :D ну удачи.
в самом начале вам писали, что нужно определиться, хотите программировать или собирать из "кубиков". решили из "кубиков", но взяли железо, предполагающее возню с программированием. или таки изначально решились на программирование, но как-то забыли об этом сообщить? :D ну и как следствие очень сомнительный выбор железа. о выборе самоучителей даже не заикнулись. про 2-3 года это вы загнули. :pardon: даже для тех, кому программирование трудно даётся, даже совмещая с реализацией хотелок, пол года-год для более-менее нормальных азов языка и немного опыта в составлении алгоритмов вполне достаточно. потом постепенно уже повышать уровень. пол года уже прошло и до вас не дошло, что ваш подход слегка себя не оправдал. хотите продолжать в таком духе, продолжайте.

Re: соединение 2х ардуин

avr123.nm.ru » 16 апр 2015, 12:25

может arduino mega 2560 попробовать? :D

Re: соединение 2х ардуин

slom » 16 апр 2015, 14:41

Dmitry__ писал(а):
slom писал(а):у меня не блютус в привычном виде а вот такая штука
http://robocontroller.ru/news/besprovod ... 3-10-19-32

Значит надо переделать этот протокол в rs232, а его уже кидать по дуинам. Вылезает 3-я дуина :D
Я делал переходник PlayStation -> rs232, правда не на дуинах, а на pic12f675.
Во, или 1-я дуина работает с приемником джойстика и передает по tx команды другой дуине, не оно?:
http://forum.amperka.ru/threads/arduino-playstation-joystick-serial-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-2-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8.4053/


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

почитал вдумчиво, много очень кода, не осилил :(

avr123.nm.ru писал(а):может arduino mega 2560 попробовать? :D


и как это решит проблему?
если у меня мотор шилд = ардуина :D у меня он сшит с дуней на одной плате.... и даже я куплю не мегу а гигу :lol: всеравно ее нужно будет както цеплять к тирекс контролеру, тобиш к ардуине...


вот майн схем...
Изображение

Re: соединение 2х ардуин

RootAdmin » 16 апр 2015, 17:35

А тут самое простое - SPI советовали уже? В чем проблема - не вижу, честно. Да хоть 1-wire протокол использовать можно. По одному пину на ардуину. Экономия!

Re: соединение 2х ардуин

Angel71 » 16 апр 2015, 19:35

в том, что пока не хочет тренирогать алгоритмитечкое мышление, без которого зазубривание конструкций языка пока приводит к неспособности писать самостоятельно даже простенький код на подобии
ry = ps2x.Analog(PSS_RY); if(_ry!=ry){_ry=ry;Serial.write(1), Serial.write(ry);}
rx = ps2x.Analog(PSS_RX); if(_rx!=rx){_rx=rx;Serial.write(2), Serial.write(rx);}
или так
rx = ps2x.Analog(PSS_RX); if(_rx!=rx){printf("rx %u", rx);}
и хотя бы прикрутить какую-нибудь библиотеку, на подобии arduinoserialcommand
:pardon: без очередного примера никак, а все бяки, один так вообще зло во плоти :D

Re: соединение 2х ардуин

slom » 16 апр 2015, 19:59

Angel71 писал(а):в том, что пока не хочет тренирогать алгоритмитечкое мышление, без которого зазубривание конструкций языка пока приводит к неспособности писать самостоятельно даже простенький код на подобии
ry = ps2x.Analog(PSS_RY); if(_ry!=ry){_ry=ry;Serial.write(1), Serial.write(ry);}
rx = ps2x.Analog(PSS_RX); if(_rx!=rx){_rx=rx;Serial.write(2), Serial.write(rx);}
или так
rx = ps2x.Analog(PSS_RX); if(_rx!=rx){printf("rx %u", rx);}
и хотя бы прикрутить какую-нибудь библиотеку, на подобии arduinoserialcommand
:pardon: без очередного примера никак, а все бяки, один так вообще зло во плоти :D



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

так что плохо быть таким богом программирования как ты... лучше буду ближе к людям 8)

Re: соединение 2х ардуин

Dmitry__ » 16 апр 2015, 20:29

slom писал(а):так у вас там вроде пульт проводной? а у меня беспроводной

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

slom, обещаешь всех тут напоить, если получится? Особенно angel-а? :D
Не, я знаю что программисты "3d max" сделаны из другого теста, но чтоб таааааак :)
Я себя переАсилил и заставил прочитать тему, есть вопросы:
Ты джой подключил к новой дуине, так? rs232 на этой дуине свободен, так? На основной дуине стоит блютуска, которую надо выкинуть и заменить на in rs232 от первой дуины. Чтоб не перелопачивать код, который крутится на основной дуине (который с моторами), надо генерировать этот протокол дуиной с джойстиком. Давай ссылку на этот протокол.

На новой дуине (который с джойстиком) надо отработать алгоритм работы джоя. Надо временно rs232 через плату rs232/usb подключить к компу. Далее, в программе, где происходит чтение джойстика, надо вставить "Serial.println" в соотв. ветки опроса джоя. Ссылок на скетчи дали кучу, они все подходят. Как и куда вставлять код, зависит от скетча. Например, твой код из:
http://roboforum.ru/forum86/topic15339-30.html#p326083
Хм, чо-то там слишком непонятно, хм. Почему "ps2x.read_gamepad" происходит после "LXservo.write"? Ну, понятно что в зацикленном коде все идет друг за другом, но как-то неправильно. И выложен какой-то маленький кусок, тебе страшно показать остальное? Или ты партизан и мы не должны знать больше?
Код: Выделить всёРазвернуть
void loop(){
  LXservo.write(map(ps2x.Analog(PSS_LX), 255, 0, 0, 180)); ;
delay(50);
  ps2x.read_gamepad(false, 0);
 
  LYservo.write(map(ps2x.Analog(PSS_LY), 0, 255, 0, 90)); ;
delay(50);
  ps2x.read_gamepad(false, 0);
 
 
    dir_pwm(ps2x.Analog(PSS_RY),2);   //обрабатываем правый джойстик
  digitalWrite(R_dir, mass[2]);
  analogWrite(R_pwm, mass[3]);
}   

А, понял, это стандартные библиотеки дуины. Но, блин, надо выкладывать код всех функций, я хз что в "ps2x.Analog(PSS_LX), 255, 0, 0, 180" и сам искать не хочу...
Ладн, пока забиваем на твой код, берем чужой, но полный, например этот:
https://github.com/onyxfish/loganbot/blob/master/lib/PS2X_lib/examples/PS2X_Example/PS2X_Example.ino
Очень понятный код, очень все красиво. А, нет :) Берем код, который ты упоминал (это я издеваюсь над способом мышления 3d max) :
http://robocontroller.ru/news/besprovodnoj_dzhojstik_ot_playstation_arduino/2013-10-19-32
Очень понятный код, очень все красиво, ой было уже :)
Там есть место:
Код: Выделить всёРазвернуть
    ps2x.read_gamepad(false, vibrate); //считывание данных с джойстика и установка скорости вибрации
   
    if(ps2x.Button(PSB_START))         //будет TRUE пока кнопка нажата
      Serial.println("Start is being held"); // Start нажат
    if(ps2x.Button(PSB_SELECT))
      Serial.println("Select is being held"); // Select нажат

    if(ps2x.Button(PSB_PAD_UP)) {      //будет TRUE пока кнопка нажата
      Serial.print("Up held this hard: "); // ВВЕРХ нажато, сила нажатия:
      Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC);
    }
    if(ps2x.Button(PSB_PAD_RIGHT)){
      Serial.print("Right held this hard: "); // ВПРАВО нажато, сила нажатия:
      Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC);
    }
    if(ps2x.Button(PSB_PAD_LEFT)){
      Serial.print("LEFT held this hard: "); // ВЛЕВО нажато, сила нажатия:
      Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC);
    }
    if(ps2x.Button(PSB_PAD_DOWN)){
      Serial.print("DOWN held this hard: "); // ВНИЗ нажато, сила нажатия:
      Serial.println(ps2x.Analog(PSAB_PAD_DOWN), DEC);
    }   

Вооот, прям наш случай, вот прямо заменить все эти англицкие выражения в "Serial.print()", типа заменить это "DOWN held this hard: " на это: "ВНИЗ нажато, сила нажатия:"

Как только у тебя будет отклик на все кнопки джоя и вывод в терминал понятного для тебя текста, так сразу можно начинать преобразовывать весь этот текст в протокол управления основной платой. Ну, ссылку на тот протокол ты нам таки дашь :)
А вспомнил (это я опять над 3d max), основная плата где-то была в описаниях, т.е. ее протокол мы сможем найти сами :)


Rambler\'s Top100 Mail.ru counter