003. Работа над ошибками и неудачный эксперимент.

Итак, работа была проведена ещё вчера, но результаты опубликую сегодня- много работал, поэтому написать раньше не мог, да и устал как собака. Короче, таки добрался я до создания лайн-ран робота. А зря… И вот почему.

Помните Н-мосты? Спалил я их. Оба. В результате программных недочётов при смене направления вращения на доли секунды на оба входа каждого мостта поступили единицы и транзисторы встали в защёлку. Робот резко притормозил и испустил нежный синевато-серый дымок обоими мостами на смд-транзисторах. Тот неспешно поднялся, весело обогнув блестящую всеми цветами отражённого света платку контроллера и устремился ввысь, чтобы слиться с окружающим нас миром, но дуновение ветерка разрушило его гармонию света и тени, нанеся непоправимый вред моей психике. О чём это я? Ах, да, спалил транзисторы, сдул их феном и на платке контроллера снизу напаял такую схемку из двух ключей.

Прилепил на робота. Если это можно так назвать. Вот такая бредятина вышла. Уже мечтаю о том, как доберсь до лазерного принтера и ЛУТом сделаю нормальные платы.

Сразу скажу- помните статью о батарейке? ГУАНО полное- 10 минут и сдохла как муха под дихлофосом. Итого 10 руб/10 мин = 1руб/минута:). Но я не унывал и купил аккум литиевый на 3,7В, 500 мА*Ч, вот такой.

Собственно, цена вопроса всего 200 руб. Мне понравилось. Сразу же напаял на него разъёмчик, чтобы на PLS-штырьки можно было подключать. Рядом лежат два фототранзистора зыбыл каких. Вроде даже наши, в России сделаны. Их я взял на сдачу ещё давно, рублей по 12 они были. Всего два штуки, но для датчика линии вроде должно хватить. Отлично, надо же нагородить их на пластик основания моей монтажной платы-робота. Её я, кстати, к тому времени уже разобрал до вот такого состояния

Опоры сделал немного по-другому и подвесил моторчики на пластик от бутылки. В нормальном варианте будет латунь. Сверху сделал треугольную рамку и на неё парой капель термоклея притермоклеил аккум, напаял провода от моторчиков на разъём. Вот такой ужас получился.

Приляпал два фототранзистора, светодиод. Светодиод через резистор кинул на плюс. Написал простенькую прошивочку. Вот она
////////////////////////////////////////////////////////////////
////////////// пост 003 тестовая прошивка робота ///////////////
////////////////////////////////////////////////////////////////

	#define F_CPU 1000000UL  // указываем частоту в герцах   
	#include <avr/io.h>
	#include <util/delay.h>
 	#include <avr/interrupt.h>

	// Макросы для работы с портом B
	#define PinOut(portnum,bit) if (bit != 1) {do {PORTB &= ~(1 << portnum);}while(0); } else {do {PORTB |=  (1 << portnum); }while(0); } 
	int PinIn( int portnum) { if (PINB & (1<<portnum)) {return 1;} else {return 0;}}

volatile int run_ai = 0;
#define LEFT 2
#define RIGHT 0
#define LEFT_CHECK 3
#define RIGHT_CHECK 4

SIGNAL(INT0_vect)
{
run_ai = 1;

}

int main(void)
{
DDRB  = 0b00101; // Почти все выводы порта B сконфигурировать как выходы
PORTB = 0b11111;
GIMSK = 0b01000000;
sei(); // Разрешение прерываний.

while (run_ai != 1)
{
////////////////////////////////////
// Тупим в цикле в поисках истины и прерываний.
////////////////////////////////////
}




while (1)
{
////////////////////////////////////
PinOut(LEFT,PinIn(LEFT_CHECK));
PinOut(RIGHT,PinIn(RIGHT_CHECK));
////////////////////////////////////
}

}




При нажатии на кнопку робот начинает ехать. Сенсоры выглядят так.

В собранном виде весь этот пипец смотрится вот так.

А это- в темноте.

И сразу мои фейлы- помните мои бешеные моторы? Вот в лайн-ран они ни к чему явно. Робот может потерять линию, отключить один мотор и включить другой и… перевернуться набок. При полной потере линии робот просто останавливается как вкопанный и по инерции в большинстве случаев может сделать кувырок вперёд. При старте аж прыгает. Зато при установке на один из линилеумов с контрастным рисунком робот ведёт себя очень забавно. Итог- при таких скоростях роботу нужно иметь развитый датчик линии и программно иметь подруливание. Кстати, в том варианте, в котором робот сейчас, в принципе можно было обойтись парой транзисторов. :)
  • +4
  • 21 марта 2011, 00:00
  • sania_3

Комментарии (7)

RSS свернуть / развернуть
Миленько. Чем аккум заряжаешь и где купил?
Алсо, запили видео как оно катаеццо. Желательно на форсированных моторах)
0
  • avatar
  • Vga
  • 21 марта 2011, 00:20
ну хоть не ардуйня.
+2
+1 :)
Самодельное интересней
+1
Кстати, да. Самодельное интересней в принципе. Была бы возможность ещё и платы ЛУТить- было бы вообще прекрасно. Не было бы этих соплей.
0
помните мои бешеные моторы? Вот в лайн-ран они ни к чему явно. Робот может потерять линию, отключить один мотор и включить другой и… перевернуться набок.
Я тоже так думал и с моторчиками 600 об/мин, колёса 37 мм у меня лайнтрейсер не катался, всё время слетал с трасы и с дикой скоростью улетал куда-нибудь.
Помог ПИД алгоритм.
0
Адский девайс, таракан из Фукусимы, ночью в темноте увидишь усеришься)) Присоединяюсь по поводу ардуньки, лучше самодельное! +1
+1
А я, дабы не спалить свой Н-мост одновременной подачей сигналов Вперед и Назад, слепил элементарную защиту на логике К155ЛА3))) Зы. В откуда-то скачанной схеме моста была ошибка и при первом же включении у меня погорел транзистор с резистором. Тож жертвы были
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.