- Predpoklady:
- Inštalácia VPython na váš počítač:
- Programovanie VPython:
- Príprava vášho Arduina:
- Pracovné:
V našom predchádzajúcom tutoriáli sme sa naučili, ako nainštalovať python na náš stroj so systémom Windows a ako prepojiť Arduino s pythonom pomocou jednoduchého projektu riadenia LED. Ak ste nový, dôrazne vám odporúčam vrátiť sa k predchádzajúcemu tutoriálu, pretože tento tutoriál nadväzuje na ten istý.
Možno ste si už začali klásť otázku, prečo by sme potrebovali python s Arduinom, ak by všetko, čo by mohol robiť, bola jednoduchá komunikácia cez sériový port. Ale Python je veľmi silná vývojová platforma, na ktorej je možné integrovať množstvo skvelých aplikácií, do ktorých je možné integrovať strojové učenie, počítačové videnie a oveľa viac. V tomto tutoriáli sa dozvieme, ako môžeme vytvoriť malé grafické rozhranie pomocou Pythonu. Aby sme to dosiahli, budeme potrebovať modul s názvom Vpython. Nasledujúci návod je použiteľný iba pre používateľov systému Windows, pretože pre používateľov počítačov Mac alebo Linux je postup odlišný.
Na konci tohto tutoriálu sa dozvieme, ako môžeme vytvoriť jednoduché GUI pomocou Pythonu. Vytvoríme malú animáciu, ktorá reaguje na hodnotu ultrazvukového senzora, ktorý je pripojený k Arduinu. Táto aplikácia sleduje objekt pomocou ultrazvukového snímača a zobrazuje ho v grafickej podobe na počítači pomocou nástroja VPython. Keď pohybujeme objektom, ultrazvukový senzor zaznamená vzdialenosť a odošle túto informáciu do programu Python pomocou Arduina, ktorý tiež presunie objekt v počítači. Znie to zaujímavo, dobre! Tak poďme na to…
Predpoklady:
- Arduino (ľubovoľná verzia)
- Ultrazvukový senzor HC-SR04
- Pripojenie drôtov
- Počítač s Pythonom
- Znalosti z predchádzajúceho tutoriálu
Inštalácia VPython na váš počítač:
V našom predchádzajúcom tutoriáli sme sa už naučili, ako nainštalovať python na váš počítač a ako sa v ňom pohybovať a vytvárať jednoduchý program s Arduinom. Teraz sme navyše nainštalovali Visual Python (VPython), aby sme mohli vytvárať skvelú grafiku pomocou Pythonu pre Arduino. Nasledujúcich jednoduchých krokov je začať s VPython
Krok 1. Uistite sa, že Python je už nainštalovaný podľa predchádzajúcich pokynov tutoriálu.
Krok 2. Kliknutím na VPython stiahnete súbor exe pre Visual Python. Neinštalujte si 64-bitovú verziu, aj keď je váš počítač 64-bitový. Stačí kliknúť na uvedený odkaz.
Krok 3. Spustite súbor exe a postupujte podľa nastavenia. Nemeňte predvolenú cestu k adresáru a uistite sa, že ste vybrali možnosť „úplná inštalácia“.
Krok 4. Po nainštalovaní by ste mali nájsť novú aplikáciu s názvom „VIDLE (VPython)“ na ploche alebo paneli aplikácie, ako je to znázornené nižšie.
Krok 5. Spustite aplikáciu a mali by ste dostať okno, ako je uvedené nižšie.
Krok 6. Toto je okno, do ktorého budeme písať program pre VPython. Teraz si však skontrolujme, či Vpython funguje, a to otvorením ukážkového programu. Vyberte File-> Open-> Bounce
Krok 7. Mali by ste otvoriť ukážkový program. Skúste program spustiť pomocou príkazov Spustiť -> Spustiť modul . Ak všetko funguje podľa očakávaní, mali by ste dostať nasledujúcu obrazovku.
Mali by ste vidieť okno Shell (vľavo) s dvoma >>> označujúcimi úspešnú kompiláciu a skutočné okno (vpredu), ktoré ukazuje odrážanie lopty.
Krok 8. Môžete tiež vyskúšať iné ukážkové programy na objavenie sily VPython, napríklad ukážkový program s názvom „elektrický motor“ vás ohromí na nasledujúcej obrazovke.
Krok 9. To znamená, že váš VPython je pripravený na použitie a môžete prejsť na tému „ Programovanie vášho Vpython “.
Krok 10. Inak, ak ste ako jeden z mnohých, ktorým sa zobrazí „chyba“ , nestrácajte nádej, pretože túto otázku vyriešime v ďalších krokoch.
Krok 11. Otvorte Môj počítač -> jednotka C -> Python 27 -> Skripty -> local.bat . Spustí sa príkazový riadok, ako je uvedené nižšie
Krok 12. Teraz zadajte príkaz „pip install --upgrade numpy“ a stlačte kláves enter. Na vašom počítači by sa mala nainštalovať nová verzia Numpy. Ak je vaše pripojenie k internetu pomalé, možno budete musieť nejaký čas počkať.
Krok 13. Po dokončení sa môžete vrátiť ku kroku číslo 4 a vyskúšať ukážkový program. Mali by ste byť schopní uviesť ho do činnosti.
Programovanie VPython:
Ďalej začneme programovať do nášho okna VPython. V tomto programe vytvoríme dva 3D obdĺžnikové objekty, jeden bude umiestnený v strede obrazovky odkazom na stacionárny ultrazvukový snímač a druhý bude na dynamickom mieste na základe vzdialenosti medzi americkým snímačom a objektom (papier).
Kompletný kód Python možno nájsť na konci tejto stránky. Ďalej som tento pythonový kód vysvetlil ich rozdelením na malé zmysluplné džunky.
Prvým riadkom by bol import vizuálnej knižnice, aby sme mohli vytvárať 3D objekty. To isté robí aj nasledujúci riadok.
z vizuálneho importu *
Mali by ste byť oboznámení s nasledujúcimi štyrmi riadkami, pretože sme ich už použili v našom predchádzajúcom návode. Používajú sa na import sériovej a časovej knižnice a tiež na nadviazanie sériového spojenia s Arduinom na COM18 s prenosovou rýchlosťou 9600
import serial #Serial imported for Serial communication import time #Required to use delay functions ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object called arduinoSerialData time.sleep (2) #wait for 2 secounds for the communication to usadiť sa
Teraz je čas vytvárať objekty. Vytvoril som dva 3d obdĺžniky pomenované ako obj a wall. Walll je stacionárny stena cyan farbe umiestnené v strede obrazovky a obj je pohyblivý prvok v bielej farbe. Tiež som umiestnil text „americký senzor“ do blízkosti objektu na stene.
obj = box (poz = (- 5,0,0), veľkosť = (0,1,4,4), farba = color.white) wallL = box (pos = (- 1,0,0), veľkosť = (0,2, 12,12), color = color.cyan) text (text = 'US senzor', os = (0,1,0), pos = (- 2, -6,0), hĺbka = -0,3, farba = farba.cyan)
Som si istý, že vyššie uvedené tri riadky by sa pre väčšinu čitateľov, ktorí čítajú prvýkrát, javili ako grécky a latinský, ale časom by ste tomu porozumeli. Všetko, čo je uvedené v zátvorkách, je (x, y, z) súradnice. A tieto súradnice sú veľmi podobné tým, ktoré nájdeme na našej hodine geometrie pre stredné školy, ako je uvedené nižšie.
Teraz je grafický a sériový port pripravený. Všetko, čo musíme urobiť, je prečítať údaje a umiestniť údaj „obj“ (biely obdĺžnik) na miesto podľa údajov pochádzajúcich z Arduina. To je možné dosiahnuť nasledujúcimi riadkami, kde obj.pos.x riadi polohu súradníc X objektu (biely obdĺžnik).
t = int (ArduinoSerial.readline ()) # prečítajte sériové údaje a vytlačte ich ako riadok t = t * 0,05 obj.pos.x = t
Príprava vášho Arduina:
Skript Python je pripravený počúvať hodnoty z portu COM a podľa toho animovať grafiku, ale naše Arduino ešte nie je pripravené. Najprv musíme pripojiť ultrazvukový senzor k Arduinu podľa nasledujúceho schémy zapojenia. Ak ste pre americký senzor a Arduino úplne nová, musíte sa vrátiť k výučbe merania vzdialenosti na základe Arduina a ultrazvukového senzora.
Potom nahrajte program Arduino uvedený na konci tejto stránky. Program je možné vysvetliť pomocou riadkov komentárov. Vieme, že ultrazvukový senzor funguje na základe výpočtu času potrebného na to, aby impulz zasiahol objekt a vrátil sa späť. Táto hodnota sa počíta pomocou funkcie PulseIn v Arduine . Neskôr sa potrebný čas prevedie na vzdialenosť pomocou nižšie uvedeného riadku.
dist = (rozvrhnutý čas / 2) / 2,91;
Tu sa vzdialenosť počíta v milimetroch (mm).
Pracovné:
Fungovanie projektu je jednoduché. Spustite program Python a umiestnite objekt pred americký senzor, ako je to zobrazené nižšie:
Teraz spustite program python a mali by ste byť schopní všimnúť si pohyb bieleho obdĺžnika spolu s papierom, vzdialenosť medzi papierom a senzorom sa tiež zobrazí v okne shellu, ako je to znázornené na obrázku nižšie.
Takto môžeme sledovať pohyb objektu pomocou ultrazvukového senzora a Pythonu s Arduinom.
Dúfam, že ste pochopili projekt a páčilo sa vám jeho zostavenie. Toto je iba jeden jemný krok k pythonu, ale pomocou tohto programu môžete vytvoriť oveľa kreatívnejšie veci. Ak máte nejaké predstavy o tom, čo sa dá na tomto príspevku vytvoriť, uverejnite ich v sekcii komentárov a použite technickú pomoc na fórach. Uvidíme sa s ďalším zaujímavým projektom v jazyku python.