Tartalomjegyzék:
- 1. lépés: Amire szüksége van…
- 2. lépés: A panel forrasztása
- 3. lépés: Az Arduino beállítása
- 4. lépés: A Python beállítása
- 5. lépés: Ahol a varázslat történik
Videó: Servodriver-Board Python-GUI-val és Arduino-val: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Amikor prototípusokat készít vagy repülőgép -modelleket épít, gyakran találkozik azzal a problémával, hogy ellenőriznie kell a szervo menetét, vagy középre kell állítania a szervókat.
Abban az esetben, ha nem szokta felépíteni a teljes RC-rendszerét vagy tesztelni, milyen messzire tudja tolni a szervót vagy hol van a középső pozíció, akkor ez a tábla az Ön számára! Lehetővé teszi, hogy a szervót meghatározott pozíciókba helyezze, vagy utazzunk oda -vissza.
Meglepően jól működik, még 6 szervóval is, amelyek egyik helyzetből a másikba száguldoznak a hurokban.
Ezenkívül szép projekt a Python-GUI és az Arduino közötti kommunikáció megismerése a Serial használatával.
1. lépés: Amire szüksége van…
Ehhez a projekthez a következőkre lesz szüksége:
Hardver
- Arduino nano kábellel. Egy klónt használtam, és a Python kód valójában egy klón CH340 chipjét várja
- Prototípus -tábla. 7x5 cm elég
- Körülbelül 2, 54 mm -es fejlécek és csapok
- 1-6 szervó
- Tápegység a szervókhoz (4 akkumulátoros akkumulátorcsomagot használtam)
Szoftver
- Python 3:
- USB-illesztőprogram a CH340-chipekhez: Csak a google segítségével keresse meg a CH340-es illesztőprogramokat
- Arduino IDE:
2. lépés: A panel forrasztása
A forrasztás valójában egyenesen előre halad Fritzing szerint a képen. Csak győződjön meg arról, hogy könnyen csatlakoztathatja a szervókat a 3 tűs sorokhoz.
- A 3 tűs sorok az Arduino nano 3., 5., 6., 9., 10. és 11. digitális tűjéhez vannak rögzítve.
- A piros vezeték az Arduino 5V-os csatlakozójához van rögzítve
- A fekete vezeték az Arduino GND-tűjéhez van csatlakoztatva
- A 3 tűs sorok alatti csappár tipikus RC-vevő tápegységet csatlakoztathat, tetszés szerint hozzáadhat csatlakozókat, például csavaros csatlakozókat, XT-csatlakozókat, JST-t vagy… vagy…
Személy szerint szeretem a női fejlécek sorait az Arduino beillesztésére, de ez rajtad múlik.
Kérjük, vegye figyelembe, hogy a rövidre zárott női fejrészek áthidalók, amelyek lehetővé teszik a szervó ellátását az Arduino 5V-os forrásából tesztelés céljából. Ha túlságosan megerőlteti, az Arduino visszaáll, és elveszíti a megfelelő tempót. Ezeket el kell távolítani, mielőtt másik tápegységet csatlakoztatna.
3. lépés: Az Arduino beállítása
Telepítse az Arduino IDE -t, és villanja fel az Arduino nano -t a mellékelt vázlattal.
4. lépés: A Python beállítása
Telepítse a Python 3 -at a letöltés után. Ellenőrizze a "PATH" változó létrehozásának lehetőségét.
További két csomagot kell telepítenie a pip használatával. Ehhez nyomja meg a "Windows" billentyűt, írja be a "cmd" parancsot, és nyomja meg az "Enter" billentyűt. A parancssorba írja be a következő parancsokat:
- pip install soros
- piip install pyserial
- pip install tkinter
Amint látja, szükségem van a soros és a pyserial modulokra, ami valószínűleg nem a leghatékonyabb, mivel a pyserial -nak helyettesítenie kell a sorozatot. Ennek ellenére működik, és most kezdek tanulni;).
Nyissa meg a Python-Script fájlt az IDE-ben, és futtassa, vagy futtassa közvetlenül a terminálról.
A legördülő menüben két üzemmód közül választhat: "Go Straight" és "Ping Pong":
- Menjen egyenesen: Írjon be egy szervo pozíciót mikroszekundumokban az első oszlopba, és nyomja meg a "Start" gombot, hogy a szervó a megadott pozícióba kerüljön.
- Pingpong: Írjon be egy alsó és egy felső határt a második és a harmadik oszlopba. Ez az alsó és felső helyzet, amelyek között a szervó vissza -vissza mozog. A "Ping Pong idő" oszlopban ezredmásodpercben megadhatja azt az időt, amelyet a szervó várni fog, amikor elérte a felső vagy az alsó pozíciót. Nyomja meg a "Start" gombot, és a szervó elkezd mozogni ide -oda, nyomja meg a "Stop" gombot, és a szervó leáll.
5. lépés: Ahol a varázslat történik
Végül, de nem utolsósorban szeretnék rámutatni a kód néhány részletére azok számára, akik szeretnének bekapcsolódni egy soros kommunikációba a Python és az Arduino között.
Nos, mi történik a Python programban?
Először is, a program ellenőrzi, hogy mi tartozik a sor COM-portjaihoz, és menti egy listába:
self. COMPortsList = lista (serial.tools.list_ports.comports ())
Ezután végiglapozza a listát, amíg egy hírhedt CH340-chipet nem talál, elmenti, majd a for-loop után soros kapcsolatot létesít. Ne feledje, hogy a for-hurok megszakad, amint megtalálta az első CH340-et.
for p in self. COMPortsList: if "CH340" in p [1]: # Arduino Clone self keresése. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort, 57600)
A soros kapcsolat a COM-porttal jön létre, 57600 baudrátával.
És mit csinál az Arduino kód? Nos, mivel az Arduino csak egy COM-porttal rendelkezik, a soros kapcsolat csak egy sor:
Sorozat.kezdet (57600);
Most mindkét portot használhatjuk a kommunikációhoz. Ebben az esetben csak a Pythonról az Arduino -hoz küldött üzenetek. Az üzeneteket ide küldi a Python. A soros kapcsolat alapértelmezés szerint bájtokat továbbít. Ez az adatküldés leggyorsabb módja is, és tudomásom szerint még mindig meglehetősen elterjedt. Tehát a szervó számának intsei (így az Arduino tudja, hogy melyik szervót kell mozgatni) és a helyzet mikroszekundumokban bájtra változnak.
Parancs = strukt.pack ('> B', self. Place) # Az "self. Place" int-változó bájtra változik
self. Ser.write (Parancs) # A bájt írása a soros portra Parancs = int (self. ServoPos.get ()) // 10 # A bemenet beolvasása a mezőből, és az int parancs beírása Command = szerkezet.pack (' > B ', Parancs) # Az int elforgatása bájtos önmagában. Ser.write (Parancs) # A bájt írása a soros porton
Az adatok elemzése is időt vesz igénybe (például négy bájt "1", "2", "3" és "0" értelmezése az int 1230, nem pedig négy különböző karakterként), és jobb, ha nem az Arduino -n.
Az Arduino oldalon az elküldött információkat a következőképpen vesszük fel:
if (Serial.available ()> 1) {// Ha soros adatok állnak rendelkezésre, akkor a ciklus beírása c = Serial.read (); // Az első bájt (szervo száma) egy változóba kerül mentésre Micros = Serial.read (); // A szervó pozíciója itt kerül mentésre Micros = Micros * 10; }
Ajánlott:
Arcfelismerés és azonosítás - Arduino arcazonosító OpenCV Python és Arduino használatával: 6 lépés
Arcfelismerés és azonosítás | Arduino arcazonosító az OpenCV Python és Arduino használatával .: Arcfelismerés Az AKA arcazonosító manapság az egyik legfontosabb funkció a mobiltelefonokban. Tehát felmerült bennem egy kérdés, " kaphatok arcazonosítót az Arduino projektemhez " és a válasz igen … Utazásom a következőképpen kezdődött: 1. lépés: Hozzáférés
Egyszerű találgatós játék - Python + XBees + Arduino: 10 lépés
Egyszerű találgatós játék - Python + XBees + Arduino: A játék így működik: 4 próbálkozása van egy betű kitalálására az „a” - „h” - > Találd ki a helyes betűt: Nyersz! ?-> Találd ki a rossz betűt: Vége a játéknak?-> Találd ki bármely más karaktert az „a” - „h” -on kívül: A játéknak vége? Arduino -ja engedi
Vizualizálja Bitcoin nyereségét és veszteségét az Arduino és Python segítségével: 6 lépés
Vizualizálja Bitcoin nyereségét és veszteségét az Arduino & Python segítségével: Alapötlet Személy szerint kriptovaluta befektető vagyok. De emellett rengeteg munka vár rám. Tehát nem tudom folyamatosan nyomon követni a bitcoin árát, mint percenként 10 -szer. Mindazonáltal szeretném tudni, hogy keresek vagy veszítek pénzt. És így
Játssz dinoszaurusz játékot Arduino és Python használatával3: 5 lépés
Játssz dinoszaurusz játékot az Arduino és a Python3 használatával: A projekt leírása A legtöbben játszottunk dinoszauruszos játékkal a Google -on, amikor nem működött az internetünk, és ha még nem játszottál ezzel a játékkal, ne aggódj most, de nem hagyományos módon, hanem gombnyomással, hanem mozgással a kezedből. Tehát ebben
Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával: 5 lépés
Fényintenzitás -ábrázolás az Arduino és a Python Arduino Master Library használatával: Az Arduino gazdaságos, ugyanakkor rendkívül hatékony és funkcionális eszköz, és az Embedded C -be programozva unalmassá teszi a projektek készítésének folyamatát! A Python Arduino_Master modulja leegyszerűsíti ezt, és lehetővé teszi számítások elvégzését, a szemétértékek eltávolítását