роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: робот веник
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



тестовая модель только каркас и правый бампер иногда заедает плюс щётка на быструю руку


http://www.fayloobmennik.net/3242819
 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



фото
Прикреплено изображение
0110201310012.jpg

 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



А что это такое?
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



это аналог i-робота, с несколько урезаной функциональностью...
мне понравился.
 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



на видео продемонстрировано: http://www.fayloobmennik.net/3242819, я делал и вакуум на центробежном вентиляторе, но к сожалению аккумулятор слишком слаб Грустный
 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



код на Си





#define F_CPU 1000000UL // указываем частоту в герцах

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h> //Библиотека прерываний

int i, a;
a = 0;


void left() //реверсивный разворот влево
{
PORTC &= ~_BV(PC1); // установить "1" на линии 1 порта C
PORTC |= _BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
}

void right() //реверсивный разворот вправо
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "1" на линии 3 порта C
PORTC |= _BV(PC4); // установить "0" на линии 4 порта C
}

void back() //назад
{
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
}

void forward() //движение прямо
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
}

void conor() // //разворот при застревании в углу
{
if (a > 3)
{
back();
_delay_ms(2000);
right();
_delay_ms(1000);
a = 0;
}
}

void randomclean() //хаотичный режим уборки
{
forward();

if (!(PIND & (1<<PIND1))) // проверка левый бампер
{
a = a + 1; //проверка углов
back();
_delay_ms(500);
right();
_delay_ms(600);
}

conor();

if (!(PIND & (1<<PIND2))) // проверка правый бампер
{
a = a + 1; //проверка углов
back();
_delay_ms(500);
left();
_delay_ms(600);
}

_delay_ms(100);
}



int main(void) // начало основной программы
{
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы

PORTD = 0xff; // установить "1" на всех выводах порта D,

while (1)
{
for (i = 1; i <= 30; i++) // обнуление проверок на углы
{
randomclean();
}
a = 0;
}
}
 
 Top
Vladimir72 Post Id



Великий стратег


Сообщений всего: 193
Дата рег-ции: Май 2012  



#include <avr/interrupt.h> //Библиотека прерываний она не используется,
это что на будущее?
for (i = 1; i <= 30; i++) // обнуление проверок на углы?
(Добавление)
void right() //реверсивный разворот вправо
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "1" на линии 3 порта C
PORTC |= _BV(PC4); // установить "0" на линии 4 порта C
}

void forward() //движение прямо
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
}
здесь не понятно куда он едет прямо или направо ??
 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



for (i = 1; i <= 30; i++) // обнуление проверок на углы? - после повторения цикла 30раз (3сек так как задержка 100мс) переменная А приобретает значения 0 ф вот тут a = a + 1; //проверка углов она приобретает еденицу тоесть если в течении 3х сек зажимаются бампера больше 3х раз то отъезд назад и разворот (это сделано чтоб не долбилась в углах)


void right() //реверсивный разворот вправо - правое колесо вперёд а левое назад (разворачивается на месте) использован L293D под радиатором


void forward() //движение прямо - едет вперёд


позапутывал функциями чтобы в дальнейшем добавлять другие функции уборки и как приобрету кнопочки сделаю менюшку выбора программ
 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



изначально были ик бамперы но у меня много чёрных поверхностей и они не нашли применения это моё первое изделие включая код до сих пор не могу разобраться как работают датчики загрязнения и где вообще их найти((
(Добавление)
прошу прощения коментарии у функций движения я забыл поменять местами
Прикреплено изображение
091020131004.jpg

 
 Top
Vladimir72 Post Id



Великий стратег


Сообщений всего: 193
Дата рег-ции: Май 2012  



a=a+1; можно записать так a=a++;
a=a-1; a=a--;

(Отредактировано автором: 09 Октября, 2013 - 13:05:10)

 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



так же заметил что перфорированная монтажная лента из которой сделан каркас является очень хорошим и крепким вариантом для построения различных форм и крепежа всяких модулей (так и называется ПЕРФОРИРОВАННАЯ МОНТАЖНАЯ ЛЕНТА обычно продавцы слышат это названия и тычут скотч махая гривой и плечами) стоимость таковой у нас 50гривен за 20метров в рублях это где то 170
 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



Зеля, посмотри по этой ссылке:

http://myrobot.ru/forum/topic.ph...opic=452&p=7

Типа твоей монтажной ленты только попрочнее.
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



не штукатурные маячки они для жестких прямых "балок", монтажная лента она гибкая из нее гнуть можно и уголки и кольца...
специфический холивар образуется: штукатурка (с маячками) VS гипсокартон (с монтажной лентой).
 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



Согласен! Просто материала для построения роботов сейчас стало немеряно! Это хорошо.
Только строй!
 
 Top
Зеля Post Id


Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2013  



.

(Отредактировано автором: 04 Ноября, 2013 - 19:46:50)

 
 Top
Страниц (1): [1]
« Делимся опытом »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru