- Предварителни условия:
- Инсталиране на VPython на вашия компютър:
- Програмиране на VPython:
- Подготовка на вашия Arduino:
- Работа:
В предишния ни урок научихме как да инсталираме python на нашата Windows машина и как да свързваме Arduino с python, използвайки прост проект за светодиодно управление. Ако сте нов, силно ви препоръчвам да се върнете към предишния урок, тъй като този урок е продължение на същия.
Може би вече сте започнали да се чудите защо ще ни трябва python с Arduino, ако всичко, което той може да направи, е просто да комуникира през сериен порт. Но Python е много силна платформа за разработка, в която могат да бъдат интегрирани много страхотни приложения, в които машинно обучение, компютърно зрение и много други. В този урок ще научим как можем да създадем малък графичен интерфейс с помощта на Python. За целта ще ни трябва модул, наречен Vpython. Следният урок е приложим само за потребител на Windows, тъй като за потребителите на Mac или Linux процедурата е различна.
В края на този урок ще научим как можем да създадем прост GUI, използвайки 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 . Ако всичко работи както се очаква, трябва да получите следния екран.
Трябва да видите прозореца Shell (вляво) с две >>>, показващи успешна компилация и действителния прозорец (отпред), който показва подскачаща топка.
Стъпка 8. Можете също така да опитате други примерни програми, за да откриете силата на VPython, например примерната програма, наречена „електрически двигател“, ще ви изуми от следващия екран.
Стъпка 9. Това означава, че вашият VPython е готов за употреба и можете да преминете към темата „ Програмиране на вашия Vpython “.
Стъпка 10. В противен случай, ако сте като един от многото, които получават “numpy Error” , не губете надежда, защото ще разрешим този проблем в следващите стъпки
Стъпка 11. Отворете Моят компютър -> C устройство -> Python 27 -> Скриптове -> local.bat . Това ще стартира команден ред, както е показано по-долу
Стъпка 12. Сега въведете “pip install --upgrade numpy” и натиснете enter. Новата версия на Numpy трябва да се инсталира на вашата машина. Може да се наложи да изчакате известно време, ако вашата интернет връзка е бавна.
Стъпка 13. След като приключите, можете да се върнете към стъпка номер 4 и да опитате примерна програма и трябва да можете да я накарате да работи.
Програмиране на VPython:
След това започваме програмирането в нашия прозорец VPython. В тази програма ще създадем два 3D правоъгълни обекта, единият ще бъде поставен в центъра на екрана с препратка към стационарния ултразвуков сензор, а другият ще бъде на динамично място въз основа на разстоянието между американския сензор и обекта (хартия).
Най- пълен Python код може да бъде намерен в края на тази страница. По-нататък обясних този python код, като ги разделих на малки смислени боклуци.
Първият ред би бил да импортираме визуалната библиотека, за да можем да създаваме 3D обекти. Редът по-долу прави същото.
от визуален импорт *
Трябва да сте запознати със следващите четири реда, тъй като вече ги използвахме в предишния ни урок. Те се използват за импортиране на серийна и времева библиотека и също така установяват серийна връзка с Arduino на COM18 с 9600 като скорост на предаване
import serial #Serial импортиран за време за импортиране на серийна комуникация # Необходимо е да се използват функции за забавяне ArduinoSerial = serial.Serial ('com18', 9600) # Създаване на обект на сериен порт, наречен arduinoSerialData time.sleep (2) # изчакайте 2 секунди за комуникацията до установете се
Сега е време да създавате обекти. Създал съм два 3d правоъгълника, наречени obj и wall. В wallL е неподвижна стена в синьозелен цвят поставени в центъра на екрана и OBJ е движимо обект в бял цвят. Поставил съм и текст „Американски сензор“ близо до обекта на стената.
obj = кутия (pos = (- 5,0,0), размер = (0,1,4,4), цвят = цвят.бял) стена L = кутия (pos = (- 1,0,0), размер = (0,2, 12,12), color = color.cyan) текст (text = 'US сензор', ос = (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 Sensor.
След това качете програмата Arduino, дадена в края на тази страница. Програмата се обяснява сама с помощта на редове за коментари. Знаем, че ултразвуковият сензор работи, като изчислява времето, необходимо на импулса да удари обект и да се върне обратно. Тази стойност се изчислява с помощта на функцията PulseIn в Arduino. По-късно необходимото време се преобразува в разстояние, като се използва долната линия.
dist = (времена / 2) / 2,91;
Тук разстоянието се изчислява в милиметри (mm).
Работа:
Работата на проекта е проста. Стартирайте програмата Python и поставете обект пред американския сензор, както е показано по-долу:
Сега стартирайте програмата на python и бихте могли да забележите, че белият правоъгълник се движи заедно с вашата хартия, разстоянието между вашата хартия и сензора също ще бъде показано в прозореца на черупката, както е показано на изображението по-долу.
Ето как можем да проследим движението на обекта, като използваме ултразвуков сензор и Python с Arduino.
Надявам се, че сте разбрали проекта и ви е било приятно да го изградите. Това е само една фина стъпка към python, но можете да създадете много повече творчески неща, като използвате това. Ако имате някаква идея какво да изградите с този пост, ги публикувайте в раздела за коментари и използвайте форумите за техническа помощ. Ще се видим с друг интересен проект на python.