![Servodriver-Board s Python-GUI in Arduino: 5 korakov Servodriver-Board s Python-GUI in Arduino: 5 korakov](https://i.howwhatproduce.com/images/001/image-322-65-j.webp)
Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:09
![Servodriver-Board s Python-GUI in Arduino Servodriver-Board s Python-GUI in Arduino](https://i.howwhatproduce.com/images/001/image-322-66-j.webp)
Pri izdelavi prototipov ali izdelavi modelov letal pogosto naletite na težavo, da morate preveriti potovanje servomotorja ali nastaviti servomotorje v srednji položaj.
Če ne želite zgraditi celotnega RC sistema ali preizkusiti, kako daleč lahko potisnete servo ali kje je sredina, potem je ta plošča za vas! Omogoča vam premikanje servo v določene položaje ali pa potujmo naprej in nazaj.
Deluje presenetljivo dobro, tudi pri 6 servomotorjih, ki tečejo od enega položaja do drugega.
Prav tako je lep projekt za spoznavanje komunikacije med Python-GUI in Arduinom z uporabo Serial.
Korak: Kaj potrebujete …
Za ta projekt boste potrebovali naslednje:
Strojna oprema
- Arduino nano s kablom. Uporabil sem klon in koda Python dejansko pričakuje CH340-čip klona
- Plošča za izdelavo prototipov. 7x5 cm je dovolj
- Nekaj 2, 54 mm glave in zatiči
- 1-6 servomotorjev
- Napajanje za servomotorje (uporabil sem paket baterij s 4 baterijami)
Programska oprema
- Python 3:
- Gonilnik USB za čipe CH340: Poiščite google za gonilnike za CH340 gonilnike
- Arduino IDE:
2. korak: Spajkanje plošče
![Spajkanje deske Spajkanje deske](https://i.howwhatproduce.com/images/001/image-322-67-j.webp)
Spajkanje je pravzaprav naravnost naprej, glede na Fritzinga na sliki. Prepričajte se, da lahko servomotorje enostavno priključite na 3-polne vrstice.
- 3-polne vrstice so pritrjene na digitalni pin 3, 5, 6, 9, 10 in 11 Arduino nano.
- Rdeča žica je pritrjena na 5V pin Arduina
- Črna žica je priključena na GND-pin Arduina
- Par nožic pod 3-polnimi vrstami je namenjen priključitvi tipičnega napajalnika RC-sprejemnika, po želji lahko dodate konektorje, na primer vijačne sponke, priključke XT, JST ali… ali…
Osebno so mi všeč vrstice ženskih glav, v katere bi vstavil Arduino, toda to je odvisno od vas.
Upoštevajte, da so kratki ženski vodi mostički, ki omogočajo napajanje servomotorja z uporabo 5V vira Arduina za namene testiranja. Če ga preveč naprežete, se bo Arduino ponastavil in izgubil pravo hitrost. MORATE jih odstraniti, preden priključite drug napajalnik.
3. korak: Nastavitev Arduina
Namestite Arduino IDE in utripajte Arduino nano s priloženo skico.
4. korak: Nastavitev Pythona
![Nastavitev Pythona Nastavitev Pythona](https://i.howwhatproduce.com/images/001/image-322-68-j.webp)
Namestite Python 3 po prenosu. Preverite možnost, da ustvarite spremenljivko »PATH«.
S pipom morate namestiti še dva paketa. V ta namen pritisnite tipko "Windows", vnesite "cmd" in pritisnite "enter". V ukazni poziv vnesite naslednje ukaze:
- pip install serijski
- piip namestite pyserial
- pip namestite tkinter
Kot lahko vidite, potrebujem tako serijske module kot tudi pyserial, kar najverjetneje ni najučinkovitejše, saj bi moral pyserial nadomestiti serijo. Kljub temu deluje in šele začenjam se učiti;).
Odprite Python-Script v IDE-ju in ga zaženite ali zaženite naravnost iz terminala.
V spustnem meniju lahko izbirate med dvema načinoma, "Pojdi naravnost" in "Ping Pong":
- Pojdi naravnost: V prvi stolpec vnesite položaj servo v mikrosekundah in pritisnite »Start«, da se servo pomakne na določen položaj.
- Ping Pong: Vnesite spodnjo in zgornjo mejo v drugi in tretji stolpec. To sta spodnji in zgornji položaj, med katerima se bo servo pomikal naprej in nazaj. V stolpcu "Čas za namizni tenis" lahko v milisekundah določite čas, ko bo servo čakal, ko bo dosegel zgornji ali spodnji položaj. Pritisnite "Start" in servo se bo začel premikati naprej in nazaj, pritisnite "Stop" in servo se bo ustavil.
5. korak: Kjer se zgodi čarovnija
Nenazadnje bi rad opozoril na nekatere podrobnosti kode za tiste, ki se želijo spustiti v serijsko komunikacijo med Pythonom in Arduinom.
Kaj se zgodi v programu Python?
Najprej program preveri, kaj je v tej vrstici priključeno na vrata COM in ga shrani na seznam:
self. COMPortsList = seznam (serial.tools.list_ports.comports ())
Nato se po seznamu vrti, dokler ne najde razvpitega čipa CH340, ga shrani in nato po for-zanki vzpostavi serijsko povezavo. Upoštevajte, da se zanka for prekine takoj, ko najdemo prvi CH340.
for p in self. COMPortsList: if "CH340" in p [1]: # Iščem Arduino Clone self. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort, 57600)
Zaporedna povezava je vzpostavljena s COM-vrati s hitrostjo prenosa 57600.
In kaj počne koda Arduino? No, ker ima Arduino samo eno COM-Port, je serijska povezava samo ena vrstica:
Serial.begin (57600);
Zdaj lahko za komunikacijo uporabimo oba vrata. V tem primeru samo sporočila iz Pythona v Arduino. Sporočila so poslana sem iz Pythona. Serijska povezava privzeto prenaša bajte. To je tudi najhitrejši način pošiljanja podatkov in kolikor vem, je še vedno zelo razširjen. Tako se črte za številko servomotorja (tako Arduino ve, kateri strežnik premakniti) in položaj v mikrosekundah spremenijo v bajt.
Command = struct.pack ('> B', self. Place) # Int-spremenljivka "self. Place" se spremeni v bajt
self. Ser.write (Command) # Pisanje bajta na ukaz Serial-Port = int (self. ServoPos.get ()) // 10 # Branje vnosa iz polja in vnos int Command = struct.pack (' > B ', Command) # Pretvorba int v bajtu self. Ser.write (Command) # Pisanje bajta na serijska vrata
Tudi razčlenjevanje podatkov traja nekaj časa (na primer razlaga štirih bajtov »1«, »2«, »3« in »0« kot int 1230, ne kot štiri različne znake), zato je bolje, da tega ne storite na Arduinu.
Na strani Arduino se poslane informacije zberejo na naslednji način:
if (Serial.available ()> 1) {// Če so na voljo serijski podatki, se vnese zanka c = Serial.read (); // Prvi bajt (število servo) se shrani v spremenljivko Micros = Serial.read (); // Položaj servomotorja je shranjen tukaj Micros = Micros * 10; }
Priporočena:
Uvod v Python - Katsuhiko Matsuda & Edwin Cijo - Osnove: 7 korakov
![Uvod v Python - Katsuhiko Matsuda & Edwin Cijo - Osnove: 7 korakov Uvod v Python - Katsuhiko Matsuda & Edwin Cijo - Osnove: 7 korakov](https://i.howwhatproduce.com/images/001/image-1412-j.webp)
Uvod v Python - Katsuhiko Matsuda & Edwin Cijo - Osnove: Pozdravljeni, dva študenta smo na MYP 2. Radi bi vas naučili osnov kodiranja Pythona. Ustvaril ga je konec osemdesetih let Guido van Rossum na Nizozemskem. Nastala je kot naslednica jezika ABC. Ime mu je " Python " ker ko
Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov
![Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov](https://i.howwhatproduce.com/images/007/image-19436-j.webp)
Prepoznavanje obrazov in identifikacija | Arduino Face ID z uporabo OpenCV Python in Arduino .: Prepoznavanje obraza AKA Face ID je ena najpomembnejših značilnosti mobilnih telefonov danes. Tako sem imel vprašanje " ali lahko dobim ID obraza za svoj projekt Arduino " in odgovor je pritrdilen … Moje potovanje se je začelo na naslednji način: 1. korak: Dostop do nas
Preprosta igra ugibanja - Python + XBees + Arduino: 10 korakov
![Preprosta igra ugibanja - Python + XBees + Arduino: 10 korakov Preprosta igra ugibanja - Python + XBees + Arduino: 10 korakov](https://i.howwhatproduce.com/images/008/image-23574-j.webp)
Preprosta igra ugibanja - Python + XBees + Arduino: Igra deluje tako: Imate 4 poskuse uganiti črko med 'a' - 'h' - > Ugani pravo črko: zmagal si! ?-> Ugani napačno črko: Igra je končana?-> Ugani kakšen drug lik zunaj 'a' - 'h': Igra je končana? Vaš Arduino vam bo omogočil
Naprava za sledenje obrazu! Python in Arduino: 5 korakov
![Naprava za sledenje obrazu! Python in Arduino: 5 korakov Naprava za sledenje obrazu! Python in Arduino: 5 korakov](https://i.howwhatproduce.com/images/001/image-69-31-j.webp)
Naprava za sledenje obrazu! Python & Arduino: Pozdravljeni vsi, ki berete ta navodila. To je naprava za sledenje obrazov, ki deluje v knjižnici python, imenovani OpenCV. CV pomeni "Computer Vision". Nato sem nastavil serijski vmesnik med računalnikom in Arduino UNO. Torej to pomeni
Python (pySerial) + Arduino + DC motor: 14 korakov
![Python (pySerial) + Arduino + DC motor: 14 korakov Python (pySerial) + Arduino + DC motor: 14 korakov](https://i.howwhatproduce.com/images/001/image-1928-34-j.webp)
Python (pySerial) + Arduino + DC motor: Ta hitra vadnica prikazuje preprosto upravljanje enosmernega motorja z uporabo Python GUI. Da bi Python komuniciral z Arduino ploščo, bomo uporabili paket pySerial. pySerial je knjižnica Python, ki nudi podporo za serijske povezave