11.02.2016, 11:02 | #241 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Создаем робота своими руками
Тогда Вам нужно почитать про кватернионы
|
18.05.2016, 12:39 | #242 |
Junior Member
Регистрация: 12.05.2016
Сообщений: 1
Вес репутации: 0 |
Re: Создаем робота своими руками
Добрый день!
В первую очередь хочу поблагодарить участников и Админа этого форума за огромную работу и кучу полезной информации. Прошу помощи в решении следующего вопроса. Решил ребенку ко дню рождения сделать подарок своими руками. Заказал комплект деталей на сайте спонсора, включая материнскую плату. Не могу разобраться с распайкой необходимых элементов. С SMD конденсаторами по расположению все понятно. Вопрос - вот такие конденсаторы подойдут? 0.1мкФ X7R 20% 250В 2220, GA255DR7E2104M 0.1мкФ X7R 10% 1kВ 2220, GRM55DR73A104K С электролитами и резисторами все намного сложнее. Где-то на фото один электролит, где-то два, кто-то говорит о трех электролитах. Перелопатил все темы и окончательно запутался. Так и не нашел куда впаивать резистор 150 ом, о котором говорится в сообщении #92. В топике #162 человек говорит о двух 100 мкФ электролитах и одном 470 мкФ электролите, а на его фото стоят вроде два 47 мкФ электролита и один 100 мкФ. А куда ставить резистор 150 ом так и не нашел. Еще есть вопрос по резистору 240 ом для подключения оптопар tcst2103. Как его подключить на материнской плате? Сразу прошу прощения за возможно банальные вопросы. Помогите чайнику. Последний раз редактировалось yarvi; 18.05.2016 в 12:41. |
19.05.2016, 22:56 | #243 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Создаем робота своими руками
электролит с керамикой можно поставить всего по 1шт. на входе питания
Если глючить не будет , то остальные можно не припаивать Емкость электролитов это как про масло в каше, чем больше тем лучше Резистор для оптопар выделил синим цветом Цитата:
|
|
06.12.2016, 01:54 | #244 |
Member
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0 |
Re: Создаем робота своими руками
Хочу помимо УЗ датчика на перед поставить 4 ИК датчика расстояния на углы. На сколько это оправдано и необходимо?
Соответственно опрашивать их состояние по прерыванию Timer2 где-то каждые 250 миллисек. И ее вопрос - по системе поворотов, вернее ее логике. У Хейзермана в его книге было 16 возможных движений всего, включая 3 скорости (стоп, средняя и быстрая) и 2 поворота (крутой и плавный). Вот думаю - эелать такую же логику или повороты задавать по ситуации в градусах, опираясь на показания энкодеров (их разности на правом и левом колесах) и управляющей скорости на моторы? Я думаю, у вас в программе надо исправить - прерывания должны сниматься с экнодеров и в поворотах, только в поворотах не надо выравнивать движение. Последний раз редактировалось Paul_B; 06.12.2016 в 02:02. |
06.12.2016, 08:55 | #245 | ||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Создаем робота своими руками
Цитата:
Цитата:
|
||
06.12.2016, 10:22 | #246 | |
Member
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0 |
Re: Создаем робота своими руками
Цитата:
УЗ-датчик будет мерить длинные расстояния и робот будет замедлять ход, а уж решения о поворотах будут приниматься на основании ИК-датчиков. Поэтому их хочу 4 штуки на углы. Еще сть вопрос про логику поворотов, но о ней спрошу в теме синхронизации оборотов. Единственный вопрос - можно как-то управлять питанием этих ИК-датчиков, чтобы они не все время были включены (для экономии заряда), а включались при определенных ситуациях? Как вариант, повесить их на цифровой выход, но хватит ли его питания, чтобы тянуть 4 датчика? Есть ли блоки с большим КПД, позволяющие управлять питанием периферийных блоков? Последний раз редактировалось Paul_B; 06.12.2016 в 10:35. |
|
06.12.2016, 12:54 | #247 | ||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Создаем робота своими руками
Цитата:
Цитата:
|
||
06.12.2016, 14:22 | #248 | |
Member
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0 |
Re: Создаем робота своими руками
Цитата:
Купил такой, какой вы указали и еще такой: https://ru.aliexpress.com/item/5-pcs...608.0.0.o3n7O1 |
|
23.01.2017, 22:10 | #249 |
Junior Member
Регистрация: 14.09.2016
Сообщений: 3
Вес репутации: 0 |
Re: Создаем робота своими руками
Привет всем
Пришло вот такое чудо робот так вот все собрал И запустил чтоб по датчику hc-04 ездил Так вот скетч Код:
//www.elegoo.com //2016.09.12 #include <Servo.h> //servo library Servo myservo; // create servo object to control servo int Echo = A4; int Trig = A5; int in1 = 9; int in2 = 8; int in3 = 7; int in4 = 6; int ENA = 11; int ENB = 5; int ABS = 130; int rightDistance = 0,leftDistance = 0,middleDistance = 0 ; void _mForward() { analogWrite(ENA,ABS); analogWrite(ENB,ABS); digitalWrite(in1,LOW); digitalWrite(in2,HIGH); digitalWrite(in3,LOW); digitalWrite(in4,HIGH); Serial.println("go forward!"); } void _mBack() { analogWrite(ENA,ABS); analogWrite(ENB,ABS); digitalWrite(in1,HIGH); digitalWrite(in2,LOW); digitalWrite(in3,HIGH); digitalWrite(in4,LOW); Serial.println("go back!"); } void _mleft() { analogWrite(ENA,ABS); analogWrite(ENB,ABS); digitalWrite(in1,LOW); digitalWrite(in2,HIGH); digitalWrite(in3,HIGH); digitalWrite(in4,LOW); Serial.println("go left!"); } void _mright() { analogWrite(ENA,ABS); analogWrite(ENB,ABS); digitalWrite(in1,HIGH); digitalWrite(in2,LOW); digitalWrite(in3,LOW); digitalWrite(in4,HIGH); Serial.println("go right!"); } void _mStop() { digitalWrite(ENA,LOW); digitalWrite(ENB,LOW); Serial.println("Stop!"); } /*Ultrasonic distance measurement Sub function*/ int Distance_test() { digitalWrite(Trig, LOW); delayMicroseconds(2); digitalWrite(Trig, HIGH); delayMicroseconds(20); digitalWrite(Trig, LOW); float Fdistance = pulseIn(Echo, HIGH); Fdistance= Fdistance/58; return (int)Fdistance; } void setup() { myservo.attach(3);// attach servo on pin 3 to servo object Serial.begin(9600); pinMode(Echo, INPUT); pinMode(Trig, OUTPUT); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); pinMode(ENA,OUTPUT); pinMode(ENB,OUTPUT); _mStop(); } void loop() { myservo.write(90);//setservo position according to scaled value delay(500); middleDistance = Distance_test(); #ifdef send Serial.print("middleDistance="); Serial.println(middleDistance); #endif if(middleDistance<=20) { _mStop(); delay(500); myservo.write(5); delay(1000); rightDistance = Distance_test(); #ifdef send Serial.print("rightDistance="); Serial.println(rightDistance); #endif delay(500); myservo.write(90); delay(1000); myservo.write(180); delay(1000); leftDistance = Distance_test(); #ifdef send Serial.print("leftDistance="); Serial.println(leftDistance); #endif delay(500); myservo.write(90); delay(1000); if(rightDistance>leftDistance) { _mright(); delay(180); } else if(rightDistance<leftDistance) { _mleft(); delay(180); } else if((rightDistance<=20)||(leftDistance<=20)) { _mBack(); delay(180); } else { _mForward(); } } else _mForward(); } Может есть код для 4 моторов ?? ибо хочется чтоб нормально катался |
24.01.2017, 12:33 | #250 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Создаем робота своими руками
Измени переменную ABS на 255
|
Метки |
сделать робота дома, робот, робота свими руками, robot, как сделать робота, платформа для робота |
Здесь присутствуют: 12 (пользователей: 0 , гостей: 12) | |
|
|