V našem předchozím tutoriálu jsme se naučili, jak nainstalovat python na náš stroj se systémem Windows a jak propojit Arduino s pythonem pomocí jednoduchého projektu ovládání LED. Pokud jste noví, důrazně vám doporučuji vrátit se k předchozímu tutoriálu, protože tento tutoriál je jeho pokračováním.
Možná jste si již začali klást otázku, proč bychom potřebovali python s Arduinem, kdyby vše, co by mohl udělat, bylo jednoduše komunikovat přes sériový port. Python je ale velmi silná vývojová platforma, na které lze integrovat spoustu skvělých aplikací, do nichž lze integrovat strojové učení, počítačové vidění a mnohem více. V tomto tutoriálu se naučíme, jak můžeme vytvořit malé grafické rozhraní pomocí Pythonu. K tomu budeme potřebovat modul s názvem Vpython. Následující výukový program je použitelný pouze pro uživatele systému Windows, protože pro uživatele systému Mac nebo Linux je postup odlišný.
Na konci tohoto tutoriálu se naučíme, jak pomocí Pythonu vytvořit jednoduché grafické uživatelské rozhraní. Uděláme malou animaci, která reaguje na hodnotu ultrazvukového senzoru připojeného k Arduinu. Tato aplikace sleduje objekt pomocí ultrazvukového senzoru a zobrazuje jej v grafické podobě na počítači pomocí VPython. Jak pohybujeme objektem, ultrazvukový senzor snímá vzdálenost a odesílá tyto informace do programu Python pomocí Arduina a ten také přesune objekt v počítači. Zní to zajímavě správně! Tak pojďme začít…
Předpoklady:
- Arduino (libovolná verze)
- Ultrazvukový senzor HC-SR04
- Připojení vodičů
- Počítač s Pythonem
- Znalosti z předchozího kurzu
Instalace VPython na váš počítač:
V našem předchozím tutoriálu jsme se již naučili, jak nainstalovat python na váš počítač a jak se po něm pohybovat a vytvořit jednoduchý program s Arduino. Nyní jsme navíc nainstalovali Visual Python (VPython), abychom mohli vytvářet skvělou grafiku pomocí Pythonu pro Arduino. Níže uvedené jednoduché kroky, jak začít s VPythonem
Krok 1. Ujistěte se, že Python je již nainstalován podle předchozích pokynů tutoriálu.
Krok 2. Kliknutím na VPython stáhnete soubor exe pro Visual Python. Neaktivujte si instalaci 64bitové verze, i když váš počítač běží na 64bitové verzi. Stačí kliknout na uvedený odkaz.
Krok 3. Spusťte soubor exe a postupujte podle nastavení. Neměňte výchozí cestu k adresáři a ujistěte se, že jste vybrali „úplnou instalaci“.
Krok 4. Po instalaci byste měli najít novou aplikaci s názvem „VIDLE (VPython)“ na ploše nebo na panelu aplikace, jak je uvedeno níže.
Krok 5. Spusťte aplikaci a měli byste dostat okno, jak je znázorněno níže.
Krok 6. Toto je okno, kde budeme psát v programu pro VPython. Prozatím si ale ověříme, zda Vpython funguje, otevřením ukázkového programu. Chcete-li to provést, vyberte Soubor-> Otevřít-> Odrazit
Krok 7. Měli byste otevřít ukázkový program. Zkuste spustit program pomocí Spustit -> Spustit modul . Pokud vše funguje podle očekávání, měli byste získat následující obrazovku.
Měli byste vidět okno Shell (vlevo) se dvěma >>> označujícími úspěšnou kompilaci a skutečné okno (vpředu), které ukazuje odrážení míče.
Krok 8. Můžete také vyzkoušet jiné ukázkové programy, abyste objevili sílu VPythonu, například ukázkový program s názvem „elektrický motor“ vás ohromí na následující obrazovce.
Krok 9. To znamená, že váš VPython je připraven k použití a můžete přejít k tématu „ Programování vašeho Vpythonu “.
Krok 10. Jinak, pokud jste jako jeden z mnoha, kteří dostanou „početnou chybu“ , neztrácejte naději, protože tento problém vyřešíme v dalších krocích
Krok 11. Otevřete Můj počítač -> Jednotka C -> Python 27 -> Skripty -> local.bat . Spustí se příkazový řádek, jak je uvedeno níže
Krok 12. Nyní zadejte „pip install --upgrade numpy“ a stiskněte klávesu enter. Na vašem počítači by měla být nainstalována nová verze Numpy. Možná budete muset chvíli počkat, pokud je vaše připojení k internetu pomalé.
Krok 13. Po dokončení se můžete vrátit ke kroku číslo 4 a vyzkoušet ukázkový program a měli byste být schopni jej uvést do provozu.
Programování VPython:
Dále začneme programovat do našeho okna VPython. V tomto programu vytvoříme dva 3D obdélníkové objekty, jeden bude umístěn ve středu obrazovky odkazem na stacionární ultrazvukový senzor a druhý bude v dynamickém umístění na základě vzdálenosti mezi americkým senzorem a objektem (papír).
Celý kód Pythonu najdete na konci této stránky. Dále jsem vysvětlil tento kód pythonu jejich rozdělením na malé smysluplné džunky.
Prvním řádkem by byl import vizuální knihovny, abychom mohli vytvářet 3D objekty. Níže uvedený řádek dělá totéž.
z vizuálního importu *
Měli byste znát další čtyři řádky, protože jsme je již použili v našem předchozím tutoriálu. Používají se k importu sériové a časové knihovny a také k navázání sériového spojení s Arduino na COM18 s přenosovou rychlostí 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 usadit se
Nyní je čas vytvářet objekty. Vytvořil jsem dva 3d obdélníky pojmenované jako obj a wall. WallL je stacionární stěna cyan barvě umístěné ve středu obrazovky a obj je pohyblivý prvek v bílé barvě. Také jsem umístil text „americký senzor“ blízko objektu zdi.
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 (text = 'US senzor', osa = (0,1,0), pos = (- 2, -6,0), hloubka = -0,3, barva = barva.cyan)
Jsem si jist, že výše uvedené tři řádky by se pro většinu čtenářů, kteří poprvé psali poprvé, javili jako řecké a latinské, ale časem byste tomu rozuměli. Všechno, co je uvedeno v závorkách, je (x, y, z) souřadnic. A tyto souřadnice jsou velmi podobné těm, které najdeme v naší třídě geometrie pro střední školy, jak je uvedeno níže.
Nyní je grafický a sériový port připraven, vše, co musíme udělat, je číst data a umístit „obj“ (bílý obdélník) na místo podle údajů pocházejících z Arduina. To lze provést pomocí následujících řádků, kde obj.pos.x řídí polohu souřadnic X objektu (bílý obdélník).
t = int (ArduinoSerial.readline ()) # načtěte sériová data a vytiskněte je jako řádek t = t * 0,05 obj.pos.x = t
Příprava Arduina:
Skript Pythonu je připraven naslouchat hodnotám z portu COM a odpovídajícím způsobem animovat grafiku, ale naše Arduino ještě není připraveno. Nejprve musíme připojit ultrazvukový senzor k Arduinu podle následujícího schématu. Pokud jste pro americký senzor a Arduino úplně noví, musíte se vrátit k výukovému programu Měření vzdálenosti založenému na Arduino a ultrazvukových senzorech.
Poté nahrajte program Arduino uvedený na konci této stránky. Program lze vysvětlit pomocí řádků komentářů. Víme, že ultrazvukový senzor funguje tak, že vypočítává čas potřebný k tomu, aby puls zasáhl objekt a vrátil se zpět. Tato hodnota se vypočítá pomocí funkce PulseIn v Arduinu. Později je čas převeden na vzdálenost pomocí níže uvedeného řádku.
dist = (timetaken / 2) / 2,91;
Zde se vzdálenost počítá v milimetrech (mm).
Pracovní:
Práce na projektu je jednoduchá. Spusťte program Python a umístěte objekt před americký senzor, jak je znázorněno níže:
Nyní spusťte program python a měli byste si všimnout pohybu bílého obdélníku spolu s papírem, vzdálenost mezi papírem a senzorem se také zobrazí v okně prostředí, jak je znázorněno na obrázku níže.
Takto můžeme sledovat pohyb objektu pomocí ultrazvukového senzoru a Pythonu s Arduinem.
Doufám, že jste pochopili projekt a užili jste si jeho stavbu. Je to jen jeden nenápadný krok k pythonu, ale pomocí tohoto můžete vytvořit mnohem kreativnější věci. Pokud máte nějakou představu o tom, co s tímto příspěvkem vytvořit, přidejte je do sekce komentářů a použijte technickou podporu ve fórech. Uvidíme se s dalším zajímavým projektem pythonu.