Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Танчик ездящий за лазерной указкой

    Танчик ездящий за лазерной указкой

    Танчик ездящий за лазерной указкой

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

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

    - Tamiya 70168 сдвоенный редуктор
    - Tamiya 70100 набор катков и гусениц
    - Tamiya 70157
    - Фанера 10 мм (небольшой кусочек)
    - Arduino Pro Mini 5V AtMega 328
    - DRV 8833
    - Фоторезисторы 5506 4 шт.
    - USB-UART для прошивки Arduino
    - Светодиоды прямоугольные красный и зеленый
    - Светодиоды белые 5 мм 2шт.
    - Резисторы 3х 150 Ом
    - Аккумуляторы Li-ion 18650
    - Коннекторs Dupont папа-мама
    - Провода разных цветов
    - Припой
    - Канифоль
    - Паяльник
    - Болтики 3х40, 3х20, гайки и шайбы к ним
    - Саморезы 2х10 по дереву
    - Сверла по дереву 3 мм и 6 мм
    - Электролобзик
    - Краска акриловая

    Шаг 1 Изготовление деталей танчика.
    Подробный процесс изготовления танчика описан в самоделке.

    Повторять его нет смысла. Поэтому Первый и Второй шаг из вышеуказанной самоделки выполняем полностью.

    Шаг 2 Установка фоторезисторов.
    Фоторезисторы нам понадобятся самые обычные, их легко купить в радиомагазине:


    Далее, до установки гусениц, надо подготовить места под фоторезисторы и вставить их туда. Итак, у нас четыре фоторезистора, два спереди, два сзади. Они все будут располагаться в нижней детали корпуса, в углах. Отступая по 5 мм от каждой стороны делаем два отверстия, для ножек фоторезистора. Расстояние между отверстиями 4 мм. Можно использовать сверло самого маленького диаметра или просто шилом проткнуть фанерку. Сделав это вставляем фоторезисторы. Начнем с переда:


    После того как вы вставили фоторезисторы в фанеру, припаиваем к контактам провода и коннектором Dupont мама. Изолируем место пайки. Можно изолентой, а можно, как я, надеть изоляцию от провода потолще.


    И в задней части делаем также:


    Снизу будет выглядеть так:


    Собираем корпус дальше по инструкции, ссылка на которую, указана выше.
    Для повышения чувствительности фоторезисторов на точку лазера и избавления от лишних помех, надо их покрасить красным маркером ил краской. Главное, чтобы через покрытие проникал свет. Не надо их совсем закрашивать.


    Таким образам мы повысим чувствительность датчиков к красной точке лазера.

    Шаг 3 Электрика.
    В четвёртом шаге инструкции по изготовлению танчика подробно описано что и как подключать. Делаем все по ней, за исключение подключения Bluetooth модуля. Он нам не нужен. Один из контактов фоторезисторов подключаем к GND. Второй подключаем к Arduino по схеме:

    Передний правый к A0 (Pin14)
    Передний левый к A1 (Pin15)
    Задний левый к A2 (Pin16)
    Задний правый к A3 (Pin17)

    В качестве инструмента управления будем использовать обычную китайскую лазерную указку с красным лучом:


    Шаг 4 Редактирование скетча.
    Для редактирования и заливки скетча нужно скачать Arduino IDE. Заходим на официальный сайт проекта и скачиваем последнюю версию.

    Никаких дополнительных библиотек не нужно.
    Фоторезисторы, далеко не самый точный измерительный прибор. Его характеристики, на практике, зависят от большого количества факторов. Поэтому для правильной работы необходимо корректировка каждого фоторезистора. Проводить корректировку показаний будем редактированием скетча, используя Arduino IDE и монитор порта. Открываем скетч:
    unitank_laser.rar [1.01 Kb] (скачиваний: 102)


    Начнем с передних фоторезисторов. В самом низу раскомментируйте три строки для передних датчиков:

    //Serial.print(senLF); //Раскоментируйте для корректировки передних фоторезисторов
    //Serial.print("  ");
    //Serial.println(senRF);


    А также нужно добавить паузу, чтобы успевать их просматривать. Поэтому, раскомментируйте и эту строку:

    //delay(500);
    

    Заливаем скетч. Ставим танчик на стол, при освещении комнаты обычной люстрой, настольную лампу не стоит включать. И открываем монитор порта Arduino IDE. При обычном освещении показания должны быть больше 500, и при этом примерно одинаковы для обоих датчиков. Попробуем поводить лазерной указкой перед носом танчика. Показания должны меняться. Чем ближе точка, тем меньше должны быть показатели. Они должны быть в диапазоне от 80 (при максимальной близости точки) до 500 (при отдалении примерно на 2 -3 см.).
    Для корректировки используем переменные в скетче:

    int corLF = 0; // Корректирующие переменные, передний левый
    int corRF = 30; // Передний правый


    Корректирующие переменные могут быть как положительные (прибавляются к показателям датчика), так и отрицательные (вычитаются из показаний). Изменив эти переменные, снова заливаем скетч и смотрим, чтобы показатели были в нужных нам диапазонах.

    Теперь проделываем тоже самое с задними фоторезисторами. Для этого закомментируем строки для передних датчиков и раскомментируем следующие строки:

    //Serial.print(senLB); //Раскомментируйте для корректировки задних фоторезисторов
    //Serial.print("  ");
    //Serial.println(senRB);


    Пауза стоит оставить раскомментированной. Проводим те же измерения, только теперь с фоторезисторами сзади. И записываем корректирующие переменные:

    int corLB = 0; // Задний левый
    int corRB = 35; // Задний правый


    Чтобы было понятно, как все работает. Левый передний датчик управляет движение правой гусеницы вперед, а правый передний – левой гусеницей вперед, и так далее. Показания датчиков корректируются по следующим формулам:

    senLF = (analogRead(senLFPin) + corLF); //Передний левый
    senRF = (analogRead(senRFPin) + corRF); //Передний правый
    senLB = (analogRead(senLBPin) + corLB); //Задний левый
    senRB = (analogRead(senRBPin) + corRB); //Задний правый


    Где, senLF, senRF, senLB, sen RB – скорректированные показания
    analogRead(senLFPin), (analogRead(senRFPin), (analogRead(senLBPin), (analogRead(senRBPin) – «чистые» показания датчиков
    colLF, colRF, corLB, corRB – корректирующие переменные.

    А затем показания переводятся в скорость вращения противоположной гусеницы:

    walRF = map(senLF, 80, 500, 100, 255);
    walLF = map(senRF, 80, 500, 100, 255);
    walRB = map(senLB, 80, 500, 100, 255);
    walLB = map(senRB, 80, 500, 100, 255);


    Если никак не получается скорректировать показания датчиков, измените максимальные и минимальные значения показаний, при которых гусеницы начинают двигаться. Это цифры 80 и 500 в строках преобразования, написанные выше.

    Закончив все процедуры, закомментируйте все эти строки, и заливайте скетч. Теперь танчик будет ездить за красной точкой лазерной указки.

    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
    Езда за точкой
    Интересно ли управлять моделью, ездящей за лазерной указкой?
    Всего проголосовало: 65

    Четырехногий робот на основе ESP8266

    Квадрапод на Arduino (апгрейд четырехногого робота на ESP)

    9
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    7.9
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    8.1
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 8.33 из 10 (голосов: 9 / История оценок)

    Добавить комментарий

    6 комментариев
    олег олегов #27619
    нет, не совсем аккуратно. ok
    Korolev #23167
    выводим на орбиту спутник с лазером
    А что, это тема, заключаем многосторонний международный договор о единых стандартах на ПО, и режемся в танчики в мировом масштабе! smile
    maxim0512 #23161 Автор
    Ловкость рук и никакого мошенства!
    pogranec #23159
    Блин, нам уже страшно тут, с вами по соседству-)))) ne_huligan
    Dmitrij #23157
    выводим на орбиту спутник с лазером, переоборудываем все танки и айда
    «Марти! Думать нужно в четырех измерениях...»
    tormozedison #23156
    Ни фига себе аккуратно как сделано, респект!

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии