Satura rādītājs:
- 1. darbība. Kas jums nepieciešams…
- 2. solis: dēļa lodēšana
- 3. darbība: Arduino iestatīšana
- 4. darbība: Python iestatīšana
- 5. solis: kur notiek maģija
Video: Servodriver-Board ar Python-GUI un Arduino: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Veidojot prototipus vai veidojot lidmašīnu modeļus, jūs bieži saskaraties ar problēmu, ka jums ir jāpārbauda servo ceļojums vai jāiestata servos vidējā stāvoklī.
Ja jūs nevēlaties izveidot visu savu RC sistēmu vai pārbaudīt, cik tālu jūs varat nospiest servo vai kur atrodas vidējā pozīcija, šī plāksne ir paredzēta jums! Tas ļauj pārvietot servo uz noteiktām pozīcijām vai arī ceļosim turp un atpakaļ.
Tas darbojas pārsteidzoši labi, pat ar 6 servos, kas cilpā brauc no vienas pozīcijas uz otru.
Tas ir arī jauks projekts, lai uzzinātu par saziņu starp Python-GUI un Arduino, izmantojot Serial.
1. darbība. Kas jums nepieciešams…
Šim projektam jums būs nepieciešams:
Aparatūra
- Arduino nano ar kabeli. Es izmantoju klonu, un Python kods patiesībā sagaida klona CH340 mikroshēmu
- Prototipēšanas dēlis. Pietiek ar 7x5 cm
- Apmēram 2, 54 mm galvenes un tapas
- 1-6 servos
- Servo barošanas avots (es izmantoju akumulatoru ar 4 baterijām)
Programmatūra
- Python 3:
- USB draiveris CH340 mikroshēmām: vienkārši atrodiet google, lai meklētu CH340 draiverus
- Arduino IDE:
2. solis: dēļa lodēšana
Lodēšana faktiski ir taisni uz priekšu saskaņā ar Fritzing uz attēla. Vienkārši pārliecinieties, ka varat viegli pieslēgt servos pie 3 kontaktu rindām.
- Trīs tapu rindas ir piestiprinātas pie Arduino nano digitālās tapas 3, 5, 6, 9, 10 un 11.
- Sarkanais vads ir pievienots Arduino 5V tapai
- Melnais vads ir savienots ar Arduino GND tapu
- Adatu pāris zem 3 kontaktu rindām ir paredzēts tipiska RC uztvērēja barošanas avota pievienošanai, jūs varat pievienot savienotājus, kā vēlaties, piemēram, skrūvējamos spailes, XT savienotājus, JST vai… vai…
Personīgi man patīk sieviešu virsrakstu rindas, kurās ievietot Arduino, bet tas ir atkarīgs no jums.
Lūdzu, ņemiet vērā, ka īsās sieviešu galvenes ir džemperis, kas ļauj piegādāt servo, izmantojot Arduino 5V avotu testēšanas nolūkos. Ja jūs to pārspīlējat, Arduino atiestatīs un zaudēs pareizo tempu. Tie ir jāizņem, pirms tiek pievienots cits barošanas avots.
3. darbība: Arduino iestatīšana
Instalējiet Arduino IDE un mirgo Arduino nano ar pievienoto skici.
4. darbība: Python iestatīšana
Pēc lejupielādes instalējiet Python 3. Noteikti atzīmējiet opciju, lai izveidotu mainīgo "PATH".
Izmantojot pip, jums jāinstalē vēl divas paketes. Lai to izdarītu, nospiediet taustiņu "Windows", ierakstiet "cmd" un nospiediet "Enter". Komandu uzvednē ierakstiet šādas komandas:
- pip instalēt sēriju
- piip instalēt pyserial
- pip instalēt tkinter
Kā redzat, man ir nepieciešami sērijas moduļi, kā arī pyserial, kas, visticamāk, nav visefektīvākais, jo pyserial vajadzētu aizstāt sērijas. Tomēr tas darbojas, un es tikai sāku mācīties;).
Atveriet Python-Script IDE un palaidiet to vai palaidiet to tieši no termināļa.
Nolaižamajā izvēlnē varat izvēlēties vienu no diviem režīmiem-"Go Straight" un "Ping Pong":
- Iet taisni: pirmajā kolonnā ievadiet servo pozīciju mikrosekundēs un nospiediet "Sākt", lai servo pārvietotos uz norādīto pozīciju.
- Pingpongs: otrajā un trešajā kolonnā ievadiet apakšējo robežu un augšējo robežu. Tā ir apakšējā un augšējā pozīcija, starp kurām servo iet atpakaļ un atpakaļ. Slejā "Ping Pong Time" varat norādīt laiku milisekundēs, kādu servo gaidīs, kad būs sasniedzis augšējo vai apakšējo pozīciju. Nospiediet "Sākt", un servo sāks kustēties šurpu turpu, nospiediet "Stop" un servo apstāsies.
5. solis: kur notiek maģija
Visbeidzot, bet ne mazāk svarīgi, es vēlos norādīt uz kādu informāciju par kodu tiem, kuri vēlas iekļūt sērijveida komunikācijā starp Python un Arduino.
Kas notiek programmā Python?
Pirmkārt, programma pārbauda, kas ir pievienots šīs rindas COM portiem, un saglabā to sarakstā:
self. COMPortsList = saraksts (serial.tools.list_ports.comports ())
Tad tas cilpa sarakstu, līdz atrod bēdīgi slaveno CH340 mikroshēmu, saglabā to un pēc tam izveido sērijas savienojumu pēc for-loop. Ņemiet vērā, ka for-loop pārtrūkst, tiklīdz tiek atrasts pirmais CH340.
par p in self. COMPortsList: ja "CH340" p [1]: # Meklē Arduino Clone self. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort, 57600)
Sērijas savienojums tiek izveidots ar COM portu ar 57600 bitu pārraides ātrumu.
Un ko dara Arduino kods? Tā kā Arduino ir tikai viens COM ports, sērijas savienojums ir tikai viena līnija:
Sērijas sākums (57600);
Tagad mēs varam izmantot abas ostas, lai sazinātos. Šajā gadījumā tikai ziņojumi no Python uz Arduino. Šeit ziņojumi tiek sūtīti no Python. Sērijas savienojums pēc noklusējuma pārraida baitus. Tas ir arī ātrākais datu nosūtīšanas veids, un, cik es zinu, tas joprojām ir diezgan izplatīts. Tātad servo numura inti (lai Arduino zina, kuru servo pārvietot) un pozīcija mikrosekundēs tiek pārvērsta par baitu.
Komanda = structure.pack ('> B', self. Place) # Int-mainīgais "self. Place" tiek pārvērsts par baitu
self. Ser.write (Komanda) # Baita rakstīšana Serial-Port Command = int (self. ServoPos.get ()) // 10 # Ievades nolasīšana no lauka un ievadiet int Command = structure.pack (' > B ', komanda) # Int pagriešana baitā. Ser.write (komanda) # Baita rakstīšana seriālajā portā
Arī datu parsēšana prasa laiku (piemēram, četru baitu "1", "2", "3" un "0" interpretēšana kā int 1230, nevis kā četras dažādas rakstzīmes), un labāk to darīt ne Arduino.
Arduino pusē nosūtītā informācija tiek uztverta šādi:
if (Serial.available ()> 1) {// Ja ir pieejami sērijas dati, tad tiek ievadīta cilpa c = Serial.read (); // Pirmais baits (servo skaits) tiek saglabāts mainīgajā Micros = Serial.read (); // Šeit tiek saglabāta servo pozīcija Micros = Micros * 10; }
Ieteicams:
MIDI bungu komplekts Python un Arduino: 5 soļi (ar attēliem)
MIDI bungu komplekts Python un Arduino: Kopš bērnības es vienmēr gribēju iegādāties bungu komplektu. Toreiz visam mūzikas aprīkojumam nebija visu digitālo lietojumu, jo mūsdienās to ir daudz, tāpēc cenas kopā ar cerībām bija pārāk augstas. Nesen esmu nolēmusi iegādāties c
Sejas atpazīšana un identifikācija - Arduino sejas ID, izmantojot OpenCV Python un Arduino .: 6 soļi
Sejas atpazīšana un identifikācija | Arduino sejas ID, izmantojot OpenCV Python un Arduino .: Sejas atpazīšana AKA sejas ID ir viena no svarīgākajām mūsdienu mobilo tālruņu funkcijām. Tātad, man radās jautājums " vai man var būt sejas ID savam Arduino projektam " un atbilde ir jā … Mans ceļojums sākās šādi: 1. solis: piekļuve mums
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): 8 soļi
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): ultraskaņas skaņas pārveidotāji L298N līdzstrāvas adaptera strāvas padeve ar vīriešu līdzstrāvas tapu Arduino UNOBreadboard un analogie porti koda konvertēšanai (C ++)
Vienkārša uzminēšanas spēle - Python + XBees + Arduino: 10 soļi
Vienkārša uzminēšanas spēle - Python + XBees + Arduino: Lūk, kā spēle darbojas: Jums ir 4 mēģinājumi uzminēt burtu starp “a” - “h” - > Uzmini pareizo burtu: Tu uzvari! ?-> Uzminiet nepareizo burtu: spēle beigusies?-> Uzminiet jebkuru citu rakstzīmi ārpus “a” - “h”: spēle beigusies? Jūsu Arduino ļaus jums
Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku: 5 soļi
Gaismas intensitātes attēlojums, izmantojot Arduino un Python Arduino galveno bibliotēku: Arduino ir ekonomisks, bet ļoti efektīvs un funkcionāls rīks, tā programmēšana iegultajā C padara projektu padarīšanu garlaicīgu! Python Arduino_Master modulis to vienkāršo un ļauj mums veikt aprēķinus, noņemt atkritumu vērtības