Obsah:
- Krok 1: Co potřebujete…
- Krok 2: Pájení desky
- Krok 3: Nastavení Arduina
- Krok 4: Nastavení Pythonu
- Krok 5: Kde se kouzlo děje
Video: Servodriver-Board s Python-GUI a Arduino: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Při výrobě prototypů nebo stavbě modelů letadel se často setkáváte s problémem, že musíte zkontrolovat zdvih serva nebo nastavit serva do střední polohy.
V případě, že se nechystáte vybudovat celý svůj RC systém nebo testovat, jak daleko můžete tlačit na servo nebo kde je střed, pak je tato deska pro vás! Umožňuje vám přesunout servo do určených poloh nebo se vrátit zpět.
Funguje to překvapivě dobře, dokonce i se 6 servy, která ve smyčce závodí z jedné polohy do druhé.
Je to také pěkný projekt, který se dozví o komunikaci mezi Python-GUI a Arduino pomocí Serial.
Krok 1: Co potřebujete…
Pro tento projekt budete potřebovat následující:
Hardware
- Arduino nano s kabelem. Použil jsem klon a Python kód ve skutečnosti očekává klon CH340
- Prototypovací deska. 7x5 cm je dost
- Asi 2, 54 mm záhlaví a kolíky
- 1-6 serv
- Napájení serv (použil jsem bateriový balíček se 4 bateriemi)
Software
- Python 3:
- Ovladač USB pro čipy CH340: Ovladače pro ovladače CH340 si stačí vygooglit
- Arduino IDE:
Krok 2: Pájení desky
Pájení je ve skutečnosti přímo vpřed podle Fritzing na obrázku. Jen se ujistěte, že můžete snadno připojit serva k 3-pinovým řadám.
- 3kolíkové řady jsou připojeny k digitálnímu kolíku 3, 5, 6, 9, 10 a 11 Arduino nano.
- Červený vodič je připojen k 5V kolíku Arduina
- Černý vodič je připojen ke kolíku GND Arduina
- Dvojice kolíků pod 3pólovými řadami je určena k připojení typického napájecího zdroje přijímače RC. Konektory můžete libovolně přidávat, například šroubovací svorky, konektory XT, JST nebo … nebo …
Osobně se mi líbí řady ženských záhlaví, do kterých lze vložit Arduino, ale to je na vás.
Vezměte prosím na vědomí, že zkrácené ženské záhlaví jsou propojkou, která vám umožní dodávat servo pomocí 5V zdroje Arduino pro účely testování. Pokud to příliš namáháte, Arduino se resetuje a ztratí správné tempo. MUSÍ být odstraněny, než připojíte další napájecí zdroj.
Krok 3: Nastavení Arduina
Nainstalujte Arduino IDE a flashujte Arduino nano pomocí přiložené skici.
Krok 4: Nastavení Pythonu
Po stažení si nainstalujte Python 3. Nezapomeňte zaškrtnout možnost vytvořit proměnnou „PATH“.
Pomocí pip musíte nainstalovat další dva balíčky. Chcete-li to provést, stiskněte klávesu „Windows“, zadejte „cmd“a stiskněte „Enter“. Do příkazového řádku zadejte následující příkazy:
- pip install serial
- piip install pyserial
- pip install tkinter
Jak vidíte, potřebuji moduly sériové i pyserial, což s největší pravděpodobností není nejúčinnější, protože pyserial by měl nahradit serial. Přesto to funguje a já se teprve začínám učit;).
Otevřete Python-Script v IDE a spusťte jej, nebo jej spusťte přímo z terminálu.
V rozbalovací nabídce si můžete vybrat ze dvou režimů „Go Straight“a „Ping Pong“:
- Jděte rovně: Do prvního sloupce zadejte polohu servo v mikrosekundách a stisknutím tlačítka „Start“se servo přesune do určené polohy.
- Ping Pong: Zadejte dolní hranici a horní hranici ve druhém a třetím sloupci. To je spodní a horní poloha, mezi kterými se servo vrátí zpět. Ve sloupci „Ping Pong Time“můžete zadat čas v milisekundách, po který bude servo čekat, až dosáhne horní nebo dolní polohy. Stiskněte „Start“a servo se začne pohybovat tam a zpět, stiskněte „Stop“a servo se zastaví.
Krok 5: Kde se kouzlo děje
V neposlední řadě chci poukázat na některé detaily v kódu pro ty, kteří se chtějí dostat do trochu sériové komunikace mezi Pythonem a Arduinem.
Co se nyní stane v programu Python?
Program nejprve zkontroluje, co je připojeno k portům COM v tomto řádku, a uloží jej do seznamu:
self. COMPortsList = seznam (serial.tools.list_ports.comports ())
Poté prochází seznamem, dokud nenajde nechvalně známý čip CH340, uloží jej a poté naváže sériové připojení po smyčce for-loop. Pamatujte, že smyčka pro se přeruší, jakmile je nalezen první CH340.
for p in self. COMPortsList: if "CH340" in p [1]: # Hledám Arduino Clone self. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort, 57600)
Sériové připojení je navázáno s portem COM s přenosovou rychlostí 57 600.
A co dělá kód Arduino? Protože Arduino má pouze jeden COM port, sériové připojení je pouze jeden řádek:
Serial.begin (57600);
Nyní můžeme ke komunikaci použít oba porty. V tomto případě pouze zprávy z Pythonu do Arduina. Zprávy jsou zde odesílány z Pythonu. Sériové připojení standardně přenáší bajty. To je také nejrychlejší způsob odesílání dat, a pokud vím, také stále velmi rozšířený. Inty pro počet serv (takže Arduino ví, které servo se má přesunout) a pozice v mikrosekundách se změní na bajt.
Command = struct.pack ('> B', self. Place) # Proměnná int "self. Place" se změní na bajt
self. Ser.write (Command) # Zápis bajtu na Serial-Port Command = int (self. ServoPos.get ()) // 10 # Čtení vstupu z pole a zapnutí int Command = struct.pack (' > B ', Command) # Otočení int v bytovém self. Ser.write (Command) # Zápis bajtu na sériový port
Také analýza dat vyžaduje čas (například interpretovat čtyři bajty „1“, „2“, „3“a „0“jako int 1230, nikoli jako čtyři různé znaky) a je lepší to udělat ne na Arduinu.
Na straně Arduino jsou odeslané informace vyzvednuty následujícím způsobem:
if (Serial.available ()> 1) {// Pokud jsou k dispozici sériová data, pak je zadána smyčka c = Serial.read (); // První bajt (počet serv) je uložen do proměnné Micros = Serial.read (); // Zde se ukládá poloha serva Micros = Micros * 10; }
Doporučuje:
MIDI bicí sada pro Python a Arduino: 5 kroků (s obrázky)
MIDI bicí souprava pro Python a Arduino: Už od dětství jsem si vždy chtěl koupit bicí soupravu. Tehdy všechno hudební vybavení nemělo všechny digitální aplikace, protože dnes jich máme spoustu, proto byly ceny spolu s očekáváními příliš vysoké. Nedávno jsem se rozhodl koupit c
Rozpoznávání a identifikace obličeje - Arduino Face ID pomocí OpenCV Python a Arduino .: 6 kroků
Rozpoznávání a identifikace obličeje | Arduino Face ID pomocí OpenCV Python a Arduino .: Rozpoznání obličeje AKA face ID je v dnešní době jednou z nejdůležitějších funkcí mobilních telefonů. Měl jsem tedy otázku " mohu mít ID tváře pro svůj projekt Arduino " a odpověď zní ano … Moje cesta začala takto: Krok 1: Přístup k
Jednoduchá hádací hra - Python + XBees + Arduino: 10 kroků
Jednoduchá hádací hra - Python + XBees + Arduino: Hra funguje takto: Máte 4 pokusy uhodnout písmeno mezi „a“- „h“- > Hádejte správné písmeno: Vyhráváte! ?-> Hádejte špatné písmeno: Hra skončila?-> Hádejte jakoukoli jinou postavu mimo „a“- „h“: Hra skončila? Vaše Arduino vám umožní
Vizualizujte si svůj zisk a ztrátu v bitcoinech s Arduino a Python: 6 kroků
Vizualizujte si svůj zisk a ztrátu v bitcoinech pomocí Arduina a Pythonu: Základní myšlenka Osobně jsem investorem kryptoměny. Ale také mám spoustu práce, o kterou se musím starat. Nejsem tedy schopen sledovat cenu bitcoinu tak 10krát za minutu. Přesto chci vědět, jestli vydělávám nebo ztrácím peníze. Tím pádem
Vykreslování intenzity světla pomocí Arduino a hlavní knihovny Arduino Python: 5 kroků
Vykreslování intenzity světla pomocí Arduino a hlavní knihovny Arduino v Pythonu: Arduino je ekonomický, ale vysoce účinný a funkční nástroj a jeho programování v Embedded C dělá proces vytváření projektů zdlouhavým! Modul Arduino_Master v Pythonu to zjednodušuje a umožňuje nám provádět výpočty, odstraňovat odpadky