Obsah:
- Krok 1: Čo potrebujete…
- Krok 2: Spájkovanie dosky
- Krok 3: Nastavenie Arduina
- Krok 4: Nastavenie Pythonu
- Krok 5: Kde sa stane mágia
Video: Servodriver-Board s Python-GUI a Arduino: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Pri prototypovaní alebo stavbe modelov lietadiel sa často stretávate s problémom, že musíte skontrolovať zdvih serva alebo nastaviť serva do strednej polohy.
V prípade, že sa nechystáte vybudovať celý svoj RC systém alebo testovať, ako ďaleko môžete tlačiť na servo alebo kde je stredová poloha, potom je táto doska pre vás! Umožňuje vám presunúť servo do určených polôh alebo sa vrátiť späť.
Funguje to prekvapivo dobre, dokonca aj so 6 servami, ktoré v slučke pretekajú z jednej polohy do druhej.
Je to tiež pekný projekt na zoznámenie sa s komunikáciou medzi Python-GUI a Arduino pomocou Serial.
Krok 1: Čo potrebujete…
Na tento projekt budete potrebovať:
Hardvér
- Arduino nano s káblom. Použil som klon a Pythonov kód v skutočnosti očakáva klonový čip CH340
- Prototypová doska. Stačí 7 x 5 cm
- Asi 2, 54 mm hlavičky a piny
- 1-6 serv
- Napájanie serva (použil som batériový balíček so 4 batériami)
Softvér
- Python 3:
- Ovládač USB pre čipy CH340: Jednoducho vyhľadajte ovládače pre ovládače CH340 pomocou Googlu
- Arduino IDE:
Krok 2: Spájkovanie dosky
Podľa Fritzinga na obrázku je spájkovanie skutočne priamočiare. Uistite sa, že servá môžete ľahko pripojiť k 3-kolíkovým radom.
- 3-kolíkové rady sú pripevnené k digitálnym pinom 3, 5, 6, 9, 10 a 11 Arduino nano.
- Červený vodič je pripevnený k 5V-kolíku Arduina
- Čierny vodič je pripojený k kolíku GND Arduina
- Dvojica pinov pod 3-kolíkovými radmi slúži na pripojenie typického napájacieho zdroja RC prijímača. Môžete ľubovoľne pridávať konektory, napríklad skrutkovacie svorky, konektory XT, JST alebo … alebo …
Osobne sa mi páči rad ženských hlavičiek, do ktorých môžem vložiť Arduino, ale je to na vás.
Upozorňujeme, že skrátené ženské hlavičky sú prepojkou, ktorá vám umožňuje napájať servo pomocou 5V zdroja Arduino na testovacie účely. Ak to príliš namáhate, Arduino sa resetuje a stratí správne tempo. Musia byť odstránené pred pripojením iného zdroja napájania.
Krok 3: Nastavenie Arduina
Nainštalujte Arduino IDE a zaistite flash Arduino nano pomocou priloženého náčrtu.
Krok 4: Nastavenie Pythonu
Po stiahnutí si nainštalujte Python 3. Nezabudnite zaškrtnúť možnosť vytvoriť premennú „PATH“.
Pomocou pip musíte nainštalovať ďalšie dva balíky. Za týmto účelom stlačte kláves „Windows“, zadajte „cmd“a kliknite na „Enter“. Do príkazového riadka zadajte nasledujúce príkazy:
- pip install serial
- piip install pyserial
- pip install tkinter
Ako vidíte, potrebujem moduly sériové aj pyserial, čo pravdepodobne nie je najefektívnejšie, pretože pyserial by mal nahradiť sériový. Napriek tomu to funguje a ja sa ešte len začínam učiť;).
Otvorte skript Python v IDE a spustite ho alebo ho spustite priamo z terminálu.
V rozbaľovacej ponuke si môžete vybrať z dvoch režimov „Choď rovno“a „Ping Pong“:
- Choďte rovno: V prvom stĺpci zadajte polohu servo v mikrosekundách a stlačením „Štart“sa servo presunie do určenej polohy.
- Ping Pong: Do druhého a tretieho stĺpca zadajte dolnú a hornú hranicu. To je dolná a horná poloha, medzi ktorými sa servo vráti tam a späť. V stĺpci „Ping Pong Time“môžete zadať čas v milisekundách, počas ktorého bude servo čakať, kým sa dostane do hornej alebo dolnej polohy. Stlačte „Štart“a servo sa začne pohybovať tam a späť, stlačte „Zastaviť“a servo sa zastaví.
Krok 5: Kde sa stane mágia
V neposlednom rade chcem poukázať na niektoré detaily v kóde pre tých, ktorí sa chcú dostať do trochu sériovej komunikácie medzi Pythonom a Arduinom.
Čo sa teraz stane v programe Python?
Program najskôr skontroluje, čo je pripojené k portom COM v tomto riadku, a uloží ho do zoznamu:
self. COMPortsList = zoznam (serial.tools.list_ports.comports ())
Potom prechádza zoznamom, kým nenájde notoricky známy čip CH340, uloží ho a potom nadväzuje sériové pripojenie po cykle for-loop. Všimnite si toho, že slučka for-loop sa preruší hneď, ako sa nájde prvý CH340.
for p in self. COMPortsList: if "CH340" in p [1]: # Hľadám Arduino Clone self. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort, 57600)
Sériové pripojenie je nadviazané s portom COM s prenosovou rýchlosťou 57 600.
A čo robí kód Arduino? Pretože Arduino má iba jeden port COM, sériové pripojenie je iba jeden riadok:
Serial.begin (57600);
Teraz môžeme oba porty použiť na komunikáciu. V tomto prípade iba správy z Pythonu do Arduina. Správy sa sem odosielajú z Pythonu. Sériové pripojenie štandardne prenáša bajty. Je to tiež najrýchlejší spôsob odosielania údajov a pokiaľ viem, je stále dosť rozšírený. Inty pre počet serv (takže Arduino vie, ktoré servo sa má presunúť) a poloha v mikrosekundách sa premenia na bajt.
Command = struct.pack ('> B', self. Place) # Premenná int „self. Place“sa zmení na bajt
self. Ser.write (Command) # Zapísanie bajtu na sériový port Command = int (self. ServoPos.get ()) // 10 # Čítanie vstupu z poľa a zapnutie príkazu int Command = struct.pack (' > B ', príkaz) # Zapnutie bajtu v sebe. Ser.write (príkaz) # Zapísanie bajtu na sériový port
Tiež analýza údajov vyžaduje určitý čas (napríklad interpretácia štyroch bajtov „1“, „2“, „3“a „0“ako int 1230, nie ako štyri rôzne znaky) a je lepšie to urobiť nie na Arduine.
Na strane Arduino sa odoslané informácie zachytávajú nasledovne:
if (Serial.available ()> 1) {// Ak sú k dispozícii sériové údaje, potom sa zadá slučka c = Serial.read (); // Prvý bajt (počet serv) je uložený do premennej Micros = Serial.read (); // Tu sa uloží poloha serva Micros = Micros * 10; }
Odporúča:
Sada MIDI bicích pre Python a Arduino: 5 krokov (s obrázkami)
MIDI súprava bicích nástrojov pre Python a Arduino: Od malička som si vždy chcel kúpiť súpravu bicích nástrojov. V tom čase všetky hudobné zariadenia nemali všetky digitálne aplikácie, ako ich máme dnes veľa, a preto boli ceny spolu s očakávaniami príliš vysoké. Nedávno som sa rozhodol kúpiť c
Rozpoznávanie tváre a identifikácia - Arduino Face ID pomocou OpenCV Python a Arduino .: 6 krokov
Rozpoznávanie tváre a identifikácia | Arduino Face ID pomocou OpenCV Python a Arduino .: Rozpoznávanie tváre AKA face ID je v dnešnej dobe jednou z najdôležitejších funkcií mobilných telefónov. Preto som mal otázku „môžem mať pre svoj projekt Arduino identifikátor tváre“? a odpoveď je áno … Moja cesta začala takto: Krok 1: Prístup k nám
Jednoduchá hra na hádanie - Python + XBees + Arduino: 10 krokov
Jednoduchá hádacia hra - Python + XBees + Arduino: Hra funguje takto: Máte 4 pokusy uhádnuť písmeno medzi „a“- „h“- > Uhádni správne písmeno: Vyhrávate! ?-> Uhádnete nesprávne písmeno: Hra sa skončila?-> Uhádnete akúkoľvek inú postavu mimo „a“- „h“: Koniec hry? Vaše Arduino vám umožní
Hrajte hru dinosaurov pomocou krokov Arduino a Python 3: 5
Hrajte hru dinosaurov pomocou Arduino a Python3: Popis projektu Väčšina z nás hrala hru dinosaurov od spoločnosti Google, keď nefungoval náš internet, a ak ste túto hru nehrali, nebojte sa teraz, ale nie konvenčným spôsobom, stlačením tlačidiel, ale pohybom tvojej ruky. Takže v tomto
Plotovanie s intenzitou svetla pomocou hlavnej knižnice Arduino a Python Arduino: 5 krokov
Ľahké vykresľovanie pomocou Arduino a hlavnej knižnice Arduino v Pythone: Arduino je ekonomický, ale vysoko efektívny a funkčný nástroj a jeho programovanie v programe Embedded C robí proces vytvárania projektov únavným! Modul Arduino_Master v Pythone to zjednodušuje a umožňuje nám vykonávať výpočty, odstraňovať hodnoty odpadu,