Оглавление:
- Шаг 1: СОЗДАЙТЕ ПП
- Шаг 2: МНОГО ОШИБОК
- Шаг 3: УСТАНОВИТЕ ДАТЧИКИ
- Шаг 4: ЖЕСТКИЙ ПРОВОД
- Шаг 5: СКАЧАТЬ SONIC SKETCH
- Шаг 6: СВЯЗЬ
- Шаг 7: ЗАКРЫТИЕ
Видео: ОБРАТНАЯ СВЯЗЬ SONIC LED: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Привет еще раз, Ненавидите, что ваш робот во все наезжает? Это решит эту проблему. С 8 звуковыми датчиками это выглядит сложным … но на самом деле я сделал это очень легко. Я стараюсь публиковать проекты, которые помогут вам узнать об Arduino и показать нестандартную концепцию. Этот пост поможет вам понять переключение 595, pro-minis как программируемый датчик и широкое использование светодиодной обратной связи в реальном времени. Если вам нравится Arduino как функция «скопировать, вставить и плагин», вы можете просто пропустить это.
Мне нравится использовать про-мини. Они стоят около 2,50 долларов, работают как полноценный uno, а установка заголовков делает их очень гибкими. Используемый в качестве сенсорного микрометра, вы можете заставить его «делать то, что вы хотите» вместо того, что диктует приобретенный датчик. С I2C, использующим только 2 провода, их можно связать вместе на одной линии. Итак, переходите к MEGA. Я могу иметь 4 мини-компьютера, запускающих 4 отдельные строки кода одновременно, всего за 10 долларов. Здесь я использую мини, чтобы протолкнуть звуковые датчики через 595 и показать расстояние до светодиода в реальном времени. Затем просто поделитесь 8 битами данных с материнской платой. Это снимает нагрузку с материнской платы и делает ее код очень простым.
Проблема со звуковыми датчиками… нет визуальной обратной связи. Никогда не знаешь, датчик это просто мертвый груз или рабочий! Я считаю, что тот, кто когда-либо придумал «BLINK», умнее Эйнстайна. Только ОДИН светодиод, и мигание передаёт целый мир информации. Таким образом, звуковой датчик нуждается в обратной связи в реальном времени. Здесь я использовал массив светодиодов для наблюдения за каждым датчиком. Они вам не нужны, просто сделайте датчики без светодиодов. Но наличие светодиодов на печатной плате полезно.
Шаг 1: СОЗДАЙТЕ ПП
сделать печатную плату и заполнить. ВНИМАНИЕ… Я сделал ошибку на печатной плате в 4-контактном разъеме для подключения звуковых датчиков. ECHO и TRIGGER Vcc и заземление собирались подключиться к печатной плате. Для разъемов не хватает места, поэтому я просто сделал плату с распиновкой. Таким образом, вы можете припаять проводной соединитель к печатной плате и подключить к фактическим звуковым датчикам. Что касается светодиодов, я поставил желтые светодиоды с внутренней стороны и красные с внешней стороны. это поможет вам увидеть на расстоянии, правильно ли датчики измеряют.
Это одна из НЕСКОЛЬКИХ двухсторонних печатных плат, которые я когда-либо делал. Я бы предпочел сделать 2 шт. С одной стороны и запустить прыгуны. Но чтобы получить светодиодный дисплей, вам понадобится как минимум верхняя печатная плата. Разделял макет в загрузке.
Печатная плата предназначена для про-мини с A4-A5 внутри краевого заголовка. В любом случае просто подключите A4-A5 к Master A4-A5. Не забывайте также Vcc и Grounds.
Шаг 2: МНОГО ОШИБОК
Теперь о моих ошибках … Я попытался активировать все триггеры сразу (все связанные вместе), и это вроде как работало хорошо, но некоторые взаимодействия имели место. Итак, теперь все ECHOS переходят к микро (8), а ТРИГГЕРЫ устанавливаются на 595. Еще три контакта (3). Что касается светодиодов, то мультиплексирование не работает. Вам необходимо полное время включения для каждого светодиода. Это означает, что каждый ряд из 7 светодиодов должен иметь свой собственный 595. После обновления 595 светодиоды будут гореть до следующего обновления. При мультиплексировании светодиоды загораются только на одну десятую секунды. Это хорошо работает у моих читателей, и для этого нужен специальный микро. Нет времени на сканирование 8 звуковых датчиков и измерение расстояний. Я попробовал и получил очень плохие результаты. Мультиплексирование светодиодов также будет означать сетку из строк + столбцов, что означает около 64+ сквозных проходов в печатной плате.
Я использовал только 7 выходов от 595 из-за беспорядка на печатной плате. На расстоянии вы не можете сказать, 7 или 8 светодиодов просто их движение. У вас может возникнуть соблазн привязать все светодиоды к одному резистору, и это сработает, но яркость массива изменяется в зависимости от количества светодиодов, которые светятся. Таким образом, лучше всего использовать один резистор на каждый светодиод. Мне просто нравится 595, но если бы они просто переместили контакты Vcc и 0-out или сделали 18-контактную микросхему со ВСЕМИ выходами на одной стороне … подключить все восемь выходов было бы так просто. Но тогда его нельзя было бы продавать менее чем за 30 центов.
Шаг 3: УСТАНОВИТЕ ДАТЧИКИ
Приклейте звуковые датчики к крышке кофе. штекер необходимо загнуть внутрь на каждом датчике. Это сработает лучше, если вы будете гнуть по одной булавке за раз. Я использовал двухстороннюю поролоновую ленту, чтобы меньше вибрации. Мои датчики расположены слишком близко, и им нужно пространство 1/4 дюйма, чтобы лучше соответствовать печатной плате. Раньше я использовал звуковые датчики, и иногда один из них не может точно измерить, и вы должны помнить об этом. Так что не склеивайте их все навсегда.
Также полезно провести быструю дистанционную проверку каждого из них, прежде чем использовать их. Я получаю примерно один датчик с плохими показаниями в партии из 20. Неплохо по той цене, которую я заплатил.
Шаг 4: ЖЕСТКИЙ ПРОВОД
Думал, найдется место для розеток и вилок от ПК к
звуковые пины, но я выбежал из комнаты. Поэтому я жестко подключил конец печатной платы и просто сделал провода эха и триггера с гнездовыми разъемами (8 шт.). Я связал 8ea Vcc и 8ea заземления датчиков вместе, так что для них осталось только 2 подключения к печатной плате.
С 8 датчиками и 8 595, uno или pro-mini НЕ МОГУТ питать это. В рамках этого проекта должен быть регулируемый источник 5В. У моего робота простой 7805 @ 1амп от аккумуляторов. Это связано со всеми 5v Vcc для всех устройств. 7805 падает примерно на 1 вольт, поэтому для его питания требуется не менее 6,5 вольт. То есть 2 литиевые батареи на 3,3 В. У моего робота есть старые Никады из использованных буровых установок, и 8 Никадов управляют типичным китайским мотор-редуктором 12 В на шасси типа резервуара за 20 долларов.
Шаг 5: СКАЧАТЬ SONIC SKETCH
Скачайте скетч и установите. Есть много способов поговорить с
еще один uno но мне нравится I2c. путаница в адресации и ведущий / ведомый. Как и в случае с большинством датчиков (подумайте о втором мини как о датчике), вы обращаетесь к датчику и запрашиваете x количество байтов. то же самое и здесь. Во втором мини вы выделяете x количество байтов, которое хотите отправить. Путаница в том, что имена не имеют значения. Это поможет ВАМ запомнить только то, что вы разделяете имена. Итак, в скетче я отправил 8 измерений звукового расстояния в сантиметрах как sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4. Мастер просто получает 8 байтов данных, и вы можете называть эти байты как угодно. Я прочитал их как gotR1, gotR2, got….. Порядок отправки байтов такой же. Итак, байты A, B, C….. не думайте, что изменение имени даст вам другие данные. И еще одна загвоздка: вы можете получать только те данные, которые должны быть отправлены. Поэтому, если вам нужны другие данные, вы должны изменить ОБЕИХ ведущего и ведомого.
Шаг 6: СВЯЗЬ
Вы можете пропустить это, если знаете, как настроить 2 Uno для общения друг с другом. В конце у меня есть несколько лакомых кусочков информации. Для упрощения я назову uno в базе робота M1, а звуковой датчик - S2. Подключите Vcc, землю, A4, A5 друг к другу.
В скетче для S2 он начинается с #include
Затем создайте 8 байтов для отправки. байт R1, байт R2, байт L1 и т. д. Uno - это 8-битный микроконтроллер, поэтому они отправляют 1 байт за раз, используя «byte» вместо «int».
В 'setup ()' добавьте 'Wire.begin (address)', это сообщает I2c, какое это устройство. Адрес обычно представляет собой любое число от 4 до 200 размером в один байт. Здесь я использовал номер 10. Итак, чтобы поговорить с этим датчиком S2, мастер должен вызвать Wire.requestFrom (10, 8). Это адрес 10, а 8 - это количество желаемых байтов. Также в 'setup ()' добавьте Wire.onRequest (isr anyName). Когда M1 вызывает запрос, датчик S2 реагирует прерыванием. Это просто вызывает функцию anyName. Итак, эту функцию anyName необходимо создать. Посмотрите на эскиз и увидите функцию sendThis (). Именно здесь байты фактически отправляются в M1. Идут только байты, а НЕ имена и порядок отправки. Здесь начинается размер и объем отправляемых данных. В этом простом формате байтов отправка и получение должны совпадать. Здесь 8 байтов отправлено и 8 байтов получено. Одно замечание здесь заключается в том, что для вызова функции требуется (). Как delay (), millis (), Serial.print (). При использовании ISR (подпрограммы обслуживания прерывания) при вызове функции удаляется (). Итак, Wire.onRequest (sendThis), а не Wire.onRequest (sendThis ()).
Путаница, которая возникла у меня, была в отношении хозяина / раба. Сначала я думал, что мастер ВСЕГДА является мастером. Но внутри скетча вы можете переключить главный / подчиненный сервер для запроса от других микропроцессоров или отправки на другие микропроцессоры. При условии, что вы следовали основному формату, описанному выше. Помните … вы предоставляете ТОЛЬКО данные, которые были назначены.
Две штуки со стеной. Прерывание isr прерывает только линии эскиза. Если вы заблокированы в цикле while или for, до выхода из цикла ничего не происходит. Ничего страшного, так как это может быть несколько микросекунд, а данные устарели.
Другая проблема заключается в том, что «внутри» микроконтроллера происходит 100% безошибочный расчет. Любая «внешняя» (проводная) связь подвержена ошибкам. Есть много способов проверить, что доставленные данные не содержат ошибок и соответствуют источнику. Самый простой способ - с помощью контрольной суммы. Просто добавьте итоги отправленных байтов (фактические значения) и отправьте итоги, а на принимающей стороне добавьте итоги и посмотрите, совпадают ли они. Если они совпадают, хорошо или отбросьте этот набор данных, если нет. Конечно, это подразумевает отправку целочисленного значения, а не байтов. Таким образом, вы просто разделяете целое число на байт HI и байт LO и отправляете как отдельные байты. Затем соберите в приемнике.
ЛЕГКИЙ:
int x = 5696; (любое допустимое значение int, максимальное - 65 КБ или 32 КБ отрицательное)
байт hi = x >> 8; (22)
байт lo = x; (64)
отправить байты и объединить на другом конце….
byte hi = Wire.read (); байт привет = Wire.read ();
байт lo = Wire.read ();
int newx = (привет << 8) + lo; (5696)
Шаг 7: ЗАКРЫТИЕ
Чтобы закрыть, этот звуковой датчик дает материнской плате необработанные данные о расстоянии в режиме реального времени. Это освобождает микро и делает набросок намного менее сложным. Теперь микроконтроллер может принять правильное решение о замедлении, повороте, остановке или реверсе на основе достоверных данных, а не случайных предположений. См. Другой мой пост о bluetooth IDE, чтобы загружать эскизы без проводов и постоянно подключать робота, чтобы просто быстро изменить эскиз. Спасибо за просмотр. oldmaninsc.
Рекомендуемые:
ЭМГ-биологическая обратная связь: 18 шагов (с изображениями)
ЭМГ-биологическая обратная связь: в этой системе биологической обратной связи используется датчик ЭМГ для представления мышечного напряжения в виде серии звуковых сигналов и позволяет вам тренировать свое тело, чтобы регулировать мышечное напряжение по своему желанию. Короче говоря, чем больше вы напряжены, тем быстрее становятся звуковые сигналы и чем расслабленнее вы
Руль и педали из картона своими руками! (Обратная связь, переключатели весла, дисплей) для гоночных симуляторов и игр: 9 шагов
Руль и педали из картона своими руками! (Обратная связь, переключатели весла, дисплей) для гоночных симуляторов и игр: Привет всем! В эти скучные времена мы все валяемся, ища чем заняться. Реальные гонки были отменены и заменены симуляторами. Я решил построить недорогой симулятор, который работает безупречно, если
Большое расстояние, 1,8 км, беспроводная связь Arduino с Arduino с HC-12: 6 шагов (с изображениями)
Большая дальность, 1,8 км, беспроводная связь между Arduino и Arduino с HC-12: в этой инструкции вы узнаете, как общаться между Arduino на большом расстоянии до 1,8 км на открытом воздухе. HC-12 - это беспроводной последовательный порт. коммуникационный модуль, который очень полезен, чрезвычайно мощный и простой в использовании. Сначала вы уйдете
Автоматическая обратная петля поезда с использованием Arduino: 10 шагов (с изображениями)
Автоматическая обратная петля поезда с использованием Arduino: создание обратных петель может помочь в макетах моделей поездов, чтобы изменить направление поездов, что невозможно сделать с поворотными кругами. Таким образом, вы можете создавать однопутные схемы с обратной петлей на каждом конце для движения поездов без пауз и остановок
Звуковая обратная связь с пламенем: 7 шагов
Звуковая обратная связь с пламенем: в этом руководстве показано, как построить звуковой генератор с управляемым светом. Здесь я построил скульптуру с нестабильной обратной связью со звуковым генератором и свечой. Динамик заставляет свечу мерцать, а свет свечи модулирует сигнал