Оглавление:
Видео: Робот, следящий за светом и избегающий его на основе Arduino: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Это простой проект, который следует за Светом или Избегайте его.
Я сделал это моделирование в Proteus 8.6 pro. Необходимые компоненты: -1) Arduino uno.
2) 3 LDR.
3) 2 мотор-редуктора постоянного тока. 4) Один сервопривод. 5) Три резистора 1 кОм. 6) Один H-мост l290D 7) Один переключатель включения и выключения [для изменения состояния программы]
8) 9в и 5в Battry
Шаг 1: Код Ардунио
Код Arduino изменен немного назад, 23 февраля 2016 г.]
Этот код очень комментируется, я не хочу объяснять, но если вам нужна помощь, не стесняйтесь обращаться ко мне по адресу ([email protected])
Примечание: -Я использую два условия в этой программе: первое - для следования за светом, второе - для избегания света.
При выполнении этих условий робот будет следовать за светом или избегать его. [Это минимальное значение LDR, которое я выбираю. В нормальном свете его диапазон составляет от 80 до 95, но по мере того, как его интенсивность увеличивается, на него наводится все больше и больше напряжений, поскольку он работает по принципу делителя напряжения int a = 400; // Допустимое значение]
Шаг 2: файлы Proteus
Для библиотеки Arduino загрузите по этой ссылке
Шаг 3: Как работает ваш H-мост
L293NE / SN754410 - очень простой H-мост. Он имеет два моста, один с левой стороны чипа, а другой с правой, и может управлять 2 двигателями. Он может управлять током до 1 А и работать в диапазоне от 4,5 В до 36 В. Маленький двигатель постоянного тока, который вы используете в этой лаборатории, может безопасно работать от низкого напряжения, поэтому этот H-мост будет работать нормально. Н-мост имеет следующие контакты и особенности: Контакт 1 (1, 2EN) включает и отключает наш двигатель независимо от того, является ли он ВЫСОКОМ или НИЗКИМ, Контакт 2 (1A) является логическим контактом для нашего двигателя (вход может быть ВЫСОКИЙ или НИЗКИЙ). 3 (1Y) - для одного из выводов двигателя, выводы 4-5 - для заземления, вывод 6 (2Y) - для другого вывода двигателя, вывод 7 (2A) - это логический вывод для нашего двигателя (вход HIGH или LOW), вывод 8 (VCC2)) является источником питания для нашего двигателя, это должно соответствовать номинальному напряжению вашего двигателя. Контакты 9-11 не подключены, так как в этой лаборатории вы используете только один двигатель. Контакты 12-13 предназначены для заземления. Контакты 14-15 не подключены. подключен к 5 В. Выше представлена схема H-моста и какие контакты выполняют то, что в нашем примере. К диаграмме прилагается таблица истинности, показывающая, как двигатель будет работать в соответствии с состоянием логических выводов (которые установлены нашей Arduino).
В этом проекте контакт включения подключается к цифровому контакту на вашем Arduino, поэтому вы можете отправить его либо ВЫСОКИЙ, либо НИЗКИЙ и включить или выключить двигатель. Логические выводы двигателя также подключены к назначенным цифровым выводам на вашем Arduino, поэтому вы можете отправить его HIGH и LOW, чтобы двигатель вращался в одном направлении, или LOW и HIGH, чтобы он вращался в другом направлении. Напряжение питания двигателя подключается к источнику напряжения двигателя, которым обычно является внешний источник питания. Если ваш двигатель может работать от 5 В и менее 500 мА, вы можете использовать выход 5 В. Для большинства двигателей требуется более высокое напряжение и более высокий ток потребления, поэтому вам понадобится внешний источник питания.
Подсоедините двигатель к Н-мосту. Подключите двигатель к Н-мосту, как показано на 2-м рисунке.
Или, если вы используете внешний источник питания для Arduino, вы можете использовать вывод Vin.
Шаг 4: Как работает LDR
Теперь первое, что может потребовать дальнейшего объяснения, - это использование светозависимых резисторов. Светозависимые резисторы (или LDR) - это резисторы, значение которых изменяется в зависимости от количества окружающего света, но как мы можем определить сопротивление с помощью Arduino? На самом деле вы не можете, однако вы можете определять уровни напряжения с помощью аналоговых выводов, которые могут измерять (при базовом использовании) в диапазоне 0-5 В. Теперь вы можете спросить: «А как нам преобразовать значения сопротивления в изменения напряжения?», Это просто, мы делаем делитель напряжения. Делитель напряжения принимает напряжение, а затем выдает часть этого напряжения, пропорциональную входному напряжению и соотношению двух номиналов используемых резисторов. Уравнение для которого:
Выходное напряжение = Входное напряжение * (R2 / (R1 + R2)), где R1 - значение первого резистора, а R2 - значение второго.
Теперь все еще возникает вопрос: «Но какие значения сопротивления у LDR?» - хороший вопрос. Чем меньше количество окружающего света, тем выше сопротивление, больше окружающего света означает меньшее сопротивление. Теперь для конкретных LDR, которые я использовал, их диапазон сопротивления составлял от 200 до 10 кОм, но это меняется для других, поэтому обязательно посмотрите, где вы их купили, и попробуйте найти техническое описание или что-то в этом роде. Случай R1 на самом деле является нашим LDR, поэтому давайте вернем это уравнение и сделаем немного математики-электронной магии (математической электрической магии). Теперь сначала нам нужно преобразовать эти значения килоомов в омы: 200 килоом = 200000 Ом 10 килоом = 10 000 Ом Итак, чтобы определить выходное напряжение, когда мы находимся в кромешной тьме, мы подставляем следующие числа: 5 * (10000 / (200000 + 10000)) Входное напряжение 5 В, так как это то, что мы получаем. от Arduino. Вышеупомянутое дает 0,24 В (с округлением). Теперь мы определяем выходное напряжение при максимальной яркости, используя следующие числа: 5 * (10000 / (10000 + 10000)) И это дает нам ровно 2,5 В. Итак, это значения напряжения, которые мы собираемся получить на аналоговых выводах Arduino, но это не те значения, которые будут отображаться в программе: «Но почему?» вы можете спросить. Arduino использует аналогово-цифровой чип, который преобразует аналоговое напряжение в пригодные для использования цифровые данные. В отличие от цифровых выводов на Arduino, которые могут читать только ВЫСОКОЕ или НИЗКОЕ состояние, равное 0 и 5 В, аналоговые выводы могут считывать значения от 0 до 5 В и преобразовывать их в диапазон чисел от 0 до 1023.. мы можем фактически вычислить, какие значения на самом деле будет читать Arduino.
Поскольку это будет линейная функция, мы можем использовать следующую формулу: Y = mX + C Где; Y = Цифровое значение Где; m = наклон, (подъем / ход), (цифровое значение / аналоговое значение) Где; C = Y-точка пересечения Y равна 0, что дает нам: Y = mXm = 1023/5 = 204,6 Следовательно: Цифровое значение = 204,6 * Аналоговое значение Таким образом, в черном как смоль цифровое значение будет: 204,6 * 0,24, что дает приблизительно 49. И при максимальной яркости это будет: 204,6 * 2,5, что дает примерно 511. Теперь, когда две из них установлены на двух аналоговых выводах, мы можем создать две целочисленные переменные для хранения их значений двух и выполнить операторы сравнения, чтобы увидеть, какая из них имеет наименьшее значение, поворачивая робота в этом направлении.
Рекомендуемые:
Робот, избегающий препятствий, использующий Arduino Nano: 5 шагов
Робот, избегающий препятствий, использующий Arduino Nano: в этой инструкции я собираюсь описать, как вы можете сделать робота, избегающего препятствий, с помощью Arduino
«GRECO» - Робот, избегающий объекта Arduino для начинающих: 6 шагов (с изображениями)
"GRECO" - Объект Arduino, избегающий роботов для начинающих: Что ж, если вы новичок, здесь вы найдете самый простой способ построить свой собственный объект, избегая робота! Мы будем использовать мини-шасси круглого робота с двумя двигателями постоянного тока, чтобы его было проще построить. . В очередной раз мы решили использовать знаменитую плату Arduino UNO. Наша
Жезл для рисования разноцветным светом на основе Arduino: 13 шагов (с изображениями)
Жезл для рисования многоцветным светом на основе Arduino: рисование светом - это техника, используемая фотографами, где источник света используется для рисования интересных узоров, а камера объединяет их. В результате Фотография будет содержать следы света, которые в конечном итоге придадут вид
Робот, избегающий препятствий на Arduino (обновленная версия): 7 шагов (с изображениями)
Робот, избегающий препятствий Arduino (обновленная версия): этот пост впервые опубликован на этом веб-сайте https://truescience22.blogspot.com/2018/01/arduino-obstacle-avoiding-robotupgrade.html Привет друзья, сегодня я сделал обновленную версию Arduino Робот для уклонения от препятствий. Это просто, но некоторая особенность, и вы
LF на основе PIC и избегающий робот: 16 шагов (с изображениями)
LF на основе PIC и избегающий робот: Введение В этом руководстве вы научитесь легко следовать за роботом и избегать его. Мое вдохновение исходит от роботов, имитирующих обычное человеческое поведение, например, вы не станете просто так врезаться в стену без причины. Ваш мозг сообщает остроумие