только 5й кмукам дороже простенького ведроидного смартфона с блюпупом. за 75$ (как сейчас на адафруите) так и носом покрутить можно. а чуть позже всё чаще будут появляться недорогие смарты с ble, это будет ещё приятней. на смарте можно было бы и картинку с камеры обрабатывать и кучу всего ещё (экран для морды/интерфейса, мобильный тырнет, вифи, в некоторых gps есть, динамики, микрофон и т.д.).
а смартфон можно использовать как мозги и камеру для робота? я чтото думал только как пульт можно ссылочки на реальные проеты где тоже самое что с камерой.... сделано на смарте... ?
вперед, назад, лево, право, поворот сервами пушки. повороты сервами манипулятора кнопка стрелять кнопка автоматически сделать шаг вперед, схватить клешней что подвернется и закинуть назад.
Как вариант - просто повесить ардуины в параллель на УАРТ, чтобы каждая отвечала только на свои команды. Однако сложные команды типа вашей последней, должны выполняться целиком на одной ардуине. Это очень тупое решение, но вполне может быть, что, как минимум на первое время, вам его хватит.
slom писал(а):а смартфон можно использовать как мозги и камеру для робота? я чтото думал только как пульт можно ссылочки на реальные проеты где тоже самое что с камерой.... сделано на смарте... ?
Добавлено спустя 21 минуту 43 секунды: порылся в инете, что то инфы совсем мало, а так чтобы кто то выложил свой проект с подробной схемой, скетчами и программами так нет совсем...
получил посылку с геймпадом. проверил, работает... у него свой блютус модуль, не требующий уарт, поэтому уарт на обеих ардуинах освобожден. насколько я понимаю через него можно проще наладить связь. может у кого то есть пример кода когда с одной ардуины принимают команды с пульта или джойстика, а потом передают их на другую дуню где уже срабатывают моторы и сервы.
int mass[4]; //здесь будем хранить значения для скоростей и направлений //mass[0] лев.напр. //mass[1] лев.скор. //mass[2] прав.напр. //mass[3] прав.скор.
dir_pwm(ps2x.Analog(PSS_RY),2); //обрабатываем правый джойстик digitalWrite(R_dir, mass[2]); analogWrite(R_pwm, mass[3]); }
void dir_pwm(int Y, int n){ //Подпрограмма для обработки значений джойстика if (Y == 128){ mass[n+1] = 0; } if (Y >128){ mass[n+1] = Y*2-255; mass[n] = 1; } if (Y <128){ mass[n+1] = 255-Y*2; mass[n] = 0; } }
в нем джойстик от плейстейшин подключен к ардуине и управляет 2мя сервами и моторами.
как сделать так чтобы эта ардуина пересылала сигнал на другую ардуину через уарт и к той уже крепились эти сервы и моторы....
Добавлено спустя 2 минуты 4 секунды: тоесть геймпад подключаем к 1й ардуине. 1ю ардуину подключаем ко 2й ардуине, к ней же подключаем сервы и моторы.
жмем кнопки на пульте, сигнал идет в1ю, там пересылается на 2ю и та уже управляет сервами и моторами... в теории все вроде просто, но как такой код должен выглядеть на практике?
получили данные с геймпада и отправляете в уарт. что значит как? для кого ссылку на офсайт давали? есть print, есть printf, есть write, можно напрямую с файловым потоком работать. берёте и отправляете. для получения данных там в классе куча ф-ий, берёте понравившиеся и получаете данные. или вам нужно на уровне кормления детей смесями? считываем данные с джойстика, смотрим, что изменилось. изменившиеся отсылаем в уарт. первый байт это идентификатор команды, следующий один или два это данные. или ещё кучей других вариантов, вангуя хотелки?
что за вредные и злобные люди в Донецке... менталитет у вас такой нехороший... недаром большинство беженцев что к нам переехало либо вообще не уживаюится и уезжают, либо делают это с большим трудом...
следуя вашей логике крымчане или не способны на элементарные умственные действия или настолько ленивы и разбалованы, что будут до посинения ждать по каждой мелочи разжёвываний. не дождётесь, я нормально к крымчанам отношусь и к вам в том числе. хохму "не уживаются" нужно будет знакомым рассказать, может пореже будут в гости вытягивать или выбраться погулять, просить электронику всякую настроить/починить, прекратят свои нелепые потуги за помошь деньги совать. если вы не поняли смысл нежелания возни с примерами, могу ещё раз повторить - зачастую единственный вариант более-менее нормально научиться это изучать азы (в данном случае как минимум языка) и самостоятельное решение простеньких задач. когда человек с наскоку не осилил, то это уже единственный вариант, который может уберечь от постоянного спотыкания на каждой простенькой задачке. для начала просто брать самоучители/задачники и сотнями решать предлагаемые там задачки. с каждой решенной задачкой понемногу будет вырабатываться способность создавать алгоритмы. от того, что всё время будете только копипастить кусочки кода будете только развивать навык копипаста. или вы эти элементарные вещи не поняли ещё со школы, когда пачками решали задачи по математике, физике, химии,...?