Turinys:
- 1 žingsnis: ko jums reikia…
- 2 žingsnis: plokštės litavimas
- 3 žingsnis: „Arduino“nustatymas
- 4 žingsnis: nustatykite „Python“
- 5 žingsnis: kur vyksta magija
Video: „Servodriver-Board“su „Python-GUI“ir „Arduino“: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Kurdami prototipus ar kurdami lėktuvų modelius, dažnai susiduriate su problema, kad turite patikrinti servo judėjimą arba nustatyti servo vidurinę padėtį.
Jei nenorite sukurti visos RC sistemos ar išbandyti, kiek galite pastumti servo arba kur yra vidurinė padėtis, ši lenta yra kaip tik jums! Tai leidžia jums perkelti servo į nurodytas pozicijas arba keliauti pirmyn ir atgal.
Tai veikia stebėtinai gerai, net su 6 servo varikliais, važiuojančiais iš vienos pozicijos į kitą.
Be to, tai puikus projektas, skirtas sužinoti apie bendravimą tarp „Python-GUI“ir „Arduino“naudojant „Serial“.
1 žingsnis: ko jums reikia…
Šiam projektui jums reikės:
Techninė įranga
- „Arduino nano“su kabeliu. Aš naudojau kloną, o „Python“kodas iš tikrųjų tikisi CH340 lusto
- Prototipų lenta. Pakanka 7x5 cm
- Kai kurios 2, 54 mm antraštės ir kaiščiai
- 1-6 servai
- Servo maitinimo šaltinis (naudojau baterijų paketą su 4 baterijomis)
Programinė įranga
- „Python 3“:
- „CH340“lustų USB tvarkyklė: tiesiog „Google“ieškokite tvarkyklių, skirtų CH340 tvarkyklėms
- „Arduino IDE“:
2 žingsnis: plokštės litavimas
Lydymas iš tikrųjų yra tiesus į priekį pagal Fritzingą paveikslėlyje. Tiesiog įsitikinkite, kad galite lengvai prijungti servo prie 3 kontaktų eilių.
- 3 kontaktų eilės yra pritvirtintos prie „Arduino nano“3, 5, 6, 9, 10 ir 11 skaitmeninių kaiščių.
- Raudona viela pritvirtinta prie „Arduino“5V kaiščio
- Juoda viela yra prijungta prie „Arduino“GND kaiščio
- Pora kaiščių žemiau 3 kontaktų eilučių yra skirti tipiškam RC imtuvo maitinimo šaltiniui prijungti, galite pridėti jungčių, kaip jums patinka, pvz., Prisukamus gnybtus, XT jungtis, JST arba … arba …
Asmeniškai man patinka eilutės moterų antraščių, kuriose galima įdėti „Arduino“, bet tai priklauso nuo jūsų.
Atminkite, kad sutrumpintos moteriškos antraštės yra trumpiklis, leidžiantis tiekti servo servisą naudojant 5 V „Arduino“šaltinį bandymams. Jei per daug įtempiate, „Arduino“atstatys ir praras reikiamą tempą. Prieš prijungdami kitą maitinimo šaltinį, jie PRIVALO būti pašalinti.
3 žingsnis: „Arduino“nustatymas
Įdiekite „Arduino IDE“ir blykstelėkite „Arduino nano“su pridėtu eskizu.
4 žingsnis: nustatykite „Python“
Atsisiuntę įdiekite „Python 3“. Būtinai pažymėkite parinktį sukurti „PATH“kintamąjį.
Turite įdiegti dar du paketus naudodami pip. Norėdami tai padaryti, paspauskite „Windows“klavišą, įveskite „cmd“ir paspauskite „Enter“. Komandų eilutėje įveskite šias komandas:
- pip install serial
- piip įdiegti pyserial
- pip įdiegti tkinter
Kaip matote, man reikia serijinių modulių ir „pyserial“, kuris greičiausiai nėra pats efektyviausias, nes „pyserial“turėtų pakeisti serijinį. Nepaisant to, tai veikia ir aš tik pradedu mokytis;).
Atidarykite „Python-Script“IDE ir paleiskite jį arba paleiskite tiesiai iš terminalo.
Išskleidžiamajame meniu galite pasirinkti vieną iš dviejų režimų: „Eiti tiesiai“ir „Ping Pong“:
- Eiti tiesiai: pirmajame stulpelyje įveskite servo padėtį mikrosekundėmis ir paspauskite „Pradėti“, kad servo judėtų į nurodytą padėtį.
- Ping Pong: įveskite apatinę ir viršutinę ribas antrame ir trečiame stulpelyje. Tai yra apatinė ir viršutinė padėtis, tarp kurių servo judės pirmyn ir atgal. Stulpelyje „Ping Pong Time“galite nurodyti laiką milisekundėmis, kurį servo lauks, kai jis pasieks viršutinę arba apatinę padėtį. Paspauskite „Start“ir servo pradės judėti pirmyn ir atgal, paspauskite „Stop“ir servo sustos.
5 žingsnis: kur vyksta magija
Paskutinis, bet ne mažiau svarbus dalykas, noriu atkreipti dėmesį į kai kurias detales, susijusias su kodu tiems, kurie nori įsitraukti į tam tikrą serijinį ryšį tarp „Python“ir „Arduino“.
Kas atsitiks programoje „Python“?
Pirmiausia programa patikrina, kas pridedama prie šios eilutės COM prievadų, ir išsaugo jį sąraše:
self. COMPortsList = sąrašas (serial.tools.list_ports.comports ())
Tada jis peržiūri sąrašą, kol randa pagarsėjusį CH340 lustą, jį išsaugo ir po to užmezga serijinį ryšį. Atminkite, kad ciklas nutrūksta, kai tik randamas pirmasis CH340.
„p in self. COMPortsList“: jei „CH340“p [1]: # Ieškau „Arduino Clone self. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort, 57600)
Serijinis ryšys užmezgamas naudojant COM prievadą, kurio duomenų perdavimo sparta yra 57600.
Ir ką daro „Arduino“kodas? Na, kadangi „Arduino“turi tik vieną COM prievadą, nuoseklusis ryšys yra tik viena eilutė:
Serial.begin (57600);
Dabar mes galime naudoti abu uostus bendravimui. Šiuo atveju tik pranešimai iš „Python“į „Arduino“. Pranešimai čia siunčiami iš „Python“. Serijinis ryšys perduoda baitus kaip numatytąjį. Tai taip pat greičiausias būdas siųsti duomenis ir, kiek žinau, vis dar gana plačiai paplitęs. Taigi servo numerio intai (kad „Arduino“žinotų, kurią servo perkelti) ir padėtis mikrosekundėmis paverčiami baitais.
Komanda = struktura.pack ('> B', self. Place) # Int-kintamasis „self. Place“paverčiamas baitu
self. Ser.write (komanda) # Baito rašymas serijinio prievado komandoje = int (self. ServoPos.get ()) // 10 # Įvesties skaitymas iš lauko ir įvedimas int Command = structure.pack (' > B ', komanda) # Int pasukimas baitu. Ser.write (komanda)
Be to, duomenų analizavimui reikia laiko (pavyzdžiui, keturių baitų „1“, „2“, „3“ir „0“aiškinimas kaip int 1230, o ne kaip keturi skirtingi simboliai), ir geriau tai padaryti ne „Arduino“.
Arduino pusėje siunčiama informacija yra tokia:
if (Serial.available ()> 1) {// Jei serijiniai duomenys yra prieinami, tada ciklas įvedamas c = Serial.read (); // Pirmasis baitas (servo skaičius) išsaugomas kintamajame Micros = Serial.read (); // Čia išsaugoma servo padėtis Micros = Micros * 10; }
Rekomenduojamas:
MIDI būgnų rinkinys „Python“ir „Arduino“: 5 žingsniai (su nuotraukomis)
MIDI būgnų rinkinys „Python“ir „Arduino“: nuo vaikystės visada norėjau nusipirkti būgnų komplektą. Tuomet visa muzikinė įranga neturėjo visų skaitmeninių programų, kaip šiandien turime daug, todėl kainos ir lūkesčiai buvo per dideli. Neseniai nusprendžiau nusipirkti c
Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai
Veido atpažinimas ir atpažinimas | „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: Veido atpažinimas AKA veido ID yra viena iš svarbiausių šių dienų mobiliųjų telefonų funkcijų. Taigi, man kilo klausimas „ar galiu turėti savo„ Arduino “projekto ID“? ir atsakymas yra „taip“… Mano kelionė prasidėjo taip: 1 žingsnis: Prieiga prie mūsų
Įsivaizduokite savo „Bitcoin“pelną ir praradimą naudodami „Arduino“ir „Python“: 6 žingsniai
Įsivaizduokite savo „Bitcoin“pelną ir nuostolius naudodami „Arduino“ir „Python“: pagrindinė idėja Asmeniškai aš esu kriptovaliutų investuotojas. Bet aš taip pat turiu daug darbo. Taigi aš negaliu sekti „Bitcoin“kainos kaip 10 kartų per minutę. Tačiau vis tiek noriu sužinoti, ar uždirbu, ar prarandu pinigus. Taigi
Žaiskite dinozaurų žaidimą naudodami „Arduino“ir „Python“3: 5 žingsniai
Žaiskite dinozaurų žaidimą naudodami „Arduino“ir „Python3“: Projekto aprašymas Dauguma iš mūsų žaidė dinozaurų žaidimą „Google“, kai mūsų internetas neveikė, ir jei nesate žaidę šio žaidimo, nesijaudinkite dabar, bet ne įprastu būdu, paspausdami mygtukus, bet naudodami judesį iš tavo rankos. Taigi šioje
Šviesos intensyvumo braižymas naudojant „Arduino“ir „Python“„Arduino“pagrindinę biblioteką: 5 žingsniai
Šviesos intensyvumo braižymas naudojant „Arduino“ir „Python“„Arduino“pagrindinę biblioteką: „Arduino“yra ekonomiškas, tačiau labai efektyvus ir funkcionalus įrankis, jį programavus „Embedded C“projektų kūrimo procesas yra varginantis! „Python“modulis „Arduino_Master“tai supaprastina ir leidžia atlikti skaičiavimus, pašalinti šiukšlių vertes