![]() |
|
|
#241 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Тогда Вам нужно почитать про кватернионы
|
|
|
|
|
|
#242 |
|
Junior Member
Регистрация: 12.05.2016
Сообщений: 1
Вес репутации: 0 ![]() |
Добрый день!
В первую очередь хочу поблагодарить участников и Админа этого форума за огромную работу и кучу полезной информации. Прошу помощи в решении следующего вопроса. Решил ребенку ко дню рождения сделать подарок своими руками. Заказал комплект деталей на сайте спонсора, включая материнскую плату. Не могу разобраться с распайкой необходимых элементов. С 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. |
|
|
|
|
|
#243 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
электролит с керамикой можно поставить всего по 1шт. на входе питания
Если глючить не будет , то остальные можно не припаивать Емкость электролитов это как про масло в каше, чем больше тем лучше Резистор для оптопар выделил синим цветом Цитата:
|
|
|
|
|
|
|
#244 |
|
Member
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0 ![]() |
Хочу помимо УЗ датчика на перед поставить 4 ИК датчика расстояния на углы. На сколько это оправдано и необходимо?
Соответственно опрашивать их состояние по прерыванию Timer2 где-то каждые 250 миллисек. И ее вопрос - по системе поворотов, вернее ее логике. У Хейзермана в его книге было 16 возможных движений всего, включая 3 скорости (стоп, средняя и быстрая) и 2 поворота (крутой и плавный). Вот думаю - эелать такую же логику или повороты задавать по ситуации в градусах, опираясь на показания энкодеров (их разности на правом и левом колесах) и управляющей скорости на моторы? Я думаю, у вас в программе надо исправить - прерывания должны сниматься с экнодеров и в поворотах, только в поворотах не надо выравнивать движение. Последний раз редактировалось Paul_B; 06.12.2016 в 02:02. |
|
|
|
|
|
#245 | ||
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
|
||
|
|
|
|
|
#246 | |
|
Member
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0 ![]() |
Цитата:
УЗ-датчик будет мерить длинные расстояния и робот будет замедлять ход, а уж решения о поворотах будут приниматься на основании ИК-датчиков. Поэтому их хочу 4 штуки на углы. Еще сть вопрос про логику поворотов, но о ней спрошу в теме синхронизации оборотов. Единственный вопрос - можно как-то управлять питанием этих ИК-датчиков, чтобы они не все время были включены (для экономии заряда), а включались при определенных ситуациях? Как вариант, повесить их на цифровой выход, но хватит ли его питания, чтобы тянуть 4 датчика? Есть ли блоки с большим КПД, позволяющие управлять питанием периферийных блоков? Последний раз редактировалось Paul_B; 06.12.2016 в 10:35. |
|
|
|
|
|
|
#247 | ||
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
|
||
|
|
|
|
|
#248 | |
|
Member
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0 ![]() |
Цитата:
Купил такой, какой вы указали и еще такой: https://ru.aliexpress.com/item/5-pcs...608.0.0.o3n7O1 |
|
|
|
|
|
|
#249 |
|
Junior Member
Регистрация: 14.09.2016
Сообщений: 3
Вес репутации: 0 ![]() |
Привет всем
Пришло вот такое чудо робот так вот все собрал И запустил чтоб по датчику 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 моторов ?? ибо хочется чтоб нормально катался |
|
|
|
|
|
#250 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Измени переменную ABS на 255
|
|
|
|
![]() |
| Метки |
| сделать робота дома, робот, робота свими руками, robot, как сделать робота, платформа для робота |
| Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
|
|