Создаем робота в домашних условиях


    Наверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.


    Введение


    Итак. Что же такое робот? В большинстве случаев это автоматическое устройство, которое реагирует на какие-либо действия окружающей среды. Роботы могут управляться человеком или выполнять заранее запрограммированные действия. Обычно на роботе располагают разнообразные датчики (расстояния, угла поворота, ускорения), видеокамеры, манипуляторы. Электронная часть робота состоит из микроконтроллера (МК) – микросхема, в которую заключён процессор, тактовый генератор, различная периферия, оперативная и постоянная память. В мире существует огромное количество разнообразных микроконтроллеров для разных областей применения и на их основе можно собирать мощных роботов. Для любительских построек широкое применение нашли микроконтроллеры AVR. Они, на сегодняшний день, самые доступные и в интернете можно найти много примеров на основе этих МК. Чтобы работать с микроконтроллерами тебе нужно уметь программировать на ассемблере или на Cи и иметь начальные знания в цифровой и аналоговой электронике. В нашем проекте мы будем использовать Cи. Программирование для МК мало чем отличается от программирования на компьютере, синтаксис языка такой же, большинство функций практически ничем не отличаются, а новые довольно легко освоить и ими удобно пользоваться.

    Что нам нужно


    Для начала наш робот будет уметь просто объезжать препятствия, то есть повторять нормальное поведение большинства животных в природе. Всё что нам потребуется для постройки такого робота можно будет найти в радиотехнических магазинах. Решим, как наш робот будет передвигаться. Самым удачным я считаю гусеницы, которые применяются в танках, это наиболее удобное решение, потому что гусеницы имеют большую проходимость, чем колёса машины и ими удобнее управлять (для поворота достаточно вращать гусеницы в разные стороны). Поэтому тебе понадобится любой игрушечный танк, у которого гусеницы вращаются независимо друг от друга, такой можно купить в любом магазине игрушек по разумной цене. От этого танка тебе понадобится только платформа с гусеницами и моторы с редукторами, остальное ты можешь смело открутить и выкинуть. Так же нам потребуется микроконтроллер, мой выбор пал на ATmega16 – у него достаточно портов для подключения датчиков и периферии и вообще он довольно удобный. Ещё тебе потребуется закупить немного радиодеталей, паяльник, мультиметр.

    Делаем плату с МК



    Схема робота

    В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота. Правильное питание – залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L7805 – она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру. Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки.
    Теперь мы можем заняться нашим микроконтроллером. Корпус у МК — DIP (так удобнее паять) и имеет сорок выводов. На борту имеется АЦП, ШИМ, USART и много другого, что мы пока использовать не будем. Рассмотрим несколько важных узлов. Вывод RESET (9-ая нога МК) подтянут резистором R1 к «плюсу» источника питания – это нужно делать обязательно! Иначе твой МК может непреднамеренно сбрасываться или, проще говоря – глючить. Так же желательной мерой, но не обязательной является подключение RESET’а через керамический конденсатор C1 к «земле». На схеме ты так же можешь увидеть электролит на 1000 мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера. Кварцевый резонатор X1 и конденсаторы C2, C3 нужно располагать как можно ближе к выводам XTAL1 и XTAL2.
    О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Писать программу мы будем на Cи, в качестве среды программирования я выбрал CodeVisionAVR. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода.


    Плата моего робота

    Управление двигателями


    Не менее важным компонентом в нашем роботе является драйвер двигателей, который облегчает нам задачу в управлении им. Никогда и ни в коем случае нельзя подключать двигатели напрямую к МК! Вообще мощными нагрузками нельзя управлять с микроконтроллера напрямую, иначе он сгорит. Пользуйтесь ключевыми транзисторами. Для нашего случая есть специальная микросхема – L293D. В подобных несложных проектах всегда старайтесь использовать именно эту микросхему с индексом «D», так как она имеет встроенные диоды для защиты от перегрузок. Этой микросхемой очень легко управлять и её просто достать в радиотехнических магазинах. Она выпускается в двух корпусах DIP и SOIC. Мы будем использовать в корпусе DIP из-за удобства монтажа на плате. L293D имеет раздельное питание двигателей и логики. Поэтому саму микросхему мы будем питать от стабилизатора (вход VSS), а двигатели напрямую от аккумуляторов (вход VS). L293D выдерживает нагрузку 600 мА на каждый канал, а этих каналов у неё два, то есть к одной микросхеме можно подключить два двигателя. Но, чтобы перестраховаться, мы объединим каналы, и тогда потребуется по одной микре на каждый двигатель. Отсюда следует, что L293D сможет выдержать 1.2 А. Чтобы этого добиться нужно объединить ноги микры, как показано на схеме. Микросхема работает следующим образом: когда на IN1 и IN2 подаётся логический «0», а на IN3 и IN4 логическая единица, то двигатель вращается в одну сторону, а если инвертировать сигналы – подать логический ноль, тогда двигатель начнёт вращаться в другую сторону. Выводы EN1 и EN2 отвечают за включение каждого канала. Их мы соединяем и подключаем к «плюсу» питания от стабилизатора. Так как микросхема греется во время работы, а установка радиаторов проблематична на этот тип корпуса, то отвод тепла обеспечивается ногами GND — их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей.

    Датчики препятствий


    Чтобы наш робот мог ориентироваться и не врезался во всё, мы установим на него два инфракрасных датчика. Самый простейший датчик состоит из ик-диода, который излучает в инфракрасном спектре и фототранзистор, который будет принимать сигнал с ик-диода. Принцип такой: когда перед датчиком нет преграды, то ик-лучи не попадают на фототранзистор и он не открывается. Если перед датчиком препятствие, тогда лучи от него отражаются и попадают на транзистор – он открывается и начинает течь ток. Недостаток таких датчиков в том, что они могут по-разному реагировать на различные поверхности и не защищены от помех — от посторонних сигналов других устройств датчик, случайно, может сработать. От помех может защитить модулирование сигнала, но пока мы этим заморачиватся не будем. Для начала, и этого хватит.


    Первый вариант датчиков моего робота

    Прошивка робота


    Чтобы оживить робота, для него нужно написать прошивку, то есть программу, которая бы снимала показания с датчиков и управляла двигателями. Моя программа наиболее проста, она не содержит сложных конструкций и всем будет понятна. Следующие две строки подключают заголовочные файлы для нашего микроконтроллера и команды для формирования задержек:

    #include <mega16.h>
    #include <delay.h>


    Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:

    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 1;
    PORTC.3 = 0;


    Значение 0xFF означает, что на выходе будет лог. «1», а 0x00 – лог. «0».

    Следующей конструкцией мы проверяем, есть ли перед роботом препятствие и с какой оно стороны:

    if (!(PINB & (1<<PINB.0)))
    {
    ...
    }


    Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог. «0» и робот начинает движение назад, чтобы отъехать от препятствия, потом разворачивается, чтобы снова не столкнуться с преградой и затем опять едет вперёд. Так как у нас два датчика, то мы проверяем наличие преграды два раза – справа и слева и потому можем узнать с какой стороны препятствие. Команда «delay_ms(1000)» указывает на то, что пройдёт одна секунда, прежде чем начнёт выполняться следующая команда.

    Заключение


    Я рассмотрел большинство аспектов, которые помогут тебе собрать твоего первого робота. Но на этом робототехника не заканчивается. Если ты соберёшь этого робота, то у тебя появится куча возможностей для его расширения. Можно усовершенствовать алгоритм робота, как например, что делать, если препятствие не с какой-то стороны, а прямо перед роботом. Так же не помешает установить энкодер – простое устройство, которое поможет точно располагать и знать расположение твоего робота в пространстве. Для наглядности возможна установка цветного или монохромного дисплея, который может показывать полезную информацию – уровень заряда аккумулятора, расстояние до препятствия, различную отладочную информацию. Не помешает и усовершенствование датчиков – установка TSOP (это ик-приёмники, которые воспринимают сигнал только определённой частоты) вместо обычных фототранзисторов. Помимо инфракрасных датчиков существуют ультразвуковые, стоят подороже, и тоже не лишены недостатков, но в последнее время набирают популярность у роботостроителей. Для того, чтобы робот мог реагировать на звук, было бы неплохо установить микрофоны с усилителем. Но по-настоящему интересным, я считаю, установка камеры и программирование на её основе машинного зрения. Есть набор специальных библиотек OpenCV, с помощью которых можно запрограммировать распознавание лиц, движения по цветным маякам и много всего интересного. Всё зависит только от твоей фантазии и умений.

    Список компонентов:

    • ATmega16 в корпусе DIP-40>
    • L7805 в корпусе TO-220
    • L293D в корпусе DIP-16 х2 шт.
    • резисторы мощностью 0,25 Вт номиналами: 10 кОм х1 шт., 220 Ом х4 шт.
    • конденсаторы керамические: 0.1 мкФ, 1 мкФ, 22 пФ
    • конденсаторы электролитические: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт.
    • диод 1N4001 или 1N4004
    • кварцевый резонатор на 16 МГц
    • ИК-диоды: подойдут любые в количестве двух штук.
    • фототранзисторы, тоже любые, но реагирующие только на длину волны ик-лучей

    Код прошивки:

    /*****************************************************
    Прошивка для робота

    Тип МК : ATmega16
    Тактовая частота : 16,000000 MHz
    Если у тебя частота кварца другая, то это нужно указать в настройках среды:
    Project -> Configure -> Закладка "C Compiler"
    *****************************************************/

    #include <mega16.h>
    #include <delay.h>

    void main(void)
    {
    //Настраиваем порты на вход
    //Через эти порты мы получаем сигналы от датчиков
    DDRB=0x00;
    //Включаем подтягивающие резисторы
    PORTB=0xFF;

    //Настраиваем порты на выход
    //Через эти порты мы управляем двигателями
    DDRC=0xFF;

    //Главный цикл программы. Здесь мы считываем значения с датчиков
    //и управляем двигателями
    while (1)
    {
    //Едем вперёд
    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 1;
    PORTC.3 = 0;
    if (!(PINB & (1<<PINB.0))) // Проверяем правый датчик
    {
    //Едем назад 1 секунду
    PORTC.0 = 0;
    PORTC.1 = 1;
    PORTC.2 = 0;
    PORTC.3 = 1;
    delay_ms(1000);
    //Заворачиваем
    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 0;
    PORTC.3 = 1;
    delay_ms(1000);
    }
    if (!(PINB & (1<<PINB.1))) // Проверяем левый датчик
    {
    //Едем назад 1 секунду
    PORTC.0 = 0;
    PORTC.1 = 1;
    PORTC.2 = 0;
    PORTC.3 = 1;
    delay_ms(1000);
    //Заворачиваем
    PORTC.0 = 0;
    PORTC.1 = 1;
    PORTC.2 = 1;
    PORTC.3 = 0;
    delay_ms(1000);
    }
    };
    }


    О моём роботе


    В данный момент мой робот практически завершён.

    На нём установлена беспроводная камера, датчик расстояния (и камера и этот датчик установлены на поворотной башне), датчик препятствия, энкодер, приёмник сигналов с пульта и интерфейс RS-232 для соединения с компьютером. Работает в двух режимах: автономном и ручном (принимает сигналы управления с пульта ДУ), камера также может включаться/выключаться дистанционно или самим роботом для экономии заряда батарей. Пишу прошивку для охраны квартиры (передача изображения на компьютер, обнаружение движений, объезд помещения).

    По пожеланиям выкладываю видео:


    UPD. Перезалил фотографии и сделал небольшие поправки в тексте.

    Статья была опубликована мною в журнале «Хакер» за август 2009 года.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 125

      +6
      Перенесите в «Роботы».
        +3
        Как же я любил в детстве всякое такое мастерить…
        Только у меня по большей части получалось разобрать какую нибудь нужную вещь, и сделать из нее десяток ненужных.

        P.S. Автору сего творения уважуха и почет.
        • UFO just landed and posted this here
          0
          Статья супер. Но еще я думаю многим интересно было бы если рассказать про самые азы.
            0
            А что вы понимаете под «самыми азами»?)
              +2
              Например, как мне кажется простенькая задача: имея микроконтроллер, батарейку и светодиод, запрограммировать его на ключение диода по определенному алгоритму.Понимаю, что скучно, но я например, уверен что не смогу создать такого робота, даже по руководству. А какие нибудь мелочи — очень бы помогли понять принцип
        +4
        Статья интересная, но было бы очень здорово и интересно посмотреть ещё и видео
          +2
          Статья реально интересная! Добавил кармы, переносите в блог DIY или Сделай Сам.
            +1
            мда, робокомплекто лего теперь показались совсем «детскими» )))
              +4
              блииииин… я загорелся идеей его сделать)
                –3
                Уничтожить всех человеков!
                спасибо, и всетаки я решился на постройку своего робота, заказал все детали =)
                  0
                  Ну-ну!.. На одного робота станет больше!
                    –2
                    На n людей станет меньше, где n зависит от заказанных деталей?:)
                    • UFO just landed and posted this here
                        0
                        А может там уже роботы?! о_0
                  +1
                  То-то я пока читал было стойкое ощущение, что уже где-то видел эту статью. А потом увидел последнюю надпись :)
                    0
                    Однако, дежа вю Вас не подвело!
                      0
                      Статья в журнале была в некоторой степени изменена. То что на хабре — эксклюзив от автора)))
                      0
                      О, накидайте, пожалуйста, ссылок, на работу с камерой? Только я совсем-совсем начинающий:) Совсем недавно спаял программатор и прошил свою первую атмегу:)
                      Я как понял, камеры бывают аналоговые и цифровые. Мне бы как работать с цифровыми. Хочется процессить картинку прямо на мк.
                      Я пока просто даже в замешательстве в какую сторону гуглить. Видел в местном магазине например камеры для мобильников, но у них всего толи два толи три вывода, тоесть они аналоговые? Тогда где брать цифровые, и какие именно?

                      И еще, сильно интересно, как работать с LCD дисплеем(пока только сегментные индикаторы освоил). Я выпаял дисплейчек со старого радио, у него много ножек, и ничего на нем не написанно:) Как с ним работать на атмеге?
                        +1
                        Мега не справится с обработкой видео, как минимум нужна АRМ и то она не справится с реал-тайм. Я купил китайскую камеру с радио-ресивером, ресивер подключил к ноутбуку и принимаю изображение на него. Т.е. компьютерное зрение будет обрабатываться на компе и передавать сигналы перемещения роботу.
                        А для камеры юзай OpenCV.
                        По дисплеям: распространены LCD на контроллере HD44780, погугли, с ними несложно работать
                          0
                          Ясно, то-то я смотрю камера в корпусе:) Но всеравно странно, т.к. первое, что я нагуглил на «avr camera interface» — это пдфка с проектом на atmega16 и цифровой камере:
                          www.robozes.com/inaki/dproject/report.pdf
                          Но, C3088 я на чипдипе не нашел, а раз нет на чипдипе, то в моих местных радиомагазинах уж точно нету… Вот я и думал, может есть какое-то распространенное решение:) Мне сложный процессинг не нужен, это не для робота. Грубо говоря мне нужно что-то типа проверок «есть ли черный квадрат на белом фоне». Т.е. можно будет обойтись построчной обработкой, думаю атмеговской памяти на это хватит:)

                          Ну, идея с армом конечно тоже хорошая, но думаю для меня пока это сложновато будет… Там же, как я понимаю, кристал только производит вычисления, озу и флеш вынесены отдельно?

                          >распространены LCD на контроллере HD44780
                          Ясно. А как узнать, дисплей с этим контроллером или нет? Только эмперически — заработает, значит HD44780?:)
                            0
                            Камеры, как в том пдф заказать можно только за бугром и спасибо за файлик, довольно интересный материал.

                            АРМ, это тот же микроконтроллер, т.е. всё внутри.

                            >Ясно. А как узнать, дисплей с этим контроллером или нет? Только эмперически — заработает, значит HD44780?:)

                            Ну по даташитам смотреть, например дисплей от Hitachi так и называется HD44780 =)
                              0
                              Нда, плохо. Погуглил, $40 эта С3088 стоит, плюс ~$20 доставка выйдет…
                              Хотя, я тут все же подумал насчет камер от мобильников. Ведь там процессор то совсем слабенький, с оцифровкой аналогово видео точно не справится, значит эти камеры все-таки цифровые, но, раз выводов мало, с последовательным интерфейсом. (Просто в нашем радиомагазине целая полка на витрине ими завалена, и цены вполне бюджетные:)). Но насчет работы с этими камерами ничего нагуглить не могу…

                              Армом заинтриговался:) Будем гуглить на эту тему:) Я както смотрел конференцию про Ruby, там парни рассказывали про какой-то девайс, что-то типо траффико считалки для датацентров. Так сам девайс был на арме, притом там был поставлен uLinux, под которым запущен Ruby интерпретатор. Ну и вся софтварная часть была написанна на Ruby. Плюс еще видел пост на форуме, как парни делали корабль робота на каком-то мк, и тоже софт на Ruby. За $10000 предлагали тюнинговать интерпретатор под их цели:) Ошибка, чтоли какая-то была. Ну, я как фанат Ruby, записал в список своих мечт хардварный девайс под контролем Ruby:)
                              Но я думал, что арм это только процессор. А если это «все в одном»...:)
                              Только тогда я не понимаю, как туда линукс ставят? Разве можно разместить на одном кристале столько оперативки?(флешка то явно внешняя).

                              Насчет дисплея, тот который я выпаял — вобще ноунэйм, никакой маркировки. Не буду тогда мучится, схожу куплю экранчик.
                                0
                                АРМ штука суровая, сложнее, чем меги))) АРМ — это микроконтроллер, но чтобы поставить линукс, то естественно нужна внешняя переферия и это мощный арм, с большим количеством ног и сложнопаябелен дома. Мегу же тоже можно всякими флешами и ОЗУ обвешать, но линукс туда так и не поставить)
                                  0
                                  Нда, отложил мечту «Ruby on ARM» на дальнюю полочку:)
                                  Проще тогда уже nanoPC заюзать:)
                                    0
                                    ARM — это всего лишь ядро для множества SoC (System-on-Chip). На кристалле вся периферия и память. Линух на арме живет вполне себе неплохо :)
                                    www.hervanta.com/stuff/Beaglebot — пример арморобота с линухом на борту. Капчурит видео и распознает движение.
                                      0
                                      Просто ARM стал нарицательным термином для МК. Опять же смотря какой МК, тот, что в проекте по ссылке, то вы там частоту видели? :) 600 МГц и ОЗУ 128 Мб, и там не самоделка, а купленная отладочная плата, которая стоит 150$. Я за hand-made! =)
                                    0
                                    многие радиодетали, что вы не можете найти у себя в магазине вы практически всегда найдете на dealextreme.com с бесплатной доставкой на дом!!! :)
                                0
                                товарищь, вы гоните, арм еще как будет обрабатывать видео, даже HD, еще и жать его в h.264.
                                  0
                                  Вы в ARM разбираетесь? Те которые доступны, не смогут, а дорогие вы попробуйте припаять — они в BGA корпусах
                                    0
                                    может имеется ввиду сбоку к арму хардварный кодек припаять
                              +3
                              а у меня у одного картинки не показываются?
                                +2
                                Сделать второй, поставить пневмопушку (типа маркера для пэйнтбола), и вот уже Habrawars IRL
                                  0
                                  А где микроконтроллеры эти заказать посоветуете? А то у нас в Саратове, насколько я знаю, не продаются(
                                    +2
                                    ATMega/ATTiny точно везде продается. Покрайней мере, чуть ли не во всех иркутских магазинах они есть. А Иркутск намного удаленнее от Москвы чем Саратов:)
                                    • UFO just landed and posted this here
                                        0
                                        Да я вроде все эти магазины уже знаю)) по пальцам можно пересчитать)
                                        0
                                        freeduino.ru/arduino/index.html — если в России
                                        sparkfun.com/ — если из США (сам пользовался — там много вкусного — но доставка около 35$ — которая с трекингом и тп)
                                        0
                                        1. нет 0,1 между GND и VCC рядом с выводами контроллера.
                                        2. в цепи сброса большая емкость и сопротивление. надо 0,1 и 4,7К
                                        3. AVCC и REF соединить с VCC
                                          0
                                          4. фотодатчики включены неверно. Кажется схема получена методом тыка ). Включение фототранзистора должно быть либо по схеме ОЭ, либо ОК. По ОК коллекторы надо на VCC, а снимать сигнал с эмиттеров, нагруженных резистором (на схеме он у вас есть).
                                            0
                                            4. Опять же, почему неверно? У меня всё работает и если вы попробуете, то и у вас тоже заработает) В схеме всё впорядке, просто принцип снимаемого сигнала немного другой (посмотрите исходный код).
                                              +1
                                              1. а что непонятного? прописная истина, керамический конденсатор на 0,1 по питанию в непосредственной близости от выводов. допускаю что Атмел перестал это писать в даташитах…

                                              2. если они и советуют ставить 10К, то с ёмкостью 10n. зачем вам затягивать фронт сброса? ставьте 0,1

                                              3. на старые меги даташиты не правят. читайте на новые контроллеры. меньше глюков будет, если AVCC не будет висеть в воздухе. в последних камнях это жестко оговорено — все питающие выводы обязаны быть подключены для правильной работы контроллера.

                                              4. фототранзистор у вас нестандартно включен, как источник ЭДС. т.е. работа организована на паразитном явлении )) откройте какой-нибудь учебник по электронике. там лучше объяснят профессора как включают фототранзисторы.
                                                +1
                                                1. Собственно было непонятно, что значит 0,1. Так сразу и пишите, что это конденсатор, а не два логических уровня. :)
                                                2. Учту.
                                                3. А собственно конкретно в этом проекте глюков возникнуть не должно, если АЦП не включать и наводки на AVcc не должны влиять на программу.
                                                4. Поверьте, я знаю как стандартно включают фототранзисторы, но если бы все всё делали по учебникам, то прогресс бы застрял. Извините за пафос. :)
                                            0
                                            1. ??? Не понятно.
                                            2. Чем это обосновано? Даже даташит советует 10К
                                            3. Это справедливо только в том случае, если будет использоваться АЦП, и то AVCC и REF не подключаются напрямую к Vcc, нужно ставить между ними индуктивность
                                            0
                                            офигеть!

                                            p.s. по интеллекту — вроде моей кошки, только кошку нельзя перепрограммировать.
                                            • UFO just landed and posted this here
                                            • UFO just landed and posted this here
                                                +1
                                                Сначала прошивал через LPT порт, потом после апгрейда компа этот порт пропал и я паял кучу программаторов, но все они работали не так, как мне хотелось, в итоге я приобрёл фирменный AVRISP mkII:
                                                www.atmel.com/dyn/products/tools_card.asp?tool_id=3808
                                                Сейчас только им и прошиваю, очень доволен
                                                • UFO just landed and posted this here
                                                0
                                                Круто, такая детализация процеса радует. Вопрос — почему в самоделках практически всегда используют дешевые медленные микропроцессоры, понятно что функцию свои они выполняют но задела на будущее никакого.
                                                  +1
                                                  Ключевое слово — «дешёвые» :) Собственно задел на будущее в этом проекте не требуется и ведь функции нужные он выполняет. В скором времени я буду плотно разбираться с АRM контроллерами, только нужно придумать что-то действительно стОящее.
                                                    0
                                                    А нельзя на них построить некоторое подобие CELL'а, один контроллер рулит другими, а те выполняют определенные функции, как то кручение колесами/головой, ор в матюгальник, пугание кошки, угон тапков и прочее… ;)
                                                      0
                                                      Прошу прадон, разумеется, предыдущее было вопросом.
                                                    • UFO just landed and posted this here
                                                      +1
                                                      Как раз с августа хотел покупать хакер, но чего то протормозил. Спасибо что не дали упустить такой интересный материал.
                                                        0
                                                        Ага, то-то думаю где я видел эту статью… Хакер конечно.
                                                        0
                                                        Ксакеп не показатель, но статья интересная.
                                                          +2
                                                          Этому роботу бы сделать какую-то навигацию. Чтобы он составлял карту местности и хранил ее в памяти, чтобы потом не тыкаться в одни и те же препятствия.
                                                          Периодически карты обновлять (кстати, для этого можно сделать локатор на 360 градусов по тому же принципу).
                                                          Ну а дальше, по карте, рассчитывать идеальный путь. Задавать пункты А и Б и с минимальными препятствиями танкобот должен его достичь.

                                                          P.S. кстати, заметил что он и коврика боится. ))
                                                            0
                                                            Пока что не огромный и не человекоподобный, но уже почти боевой!
                                                              0
                                                              Ну вообще-то я имел ввиду, что действительно серьезная работа была проделана и первый результат очень впечатляет! Кто тут так сильно не любит боевых роботов?
                                                                0
                                                                Кто-то видимо просто не помнит вопрос, который был задан нашему экс-президенту =)
                                                              +1
                                                              Огромный респект! под впечатлением!
                                                              и никакой леговский робот русским не нужен ;)
                                                                +1
                                                                «Скайнет собственными руками» — версия 0.00000000001а!
                                                                Автор молодец!
                                                                • UFO just landed and posted this here
                                                                    0
                                                                    Это был небольшой глюк, прошивка совершенствуется=)
                                                                    0
                                                                    Ура, вот кто мне поможет с дипломом, я могу к вам обратиться за помощью?
                                                                      +2
                                                                      Пишите подробности в личку ;)
                                                                      0
                                                                      Автору респект, всё никак не мог заставить себя сесть за AVR, только PIC'ами баловался.
                                                                        0
                                                                        Отлично!
                                                                        вам бы обратную связь реализовать от гусениц к МК с помощью датчика Холла или оптического какого нибудь, сигнал с инфракрасников подать через АЦП — и отслеживая таким образом угол разворота корпуса танка и уровень сигнала с датчиков получится объезжать препятствие чуть ли не впритирку без лишних движений… обалдеть, аж сам загорелся, где там мой детский танк валялся… :)
                                                                        п.с. кстати… и двигателями управлять через ЦАП можно… сделать либо плавное либо 5-6 скоростей для простоты…
                                                                          +1
                                                                          Обратная связь есть, я в конце написал, что там стоит энкодер — счётчик оборотов. А двигателями можно управлять не ЦАПом, а немного другим — ШИМом :) Только тут это не нужно, потому что скорость и так не большая. Вот у меня робот был (сейчас разобранный лежит), размеров, где-то 6х5 см, так у него движки шустрые, что датчик поверхности не успевал обработать сигнал, когда робот к краю стола подъезжал, потому пришлось лепить на ШИМ:)
                                                                            0
                                                                            спасибо, учту про ШИМ. пойду-ка теорию АСУ в памяти восстанавливать, может решусь окончательно тоже на своего робота :))
                                                                            спасибо большое за статью :)
                                                                              0
                                                                              Пожалуйста! ;)
                                                                          –1
                                                                          хочу такого, только летающего
                                                                            +1
                                                                            и чтобы не шумел
                                                                              0
                                                                              и чтобы видео по CDMA
                                                                                –1
                                                                                и чтобы на бензине работал
                                                                                  +1
                                                                                  И чтобы ракетами стрелял
                                                                                    0
                                                                                    И фапотьку!
                                                                                  0
                                                                                  Да, шумит так, что предполагаемый нарушитель периметра (грабитель, например) убежит даже не рискнув проверить что это за зверь! :)
                                                                                –1
                                                                                myrobot.ru
                                                                                с толком и расстановкой
                                                                                  0
                                                                                  Возможно, но на том сайте прилично косяков в схеме, хотя принцип датчиков одинаковый.:)
                                                                                    0
                                                                                    минус, как я понимаю, за то, что я дал ссылку на подробный ресурс по домашнему роботостроению, а не стал кричать «как здорово»? Статья нормальная, но там целый сайт «про это». Впрочем мне все равно на кармодрочерство, просто доходит до абсурда.
                                                                                      0
                                                                                      А зачем сравнивать сайт и одну статью?:) Этот сайт хороший в том плане, что он даёт типовое решение, но не более того.
                                                                                    0
                                                                                    Молодец! Взял и сделал.
                                                                                    Как-то с одногруппником делал тоже танк, но идея было немного другая: мы хотели сделать бота, который сам бы проезжал определённое расстояние, объезжая преграды.
                                                                                    Использовали 2 микроконтроллера 16ю и 8ю мегу. 8я соеденина по SPI с 16ой и управляла моторами, а к 16 было подключено 3 ИК-датчика, и оставлены ноги ещё на дальнейшее расширение курсового.
                                                                                    Но после сдачи курсача проект к сожалению умер( была реализована только реакция на передний ик-датчик и повороты.

                                                                                    з.ы.: не останавливайся — продолжай улучшать своё творение! )
                                                                                      0
                                                                                      Вы воплощаете мои детские мечты в жизнь!

                                                                                      P.S. Киборги! Они заполонили планету! Они киборги! Они заполонили!
                                                                                        0
                                                                                        Сигнал с камеры используется для логики робота или просто так, чтобы транслировать/записывать?
                                                                                          0
                                                                                          Сначала изображение транслировалось просто на комп, сейчас работаю над компьютерным зрением, то есть картинка обрабатывается на ПК и дистанционно передаёт команды роботу
                                                                                          0
                                                                                          А если управляющей штукой сделать смартфон? Там как бы все в комплекте: и камера, и вафель, и любой ЯП. Или идея заведомо плохая?
                                                                                            0
                                                                                            Да делают такие вещи и со смартфонами и с КПК, но я не хочу гробить такие девайсы:)
                                                                                              0
                                                                                              А зачем гробить? Никак разве с портом замутить нельзя?
                                                                                                0
                                                                                                Не все поддерживают интерфейсы с которыми можно нормально работать
                                                                                            0
                                                                                            Пойду, куплю детали и сварганю несколько таких для своего секретного подземного бункера… Приделаю к ним пулемёты, и шпионы не пройдут… *здесь следует смех безумного учёного*
                                                                                              0
                                                                                              PORTC.0 = 0xFF;
                                                                                              PORTC.1 = 0x00;
                                                                                              PORTC.2 = 0xFF;
                                                                                              PORTC.3 = 0x00;

                                                                                              WTF????
                                                                                                0
                                                                                                Ди, что не так?)
                                                                                                  0
                                                                                                  Ты в _бит_ пытаешься записать 8 байт. Как компилятор это пропустил ваще. Я был лучшего мнения о CVAVR
                                                                                                    0
                                                                                                    *8бит
                                                                                                      0
                                                                                                      Знаю, что запись некорректна, но, действительно, CAVR допускает такое написание. В некоторых случаях это даже понятнее)))
                                                                                                0
                                                                                                Надо дописать что бы робот разгонялся и втыкался в розетку для подзарядки сам)))
                                                                                                  0
                                                                                                  Делал подобное, чтобы робот ездил за мной, над док-станцией тоже думал)
                                                                                                  0
                                                                                                  Знакомое шасси. :-)
                                                                                                    0
                                                                                                    Почему я так часто это слышу?)
                                                                                                    0
                                                                                                    Хорошая статья. Только одно коробит: «заворачиваем».
                                                                                                      0
                                                                                                      Я когда публиковал эту статью сюда, меня почему то это тоже смутило, хотя сначала об этом не думал. Решил оставить как есть
                                                                                                      0
                                                                                                      спасибо!
                                                                                                      очень интересно написано!
                                                                                                      не планируется дальнейший апгрейд?
                                                                                                      что-то вроде этого:
                                                                                                      www.jbprojects.net/projects/wifirobot/
                                                                                                        0
                                                                                                        Можно ссылочку на распайку простого LPT-программатора для ATmega16?
                                                                                                          0
                                                                                                          forum.cxem.net/index.php?showtopic=21457
                                                                                                          пойдет из 3 поста?
                                                                                                            +1
                                                                                                            Подойдёт, только между LPT портом и ножками микросхемы нужно поставить резисторы номиналами 150 Ом
                                                                                                              0
                                                                                                              Ага, спасибо. Между какими ножками?
                                                                                                              6,7,9,10,25? Т.е. всего 5 выводов на контроллер идет? все по 150ом ставить?
                                                                                                                +1
                                                                                                                все, кроме 25-го
                                                                                                          0
                                                                                                          Если в магазине есть только 12 и 32мгц кварц. генераторы, то… подойдут?)
                                                                                                            +1
                                                                                                            12 подойдёт. Мега16 работает максимум на частоте 16 МГц
                                                                                                            0
                                                                                                            Паяльник у меня 40Вт, как я понял, надо найти 25Вт?

                                                                                                            И, допустим, мне надо 8 управляющих сигналов, а выводов меньше. Что делать в таком случае?)
                                                                                                              +1
                                                                                                              Да, Лучше 25Вт.

                                                                                                              И, допустим, мне надо 8 управляющих сигналов, а выводов меньше. Что делать в таком случае?)
                                                                                                              Это что за контроллера такой? ATTiny?
                                                                                                                0
                                                                                                                Опс, не посмотрел на кол-во ножек )
                                                                                                                Как я понял это PA*, итого 8? На рисунке не видно (

                                                                                                                Ну вот допустим тогда надо 40 сигналов. Что делать в таком случае?
                                                                                                                Ставить каскад контроллеров, кодируя сигнал?
                                                                                                                  +1
                                                                                                                  Ну либо брать контроллер с большим количеством ног, либо использовать сдвиговые регистры
                                                                                                            0
                                                                                                            А какой мощности двигатели там? что потребоваль ставить на каждый по L293?
                                                                                                              0
                                                                                                              ХЗ какой, но если ставить одну, то она у меня всегда работала некорректно. Сейчас вообще стоит L298 с радиатором. А в статье описан просто принцип объединения каналов, чтобы можно было в дальнейшем применять
                                                                                                            • UFO just landed and posted this here
                                                                                                                0
                                                                                                                Прикольный робот!
                                                                                                                Я тоже собираю сейчас что то подобное
                                                                                                                Только за основу взял готовую платформу для робота
                                                                                                                Мотор-редукторы и драйвер двигателей
                                                                                                                Контроллер решил сделать сам при помощи ЛУТ

                                                                                                                Only users with full accounts can post comments. Log in, please.