Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Робототехника

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.12.2016, 14:32   #31
Paul_B
Member
 
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0
Paul_B is an unknown quantity at this point
По умолчанию Re: Робот объезжающий препятствия

Цитата:
Сообщение от Admin Посмотреть сообщение
Код приведен для всех, а в основном ни у кого нет энкодеров


Нужно, так как при таком развороте робот остается на том же месте


сторожевой таймер, от зависаний


переведите с английского
вращение в лево и вращение в право
или он же разворот на месте
Можно пояснить:
1. Что такое сторожевой таймер и где об этом почитать?
2 Тогда можно пояснить на пальцах каким именно способом вы выравниваете курс? Неужели полным торможением одно стороны или еще тем паче остановкой и вращением на месте?
3. Как с точки зрения вашего богатого опыта: управлять поворотами заданием градуса поворота или не стоит усложнять?

Последний раз редактировалось Paul_B; 06.12.2016 в 15:21.
Paul_B вне форума   Ответить с цитированием
Старый 06.12.2016, 17:56   #32
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Робот объезжающий препятствия

Цитата:
1. Что такое сторожевой таймер и где об этом почитать?
поиском: arduino wdt
Или в datasheet на контреллер

2-без всяких остановок, на ходу

3-если Вы планируете наделить робота автономной навигацией, то тогда следует высчитывать градус
Admin вне форума   Ответить с цитированием
Старый 06.12.2016, 21:33   #33
Paul_B
Member
 
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0
Paul_B is an unknown quantity at this point
По умолчанию Re: Робот объезжающий препятствия

Более оптимальный алгоритм поиска совпадений

Код:
//**************Поиск макс повторяющегося элемента в массиве ****************************
uint16_t find_similar(uint16_t *buf, uint8_t size_buff, uint8_t range) 
{
 uint8_t maxcomp=0; //счётчик максимального количества совпадений
 uint16_t mcn=0;	//максимально часто встречающийся элемент массива
 uint16_t comp;	//временная переменная
 uint8_t i,j,n; //счётчик совпадении
 uint8_t i_numb, i_mas[256]; // индекс интервала и показатель принадлежности к заданному интервалу отклонений

 range++;	//допустимое отклонение
for (i=0; i<256; i++) i_mas[i]=0; // задаем начальные нули. чтобы сэкономить можно задать static uint8_t i_mas[256]; 
i_numb=1; // задаем номер интервала. если измерение будет лежать в этом интервале, то в индексном массиве присваиваем этот номер
	
for (i=0; i<size_buff; i++) 
    if(i_mas[i]==0) // если элемент не попал ни в чей интервал
      {
        comp=buf[i];	//кладем элемент массива в comp
	n=0;	//счётчик совпадении
	for (j=i; j<size_buff; j++)	
            if(i_mas[j]==0) // если раньше этот элемент не попал в какой-то интервал, то его рассматриваем
              {  
                if (buf[j]>comp-range)
                   if(buf[j]<comp+range) {i_mas[j]=i_numb; n++;}
               }
		
        if (n > maxcomp) //если число повторов больше чем было найдено ранее
	    {
	      maxcomp=n; //сохраняем счетяик повторов
	      mcn=comp; //сохраняем повторяемый элемент
	    }
         i_numb++;	// тут в итоге будет количество непересекающихся интервалов измерений	
     }
 return mcn;
}

Последний раз редактировалось Paul_B; 06.12.2016 в 22:05.
Paul_B вне форума   Ответить с цитированием
Старый 06.12.2016, 21:34   #34
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Робот объезжающий препятствия

Для более читаемого вида кода, есть теги
PHP код:
... 
или
Код:
...
Знакомая функция.
Только не понятно в чем вопрос?
Admin вне форума   Ответить с цитированием
Старый 06.12.2016, 21:44   #35
Paul_B
Member
 
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0
Paul_B is an unknown quantity at this point
По умолчанию Re: Робот объезжающий препятствия

Цитата:
Сообщение от Admin Посмотреть сообщение
Знакомаю функция, она из библиотеки CyberLib
Да, меня просто покоробило 65536 проходов...
Paul_B вне форума   Ответить с цитированием
Старый 06.12.2016, 21:49   #36
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Робот объезжающий препятствия

В каком месте?
Admin вне форума   Ответить с цитированием
Старый 06.12.2016, 21:57   #37
Paul_B
Member
 
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0
Paul_B is an unknown quantity at this point
По умолчанию Re: Робот объезжающий препятствия

Цитата:
Сообщение от Admin Посмотреть сообщение
В каком месте?
Сорри size_buff 5
ПРосмотрел.((((

Думал это 256.((((

Последний раз редактировалось Paul_B; 06.12.2016 в 22:14.
Paul_B вне форума   Ответить с цитированием
Старый 06.12.2016, 22:16   #38
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Робот объезжающий препятствия

А как ты найдешь значения которые не совпали ни с чем?
Admin вне форума   Ответить с цитированием
Старый 06.12.2016, 22:21   #39
Paul_B
Member
 
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0
Paul_B is an unknown quantity at this point
По умолчанию Re: Робот объезжающий препятствия

Цитата:
Сообщение от Admin Посмотреть сообщение
А как ты найдешь значения которые не совпали ни с чем?
если они не совпали с предыдущими, то на этапе первого цикла у них будет i_mas[]=0 и в конце присвоится свой номер интервала, в котором будет только это значение.
Paul_B вне форума   Ответить с цитированием
Старый 06.12.2016, 22:22   #40
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Робот объезжающий препятствия

В начале кода в define

PHP код:
#define motors_init {D4_Out; D5_Out; D6_Out; D7_Out;}
#define robot_go {D4_Low; D5_High; D6_High; D7_Low;}
#define robot_back {D4_High; D5_Low; D6_Low; D7_High;}
#define robot_stop {D4_Low; D5_Low; D6_Low; D7_Low;}
#define robot_rotation_left {D4_Low; D5_High; D6_Low; D7_High;}
#define robot_rotation_right {D4_High; D5_Low; D6_High; D7_Low;} 
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 20:57. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика