- Предварительные условия:
- Установка VPython на ваш компьютер:
- Программирование VPython:
- Подготовка вашего Arduino:
- За работой:
В нашем предыдущем руководстве мы узнали, как установить python на нашу машину с Windows и как связать Arduino с python с помощью простого проекта управления светодиодами. Если вы новичок, я настоятельно рекомендую вам вернуться к предыдущему руководству, так как это руководство является его продолжением.
Возможно, вы уже начали задаваться вопросом, зачем нам нужен питон с Arduino, если все, что он может делать, это просто общаться через последовательный порт. Но Python - очень сильная платформа разработки, на которой можно интегрировать множество классных приложений, в которых можно интегрировать машинное обучение, компьютерное зрение и многое другое. В этом уроке мы узнаем, как создать небольшой графический интерфейс с помощью Python. Для этого нам понадобится модуль Vpython. Следующее руководство применимо только для пользователя Windows, поскольку для пользователя Mac или Linux процедура отличается.
В конце этого руководства мы узнаем, как создать простой графический интерфейс с помощью Python. Мы сделаем небольшую анимацию, которая будет реагировать на значение ультразвукового датчика, подключенного к Arduino. Это приложение отслеживает объект с помощью ультразвукового датчика и отображает его в графической форме на компьютере с помощью VPython. Когда мы перемещаем объект, ультразвуковой датчик определяет расстояние и отправляет эту информацию в программу Python с помощью Arduino, которая также перемещает объект в компьютере. Звучит интересно! Итак, приступим…
Предварительные условия:
- Arduino (любая версия)
- Ультразвуковой датчик HC-SR04
- Подключение проводов
- Компьютер с Python
- Знания о предыдущем уроке
Установка VPython на ваш компьютер:
В нашем предыдущем руководстве мы уже узнали, как установить python на ваш компьютер и как перемещаться по нему и создавать простую программу с Arduino. Теперь мы установили Visual Python (VPython) поверх этого, чтобы мы могли создавать классную графику с использованием Python для Arduino. Выполните следующие простые шаги, чтобы начать работу с VPython.
Шаг 1. Убедитесь, что Python уже установлен в соответствии с рекомендациями предыдущего руководства.
Шаг 2. Щелкните VPython, чтобы загрузить исполняемый файл для Visual Python. Не выбирайте установку 64-битной версии, даже если ваш компьютер работает в 64-битной версии. Просто перейдите по указанной ссылке.
Шаг 3. Запустите exe-файл и следите за настройкой. Не меняйте путь к каталогу по умолчанию и убедитесь, что вы выбрали «полную установку».
Шаг 4. После установки вы должны найти новое приложение с именем «VIDLE (VPython)» на рабочем столе или панели приложений, как показано ниже.
Шаг 5. Запустите приложение, и вы должны увидеть окно, как показано ниже.
Шаг 6. Это окно, в котором мы будем вводить программу для VPython. Но пока давайте проверим, работает ли Vpython, открыв пример программы. Для этого выберите File-> Open-> Bounce.
Шаг 7. Вы должны открыть пример программы. Попробуйте запустить программу с помощью Run -> Run Module . Если все работает должным образом, вы должны увидеть следующий экран.
Вы должны увидеть окно Shell (слева) с двумя >>>, указывающими на успешную компиляцию, и фактическое окно (спереди), которое показывает отскок мяча.
Шаг 8. Вы также можете попробовать другие примеры программ, чтобы открыть для себя возможности VPython, например, пример программы под названием «электрический двигатель» удивит вас следующим экраном.
Шаг 9. Это означает, что ваш VPython готов к использованию, и вы можете перейти к теме « Программирование вашего Vpython ».
Шаг 10. В противном случае, если вы как один из многих, кто получает «numpy Error» , не теряйте надежды, потому что мы будем разбираться с этой проблемой в следующих шагах.
Шаг 11. Откройте Мой компьютер -> Диск C -> Python 27 -> Скрипты -> local.bat . Это запустит командную строку, как показано ниже.
Шаг 12. Теперь введите «pip install --upgrade numpy» и нажмите ввод. Новая версия Numpy должна быть установлена на вашем компьютере. Возможно, вам придется подождать некоторое время, если у вас медленное интернет-соединение.
Шаг 13. После этого вы можете вернуться к шагу 4 и попробовать пример программы, и вы сможете заставить ее работать.
Программирование VPython:
Затем мы начинаем программировать в нашем окне VPython. В этой программе мы создадим два трехмерных прямоугольных объекта, один из которых будет размещен в центре экрана относительно стационарного ультразвукового датчика, а другой будет находиться в динамическом месте в зависимости от расстояния между ультразвуковым датчиком и объектом (бумагой).
Полный код Python можно найти в конце этой страницы. Далее я объяснил этот код Python, разделив их на небольшие значимые ненужные файлы.
Первая строка - импортировать визуальную библиотеку, чтобы мы могли создавать 3D-объекты. Строка ниже делает то же самое.
из визуального импорта *
Вы должны быть знакомы со следующими четырьмя строками, поскольку мы уже использовали их в нашем предыдущем уроке. Они используются для импорта последовательной библиотеки и библиотеки времени, а также для установления последовательного соединения с Arduino в COM18 со скоростью 9600 бод.
import serial # Последовательный, импортированный для последовательной связи время импорта # Требуется использовать функции задержки ArduinoSerial = serial.Serial ('com18', 9600) # Создать объект последовательного порта с именем arduinoSerialData time.sleep (2) # подождать 2 секунды для связи с установиться
Теперь пора создавать объекты. Я создал два трехмерных прямоугольника с именами obj и wall. WallL является стационарной стеной в голубом цвете размещается в центре экрана и OBJ это подвижный объект в белом цвете. Я также разместил текст «Датчик США» возле объекта на стене.
obj = box (pos = (- 5,0,0), size = (0.1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0,2, 12,12), color = color.cyan) текст (text = 'US sensor', axis = (0,1,0), pos = (- 2, -6,0), depth = -0.3, color = color.cyan)
Я уверен, что эти три строки показались бы на греческом и латинском для большинства читателей впервые, но со временем вы сможете это понять. Все, что указано в скобках, является координатами (x, y, z). И эти координаты очень похожи на те, которые мы находим в нашем классе геометрии в средней школе, как показано ниже.
Теперь графика и последовательный порт готовы, все, что нам нужно сделать, это прочитать данные и поместить «obj» (белый прямоугольник) в место в соответствии с данными, поступающими от Arduino. Это можно сделать с помощью следующих строк, где obj.pos.x управляет координатой X положения объекта (белый прямоугольник).
t = int (ArduinoSerial.readline ()) # прочитать последовательные данные и распечатать их как строку t = t * 0,05 obj.pos.x = t
Подготовка вашего Arduino:
Скрипт Python готов прослушивать значения из COM-порта и соответствующим образом анимировать графику, но наш Arduino еще не готов. Сначала мы должны подключить ультразвуковой датчик к Arduino в соответствии со следующей схемой. Если вы совершенно не знакомы с американским датчиком и Arduino, тогда вам придется вернуться к руководству по измерению расстояния на основе Arduino и ультразвукового датчика.
Затем загрузите программу Arduino, указанную в конце этой страницы. Программа самообъясняется с использованием строк комментариев. Мы знаем, что ультразвуковой датчик работает, вычисляя время, необходимое для того, чтобы импульс поразил объект и вернулся обратно. Это значение рассчитывается с помощью функции PulseIn в Arduino. Позже затраченное время преобразуется в расстояние с помощью строки ниже.
dist = (timetaken / 2) / 2,91;
Здесь расстояние рассчитывается в миллиметрах (мм).
За работой:
Работа над проектом проста. Запустите программу Python и поместите объект перед датчиком США, как показано ниже:
Теперь запустите программу python, и вы должны заметить, как белый прямоугольник перемещается вместе с вашей бумагой. Расстояние между вашей бумагой и датчиком также будет отображаться в окне оболочки, как показано на изображении ниже.
Вот как мы можем отслеживать движение объекта с помощью ультразвукового датчика и Python с Arduino.
Надеюсь, вы поняли проект и получили удовольствие от его создания. Это всего лишь один тонкий шаг к python, но с его помощью вы можете создать гораздо больше творческих вещей. Если у вас есть идеи, что построить с этим, напишите их в разделе комментариев и используйте форумы для технической помощи. Увидимся с еще одним интересным проектом на Python.