Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Ультразвуковой картограф с использованием Arduino Yun

Компоненты и расходные материалы

Ардуино Юн
× 1
ультразвуковой датчик
× 1
Сервоприводы (Tower Pro MG996R)
× 1
Перемычки (общие)
× 10

Приложения и онлайн-сервисы

IDE Arduino
MATLAB

Об этом проекте

Шаг 1. Теория

В этом проекте мы используем ультразвуковой датчик расстояния. Он генерирует звуковые волны, недоступные человеческому слуху, и измеряет расстояние, вычисляя время, необходимое этим волнам, чтобы поразить препятствие и вернуться назад. Это похоже на принцип, используемый летучими мышами и круизными лайнерами.

Еще один компонент, который мы собираемся использовать, - это серводвигатель. Он отличается от обычного двигателя постоянного тока тем, что может очень точно поворачиваться в заданное угловое положение и удерживать там свое состояние. Когда серводвигатель получает импульсы определенной продолжительности, он перемещается в соответствующее угловое положение.

Мы будем использовать оба этих компонента, чтобы получить поле обзора для нашего робота на 180 градусов.

Шаг 2. Сбор материалов

В этом проекте используется следующее оборудование

  • Arduino Uno / Yun (обратите внимание, что любую плату Arduino можно использовать вместо Uno или Yun)
  • Arduino Prototyping Shield
  • Ультразвуковой датчик HC-04
  • Серводвигатель (я использовал Tower Pro SG90, потому что он очень компактен).
  • Что касается программного обеспечения, мы используем следующие программы.
  • IDE Arduino для загрузки управляющего кода в Arduino, чтобы вращать сервопривод и получать данные о расстоянии от ультразвукового датчика, а также передавать их в последовательный порт.
  • Mathworks MatLab для получения данных из последовательной линии, их обработки и визуализации в виде графика.

Шаг 3. Механическая сборка

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

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

Окончательный результат должен выглядеть как живот Валл-И.

Шаг 4. Код Arduino

Код Arduino управляет движением серводвигателя, а также когда и как часто регистрируются показания ультразвукового датчика. Он также передает данные датчика в последовательный порт.

  • Импортировать библиотеки
  • Инициализировать переменные и контакты.
  • Инициализировать сервообъект
  • Инициализировать последовательную связь
  • Подождите 3 секунды.
  • Инициализировать счетчики на 0
  • Повернуть сервопривод на 1 градус.
  • Получить данные ультразвукового датчика 10 раз (установлено по умолчанию)
  • Усреднить данные
  • Отправить среднее значение на последовательный порт
  • Вернуться к шагу 7

Шаг 5. Код MatLab

Код MatLab имеет дело больше с данными, чем с фактическим управлением платой, поэтому все данные датчиков передаются по последовательному каналу на ПК, где они считываются MatLab.

Теперь данные, которые мы получаем от Arduino, говорят нам о двух вещах. Степень вращения сервопривода и расстояние до препятствия в этом направлении. Следовательно, данные, которые у нас есть на данный момент, находятся в полярной системе координат. Чтобы он имел смысл для человеческого глаза при визуализации, он должен быть преобразован в декартову систему координат или систему координат X-Y.

Таким образом, код MatLab делает именно это. Он последовательно получает данные из COM-порта, сохраняет их в матрицу с указанием угла поворота, а затем преобразует их в декартовы координаты по формуле, приведенной выше.

Как только это будет сделано, он выдает результат, нанося точки на график. Я поместил доску в коробку и получил следующий результат.

Шаг 6:Заключение

Хотя система не идеальна, она выполняет свою работу. Он может приблизительно оценить ширину и длину коробки и точно отправлять данные.

Единственные ошибки, которые я вижу на данный момент, связаны с встряхиванием датчика во время движения сервопривода и ошибочными показаниями самого датчика.

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

Код

  • matlab_code_to_run_on_pc.m
  • Код Arduino
matlab_code_to_run_on_pc.m MATLAB
Код MatLab для компиляции и выполнения на ПК
 theta =0:(pi / 180):pi; s =serial ('COM10'); s.BaudRate =9600fopen (s) i =0; inc =1; while я <180 А =fgets (s); число (я + 1) =str2num (A); i =i + 1; endfclose (s) j =1 при j <181 tab (j, 1) =(j-1) * inc tab (j, 2) =num (j) tab (j, 3) =num ( j) * cosd ((j-1) * inc) tab (j, 4) =num (j) * sind ((j-1) * inc) j =j + 1end% цифра% полярный (theta, num) график (вкладка (:, 3), вкладка (:, 4)) 
Код Arduino Arduino
Код Arduino для загрузки в Arduino Yun
 #include  #include  #define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); Сервомашинный резервуар; int pos =0; int it =10; установка void () {myservo.attach (9); Serial.begin (9600); задержка (3000);} void loop () {int я =0; int t =0; int a =0; для (я =0; я <180; я ++) {unsigned int uS =sonar.ping (); myservo.write (я); задержка (20); for (t =0; t  

Схема

Файл Fritzing для подключения сервопривода и ультразвукового датчика YunConfig.fzz

Производственный процесс

  1. Создание монитора Ambilight с помощью Arduino
  2. Робототехническая система для обнаружения человека с использованием Arduino Uno
  3. Ультразвуковой левитационный аппарат с использованием ARDUINO
  4. FlickMote
  5. Вольтметр своими руками с использованием Arduino и смартфона
  6. Монитор сердечного ритма с использованием Интернета вещей
  7. Игрушка под управлением Android с использованием Raspberry Motor Shield
  8. IOT - Smart Jar с использованием ESP8266, Arduino и ультразвукового датчика
  9. WebServerBlink с использованием Arduino Uno WiFi
  10. Робот-последователь линии