- Передумови:
- Встановлення VPython на ваш комп'ютер:
- Програмування VPython:
- Підготовка вашого Arduino:
- Робоча:
У нашому попередньому підручнику ми дізналися, як встановити python на нашу машину Windows і як взаємодіяти Arduino з python за допомогою простого проекту управління світлодіодами. Якщо ви новачок, настійно рекомендую повернутися до попереднього підручника, оскільки цей підручник є продовженням того самого.
Можливо, ви вже почали задаватися питанням, навіщо нам потрібен 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, щоб завантажити exe-файл для Visual Python. Не вибирайте інсталяцію 64-розрядної версії, навіть якщо ваш апарат працює на 64-розрядної версії. Просто перейдіть за вказаним посиланням.
Крок 3. Запустіть файл exe та виконайте налаштування. Не змінюйте шлях до каталогу за замовчуванням і переконайтеся, що вибрали “повне встановлення”.
Крок 4. Після встановлення ви повинні знайти нову програму з назвою “VIDLE (VPython)” на робочому столі чи панелі програми, як показано нижче.
Крок 5. Запустіть програму, і ви отримаєте вікно, як показано нижче.
Крок 6. Це вікно, куди ми будемо вводити програму для VPython. Але зараз давайте перевіримо, чи працює Vpython, відкривши приклад програми. Для цього виберіть File-> Open-> Bounce
Крок 7. Ви повинні відкрити приклад програми. Спробуйте запустити програму за допомогою Run -> Run Module . Якщо все працює належним чином, ви повинні отримати наступний екран.
Ви повинні побачити вікно «Оболонка» (ліворуч) із двома >>>, що вказує на успішну компіляцію, і власне вікно (спереду), яке показує, як кулька підстрибує.
Крок 8. Ви також можете спробувати інші приклади програм, щоб розкрити силу VPython, наприклад, приклад програми під назвою “електричний двигун” вразить вас наступним екраном.
Крок 9. Це означає, що ваш VPython готовий до використання, і ви можете перейти до теми “ Програмування вашого Vpython ”.
Крок 10. В іншому випадку, якщо ви схожий на багатьох із багатьох, хто отримує "помилку" , не втрачайте надії, оскільки ми розберемо цю проблему в подальших кроках
Крок 11. Відкрийте Мій комп'ютер -> диск C -> Python 27 -> Скрипти -> local.bat . Це запустить командний рядок, як показано нижче
Крок 12. Тепер введіть “pip install --upgrade numpy” і натисніть клавішу enter. Нова версія Numpy повинна бути встановлена на вашому комп'ютері. Можливо, вам доведеться почекати деякий час, якщо підключення до Інтернету повільне.
Крок 13. Після цього ви можете повернутися до кроку No 4 і спробувати приклад програми, і ви зможете змусити її працювати.
Програмування VPython:
Далі ми починаємо програмування у вікні VPython. У цій програмі ми створимо два прямокутні тривимірні об'єкти, один буде розміщений в центрі екрана з посиланням на стаціонарний ультразвуковий датчик, а інший буде знаходитися в динамічному місці на основі відстані між американським датчиком і об'єктом (папером).
Повний код Python можна знайти в кінці цієї сторінки. Далі я пояснив цей код python, розділивши їх на невеликі значущі сміття.
Першим рядком було б імпортувати візуальну бібліотеку, щоб ми могли створювати тривимірні об'єкти. Рядок нижче робить те саме.
з візуального імпорту *
Ви повинні бути знайомі з наступними чотирма рядками, оскільки ми вже використовували їх у нашому попередньому уроці. Вони використовуються для імпорту послідовної та часової бібліотеки, а також встановлюють послідовне з'єднання з Arduino на COM18 з 9600 як швидкість передачі даних
import serial #Serial імпортовано для часу імпорту послідовного зв'язку # Необхідно використовувати функції затримки ArduinoSerial = serial.Serial ('com18', 9600) # Створити об'єкт послідовного порту з назвою arduinoSerialData time.sleep (2) # зачекайте 2 секунди для зв'язку до закріпитися
Тепер настав час створювати об’єкти. Я створив два трикутники прямокутника, названі як obj та wall. WallL є стаціонарною стіною в блакитному кольорі розміщується в центрі екрану і OBJ це рухливий об'єкт в білому кольорі. Я також розмістив текст “Американський датчик” біля об’єкта стіни.
obj = коробка (pos = (- 5,0,0), розмір = (0,1,4,4), колір = color.white) стінка L = коробка (pos = (- 1,0,0), розмір = (0,2, 12,12), color = color.cyan) текст (text = 'датчик США', ось = (0,1,0), pos = (- 2, -6,0), глибина = -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 & Ultrasonic.
Потім завантажте програму Arduino, подану в кінці цієї сторінки. Програма сама пояснюється за допомогою рядків коментарів. Ми знаємо, що ультразвуковий датчик працює, обчислюючи час, протягом якого імпульс потрапляє на предмет і повертається назад. Це значення обчислюється за допомогою функції PulseIn в Arduino. Пізніше витрачений час перетворюється на відстань за допомогою рядка нижче.
dist = (зайнятий час / 2) / 2,91;
Тут відстань обчислюється в міліметрах (мм).
Робоча:
Робота проекту проста. Запустіть програму Python і поставте об'єкт перед американським датчиком, як показано нижче:
Тепер запустіть програму python, і ви зможете помітити, як білий прямокутник рухається разом з вашим папером, відстань між вашим папером і датчиком також відображатиметься у вікні оболонки, як показано на малюнку нижче.
Ось як ми можемо відстежувати рух об’єкта за допомогою ультразвукового датчика та Python з Arduino.
Сподіваюся, ви зрозуміли проект і сподобалося його будувати. Це лише один тонкий крок до python, але ви можете створити набагато більше креативних речей, використовуючи це. Якщо ви маєте уявлення про те, що будувати за допомогою цього повідомлення, розмістіть їх у розділі коментарів та скористайтеся форумами для отримання технічної допомоги. До зустрічі з іншим цікавим проектом python.