Технический форум по робототехнике.
avr123.nm.ru » 01 ноя 2014, 18:34
Хорошие вопросы!
Duhas » 01 ноя 2014, 20:47
я бы посоветовал поставить отдельный мозг. а этому отдавать команды по УАРТу
slom » 01 ноя 2014, 22:50
Duhas писал(а):я бы посоветовал поставить отдельный мозг. а этому отдавать команды по УАРТу
отдельный мозг мне бы не помешал
slom » 03 ноя 2014, 12:25
ВСЕ РЕБЯТА!
можете меня поздравить с блютус модулем я разобрался!
вчера во время тестов в спешке немного не так воткнул, одной ногой промахнулся, а питание было включено и земля модуля пошла на + питания а контакт ТХД ушел на минус питания, с тех пор блютус модуль постоянно дает сигнал на плату(непрерывно горит зеленый светодиод) раньше он начинал мигать только при получении сигнала, похоже я сжег транзистор ключа
туда ему и дорога
теперь не хочу блютус, хочу ви фи или датчики чтобы само ездило и обходило препятствия, какие есть идеи?
avr123.nm.ru » 03 ноя 2014, 12:48
slom писал(а): какие есть идеи?
ИДЕЯ!!! отключайте питание при модификации системы.
slom » 03 ноя 2014, 12:49
глупая идея, слушался, досихпор бы тратил время на блютус, а так все сжег и забыл
что там следующее? ))))
avr123.nm.ru » 03 ноя 2014, 13:13
Очевидно 220 на питание TREX - и СВОБОДА!!!
slom » 04 ноя 2014, 10:48
нет легкой смерти он не дождется!
я как опытный инквизитор буду долго мучить эту шелезяку, кстати думали зря у меня такой ник....
вчера я с помощью короткого заклинания заставил дергаться в конвульсиях одну из серв
сегодня хочу купить УЗ датчик и попробовать сделать
http://robocraft.ru/blog/projects/817.html
slom » 05 ноя 2014, 00:45
попробовал подключить уз датчик, работает,
нашел и переделал простенький скетч, теперь телега едет вперед и на определенном расстоянии начинает поворот до потери препятствия и едет дальше.
правда еще не отработал расстояние, скетч изначально сделан под маленького робота а у меня большой, в общем то расстояние что было и задержка, мне не подошли, снес нафиг табуретку, еле остановил
если у кого есть примеры скетчей и роботов где уз вращают сервой на 180 град, кинте пожалуйста.
Angel71 » 05 ноя 2014, 01:48
два примера управления сервами есть в студии ардуины. они же и на офсайте есть. +есть интернет и поисковые системы.
slom » 05 ноя 2014, 10:56
вот такой скетч
- Код: Выделить всё • Развернуть
#include<Ultrasonic.h> /*включить установленную пользователем библиотеку*/
Ultrasonic ultrasonic(12,13); /*создать экземпляр УЗ датчика и определить выводы*/
#define DirM1 2
#define PwmM1 3
#define DirM2 10
#define PwmM2 11
#define BrakeM1 4
#define BrakeM2 9
void setup()
{
pinMode (PwmM1, OUTPUT);
pinMode (DirM1, OUTPUT);
pinMode (BrakeM1, OUTPUT);
pinMode (PwmM2, OUTPUT);
pinMode (DirM2, OUTPUT);
pinMode (BrakeM2, OUTPUT);
digitalWrite (BrakeM1, LOW);
digitalWrite (BrakeM2, LOW);
Serial.begin(9600); /*начать передачу данных на скорости 9600 bps */
}
// Хуйню сверху не трогай
void loop() {
Serial.print(ultrasonic.Ranging(INC)); /* INC для дюймов, CM для сантиметров */
Serial.println("in");
delay(100);
while(ultrasonic.Ranging(INC) < 20) {
rotateLeft();
delay(10);
}
goForward();
}
void goForward ()
{
Serial.println("GO-GO");
digitalWrite (DirM1, HIGH);
analogWrite (PwmM1, 50);
digitalWrite (DirM2, HIGH);
analogWrite (PwmM2, 50);
}
void rotateLeft ()
{
Serial.println("rotate");
digitalWrite (DirM1, HIGH);
analogWrite (PwmM1, 70);
digitalWrite (DirM2, LOW);
analogWrite (PwmM2, 70);
}
void startUp ()
{
}
собрал его из разных.
в теории все работает.
если препятствий нет то в мониторе порта идет текст GO-GO, GO-GO, GO-GO, GO-GO, GO-GO....
если в зону действия попал обект то rotate,rotate,rotate .....
это я специально вставил в код, чтобы проверить работу уз датчика.
на практике вначале колеса крутят вперед. при появлении препятствия они еще где то 3-5 сек крутят, при этом телега сносит препятствие и едет дальше... и только потом делает попытку развернуться.
поидее нет задержек, при обнаружении препятствия в мониторе сразу выскакивает rotate.... а вот колеса на деле не сразу уходят в этот режим, вопрос почему?
как к этому всему дописать сканирование сервой и выбор оптимального пути с откатом назад?
avr123.nm.ru » 05 ноя 2014, 14:05
Можно поставить 2 уз датчика и соответств. поворачивать налево или направо.
Попробуйте такой код
- Код: Выделить всё • Развернуть
#include<Ultrasonic.h> /*включить установленную пользователем библиотеку*/
Ultrasonic ultrasonic(12,13); /*создать экземпляр УЗ датчика и определить выводы*/
#define DirM1 2
#define PwmM1 3
#define DirM2 10
#define PwmM2 11
#define BrakeM1 4
#define BrakeM2 9
void setup()
{
pinMode (PwmM1, OUTPUT);
pinMode (DirM1, OUTPUT);
pinMode (BrakeM1, OUTPUT);
pinMode (PwmM2, OUTPUT);
pinMode (DirM2, OUTPUT);
pinMode (BrakeM2, OUTPUT);
digitalWrite (BrakeM1, LOW);
digitalWrite (BrakeM2, LOW);
Serial.begin(9600); /*начать передачу данных на скорости 9600 bps */
}
void loop() {
Serial.print(ultrasonic.Ranging(INC)); /* INC для дюймов, CM для сантиметров */
Serial.println(" inc ");
if(ultrasonic.Ranging(INC) < 20) {
rotateLeft();
}
else {
goForward();
}
delay(50);
}
void goForward ()
{
digitalWrite (DirM1, HIGH);
analogWrite (PwmM1, 40);
digitalWrite (DirM2, HIGH);
analogWrite (PwmM2, 40);
Serial.println("GO ");
}
void rotateLeft ()
{
digitalWrite (DirM1, HIGH);
analogWrite (PwmM1, 40);
digitalWrite (DirM2, LOW);
analogWrite (PwmM2, 40);
Serial.println("to left");
}
void startUp ()
{
}
slom » 05 ноя 2014, 15:03
я уже тоже думаю над вторым, телега широкая, а луч уз наверно узкий.
avr123.nm.ru ваш код работает более четко, но задержка всеравно есть.
я прикинул получается с момента появления препятствия до срабатывания колес на поворот проходит около 3х сек.
была мысль что тактовые импульсы идут слишком медленно, но реально при мониторинге через усби, от появления препятствия до команды разворот проходят доли сек...
в чем может быть причина?
если писать простой код где колеса крутят вперед а потом поворачивают, то все происходит очень быстро, рывками что аж телега подпрыгивает, а тут 3х секундная задержка между командами...
avr123.nm.ru » 05 ноя 2014, 16:38
Снимите видео чтоб была видна и телега и вывод сообщений на ПК в одном кадре, тогда будет ясно в чем дело.
Я не могу понять откуда там 3 сек берется.
Или телегу поднимите и навесу пусть работает а рукой имитируйте препятствие.
Еще поищите "алгоритм блуждание" - можно применить
slom » 05 ноя 2014, 17:11
сейчас ребенок спит, не могу жужжать, а то 6 моторов не хуже дрели работают
но постараюсь сегодня сделать.
возник еще вопрос а как задействовать энкодеры и акселерометр на плате. по идее энкодеры могут дать точный угол поворота телеги, а акселерометром можно отключать питание при резком столкновении, например если врезалась, то чтоб моторы не палить и не грести понапрасну, раз и выкл...