Tartalomjegyzék:
Videó: Működő RC autósebességmérő: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez egy rövid projekt, amelyet egy könnyű Land Rover nagyobb RC konstrukciójának részeként hoztam létre. Úgy döntöttem, hogy elképzelhető, hogy a műszerfalon működő sebességmérő van, de tudtam, hogy egy szervó nem vágja le. Csak egy ésszerű lehetőség volt: telepítse az arduino -t!
Kezdetnek egy kis háttér … Nem vagyok kódoló vagy elektronikai ember. Még mindig a villamos energiára gondolok a vízáramlás szempontjából, és némileg zavarban vagyok az ellenállások miatt. Ez azt jelenti, hogy ha még én is képes voltam erre a munkára, akkor Önnek is képesnek kell lennie rá!
ALKATRÉSZ LISTA:
Mikrokontroller: ATTiny85 chipet használtam, amelyek ára körülbelül 1 font.
Mikrokontroller programozó: Ahhoz, hogy a kódot a chipre vigye, programoznia kell. A hagyományos arduino esetében ez csak egy USB -kábel, de az ATTiny chiphez valami extra kell. Ehhez használhat egy másik arduino -t, vagy hozzám hasonlóan a Sparkfun Tiny AVR programozóját.
learn.sparkfun.com/tutorials/tiny-avr-prog…
Ezt javaslom, mivel megpróbáltam programozni őket különböző módszerekkel, és ez a legegyszerűbb. A tábla egy kicsit drága, de jó befektetés, ha sok ATTiny projektet végez.
8 tűs forgácsaljzat: Ha a chipet egy foglalatba helyezi, és nem közvetlenül forrasztja, akkor megengedheti magának néhány hibát az összeszerelés során. Tapasztalatból elmondva - senki sem akarja forrasztani a chipeket, hogy átprogramozza őket.
Kondenzátor: 100nF (104 kód) leválasztó kondenzátort használnak. Nem egészen értem, miért, de olvastam, hogy a kondenzátorok leválasztása fontos az interneten, tehát igaznak kell lennie…
Ellenállás: 10 kΩ -os ellenállást használnak a vonal lehúzására az arduino -ba. Ismét az elektronika újabb rejtélye.
Perfboard/Stripboard: Némi alaplap, amelyre össze lehet szerelni az áramkört.
Tekercselő huzal: A normál burkolatú huzal túl vastag ahhoz, hogy a motorra forraszthasson. Finom zománcozott huzal használata csökkenti a motor kapcsaira ható feszültséget, és sokkal könnyebbé teszi az életét.
Szervóhuzal: Három vezetékes szalag, amely egy 3 pólusú JR hüvelyes csatlakozóban végződik. Az enyémet egy kiégett szervóból kaptam, amelyet "módosítottam".
Léptetőmotor: 6 mm -es bipoláris Nidec léptetőmotort használtam. Bármilyen kis léptetőnek működnie kell, bár legyen kicsi, mivel a lépegetőt közvetlenül az Arduino hajtja.
Fejléccsapok: Nem nélkülözhetetlen, de ha a léptetőjét 4 fejléchez csatlakoztatja, és csatlakozóaljzatot helyez az áramkörre, akkor egyszerűen húzza ki a műszerfalat a konnektorból a könnyű telepítés érdekében.
Számítógép: A tábla programozásához számítógépre van szüksége. Esetleg az Arduino IDE -vel. És talán egy USB kábel. Ha van tápkábele is, akkor még jobb.
1. lépés: A rendszer
Az általam létrehozott rendszer alapvető vázlata egy olyan módszer volt, amellyel az RC vevőből érkező impulzusszélesség -modulációs (PWM) jel egy ATTiny 85 mikrovezérlőn (uC) keresztül léptetőmotoros söpréssé alakul.
Itt található egy forrás a PWM jelekről és az RC -ről, de ennek megismétléséhez nem feltétlenül kell megértenie.
en.wikipedia.org/wiki/Servo_control
Az ATTiny a kedvenc ízem az Arduino -ból, mert kicsi, és még mindig elegendő I/O csap van az alapvető dolgok elvégzéséhez, így tökéletesen illeszkedik a kis modellekhez és az RC projektekhez. Az ATTiny fő hátránya, hogy egy kicsit több beállítást igényel az egyik programozásához, de miután beállította, annyira olcsók, hogy rengeteg projektet vásárolhat.
A sebességmérő tárcsa mérete túl kicsi ahhoz, hogy visszacsatolt hajtóműves motor legyen, ezért az arányos válasz érdekében léptetőmotort kellett használni. A léptetőmotor olyan motor, amelyet diszkrét mennyiségben (vagy lépésben…!) Mozgatnak, így ideális az ilyen visszacsatolás nélküli rendszerhez. Az egyetlen figyelmeztetés az, hogy a „lépések” miatt a kapott mozgás rángatózó lesz, szemben a sima. Ha olyan léptetőgépet kap, amely elegendő lépést tartalmaz fordulatonként, ez nem észrevehető, de ha a projektben használt léptetőnek csak körülbelül 20 lépése van egy teljes forgásban, akkor a szögugrás elég rossz.
A rendszer bekapcsoláskor két fordulattal hátrafelé futtatja a léptetőgépet, így a tű nullázódik. A sebességmérőnek szüksége van egy pihentető csapra, ahol szeretné, hogy a nulla jel legyen, különben örökké forog. Ezután leképezi az előre és hátra irányított PWM jeleket a motor meghatározott számú lépésére. Könnyű, igaz…?
2. lépés: A szoftver
Jogi nyilatkozat: Nem vagyok programozó. Ebben a projektben én vagyok Dr. Frankenstein digitális megfelelője, és összeállítok valamit, amely különböző talált kódrészletekből dolgozik.
Tehát szívből köszönöm Duane B -nek, aki elkészítette az RC jelek értelmezésének kódját:
rcarduino.blogspot.com/
És Ardunautnak, aki analóg mérőeszközként elkészítette a léptető futtatásának kódját:
arduining.com/2012/04/22/arduino-driving-a…
És mindkettőjüknek őszintén elnézést kérek azért, amit a kódjával tettem.
Most ez nem áll rendelkezésre, íme, mit kell feltölteni az ATTiny -be:
#define THROTTLE_SIGNAL_IN 0 // INTERRUPT 0 = DIGITAL PIN 2 - használja a megszakítási számot mellékletbenInterrupt #define THROTTLE_SIGNAL_IN_PIN 2 // INTERRUPT 0 = DIGITAL PIN 2 - használja a PIN -kódot a digitalRead #define NEUTRAL_THROTTT időtartama alatt semleges fojtószelep elektromos RC autón #define UPPER_THROTTLE 2000 // ez az időtartam mikroszekundumokban a maximális fojtószelep elektromos elektromos autón #define LOWER_THROTTLE 1000 // DEADZONE 50 // ez a fojtószelep holtterülete. A teljes holtterület ennek a duplája. #include #define STEPS 21 // lépésenkénti lépések (315 ° -ig korlátozva) Változtassa meg ezt a sebességmérő maximális mozgásának beállításához. #define COIL1 3 // Tekercscsapok. Az ATTiny 0, 1, 3, 4 csapokat használ a léptetőhöz. A 2 -es tű az egyetlen tű, amely képes kezelni a megszakításokat, ezért a bemenetnek kell lennie. #define COIL2 4 // Ha a léptetőmotor nem működik megfelelően, próbálja meg ezeket megváltoztatni. #define COIL3 0 #define COIL4 1 // a léptető osztály példányának létrehozása: Stepper stepper (LÉPÉSEK, COIL1, COIL2, COIL3, COIL4); int pos = 0; // Pozíció lépésben (0-630) = (0 ° -315 °) int SPEED = 0; float ThrottleInAvg = 0; int MeasurementsToAverage = 60; float Resetcounter = 10; // a visszaállítás ideje alapjáraton fojtószelep int Resetval = 0; volatile int ThrottleIn = LOWER_THROTTLE; ingadozó előjel nélküli hosszú StartPeriod = 0; // beállítva a megszakításban // külön változó helyett használhatnánk az nThrottleIn = 0 ciklusban, de a bNewThrottleSignal használatával jelezhetjük, hogy új jelünk van // világosabb az első példában void setup () {// mondja meg az Arduino -nak azt akarjuk, hogy a calcInput függvény hívásra kerüljön, amikor az INT0 (2. digitális tű) HIGH -ról LOW -ra vagy LOW -ról HIGH -ra változik // ezeknek a változásoknak az észlelése lehetővé teszi, hogy kiszámítsuk, mennyi ideig tart a bemeneti impulzus AttaInterrupt (THROTTLE_SIGNAL_IN, calcInput, CHANGE); stepper.setSpeed (50); // állítsa be a motor fordulatszámát 30 RPM -re (kb. 360 PPS). léptető.lépés (LÉPÉSEK * 2); // Pozíció visszaállítása (X az óramutató járásával ellentétes irányba lép). } void loop () {Resetval = millis; for (int i = 0; i (NEUTRAL_THROTTLE + DEADZONE) && ThrottleInAvg <UPPER_THROTTLE) {SPEED = map (ThrottleInAvg, (NEUTRAL_THROTTLE + DEADZONE), UPPER_THROTTLE, 0, 255); Resetval = 0; } // Fordított térképezés else if (ThrottleInAvg LOWER_THROTTLE) {SPEED = map (ThrottleInAvg, LOWER_THROTTLE, (NEUTRAL_THROTTLE - DEADZONE), 255, 0); Visszaállítás = 0; } // Hatótávolságon kívül más if (ThrottleInAvg> UPPER_THROTTLE) {SPEED = 255; Visszaállítás = 0; } // A tartományon kívül alacsonyabb else if (ThrottleInAvg Resetcounter) {stepper.step (4); // Megpróbálom azt mondani a léptetőnek, hogy állítsa vissza magát, ha az RC jel hosszú ideig a holtzónában van. Nem biztos benne, hogy a kódnak ez a része valóban működik. }} int val = SEBESSÉG; // kapja meg a potenciométer értékét (0-1023 tartomány) val = map (val, 0, 255, 0, STEPS * 0.75); // térképtér tartományának feltérképezése a léptető tartományban. if (abs (val - pos)> 2) {// ha a különbség nagyobb, mint 2 lépés. if ((val - pos)> 0) {léptető.lépés (-1); // lépjen egy lépést balra. pos ++; } if ((val - pos) <0) {stepper.step (1); // lépjen egy lépést jobbra. pozíció--; }} // delay (10); } void calcInput () {// ha a tű magas, akkor a megszakítás kezdete, ha (digitalRead (THROTTLE_SIGNAL_IN_PIN) == HIGH) {// mikroszkóp segítségével kapja meg az időt - amikor a kódunk nagyon elfoglalt lesz, pontatlan lesz, de a jelenlegi alkalmazáshoz // könnyen érthető és nagyon jól működik StartPeriod = micros (); } else {// ha a csap alacsony, akkor az impulzus leeső éle, így most kiszámíthatjuk az impulzus időtartamát úgy, hogy kivonjuk a // kezdési időt ulStartPeriod a micros () által visszaadott aktuális időből, ha (StartPeriod) {ThrottleIn = (int) (micros () - StartPeriod); StartPeriod = 0; }}}
Az ATTiny85 programozásáról további információt itt talál:
learn.sparkfun.com/tutorials/tiny-avr-prog…
3. lépés: A hardver
Az áramkör felépítéséhez lásd a kapcsolási rajzot. Az összeszerelés módja rajtad múlik, de azt javaslom, hogy használj egy kis szalaglemezt/perforált lemezt, amelyet az áramköri lap prototípusának elkészítéséhez használnak, és szerelje be a chipet egy foglalatba.
C1 = 100 nF
R1 = 10 kΩ
A kondenzátort a lehető legközelebb kell elhelyezni a chiphez, hogy a leghatékonyabb legyen.
Amikor a zománcozott huzalokat a motorhoz forrasztja, legyen nagyon óvatos, mivel a motorok kapcsai szeretik lepattanni és elvágni a tekercshuzalt a motorhoz. Ennek orvoslására jó megoldás az, ha a huzalokat felforrasztjuk, majd egy nagy folt 2 részes epoxi-ragasztót teszünk a kötésre, hagyjuk megszilárdulni, majd csavarjuk össze a huzalokat. Ez csökkenti a feszültséget az egyes végcsatlakozásokon, és meg kell akadályoznia azok lecsattanását. Ha ezt nem teszi meg, akkor a legkevésbé kényelmes időben, garantáltan lekapcsolnak.
Ha elkészíti a csatlakozócsap csatlakozóját, és a csapokat a következőképpen állítja be: [Ca1, Cb1, Ca2, Cb2], a Ca1 pedig az A tekercs, az 1 vezeték stb. körül.
A mérőeszköznek végállásra lesz szüksége a nulla pozíció kalibrálásához. Javaslom, hogy a tűt lehetőleg fémből készítsék. Ez megakadályozza a hajlítást, amikor a végállást érinti. A tű jó helyzetbe hozásának egyik módja az, ha ideiglenesen ragasztja a tűt a tengelyhez, bekapcsolja a modult, hagyja pihenni, majd eltávolítja és újra felragasztja a tűt a tengelyre, a tűt pedig a végállás. Ez igazítja a tűt a motor mágneses eltömődéséhez, és biztosítja, hogy a tű mindig a végütközőnek támaszkodjon.
4. lépés: Epilógus
Remélhetőleg tetszett ez a rövid tanulság, és hasznosnak találta. Ha ezek közül egyet építesz, tudasd velem!
Sok szerencsét!
Ajánlott:
Működő Geiger számláló W/ minimális alkatrészekkel: 4 lépés (képekkel)
Működő Geiger -számláló W/ minimális alkatrészek: Tudomásom szerint itt van a legegyszerűbben működő Geiger -számláló, amelyet felépíthet. Ez egy orosz gyártmányú SMB-20 Geiger csövet használ, amelyet egy nagyfeszültségű fokozó áramkör hajt meg, amelyet egy elektronikus légycsapótól raboltak ki. Felismeri a béta részecskéket és a gam
DIY elemmel működő Bluetooth hangszóró // Hogyan építsünk - fafeldolgozás: 14 lépés (képekkel)
DIY elemmel működő Bluetooth hangszóró // Hogyan építsünk-Famegmunkálás: Ezt az újratölthető, elemmel működő, hordozható Bluetooth boombox hangszórót a Parts Express C-Note hangszórókészlet és a KAB erősítő táblájuk segítségével építettem (linkek az alábbi részekre). Ez volt az első hangszóró -konstrukcióm, és őszintén csodálkozom azon, hogy milyen fantasztikus
IOT WiFi virág nedvességérzékelő (akkumulátorral működő): 8 lépés (képekkel)
IOT WiFi virág nedvességérzékelő (elemmel működtethető): Ebben az oktatóanyagban bemutatjuk, hogyan lehet kevesebb mint 30 perc alatt felépíteni a WiFi nedvesség/víz érzékelőt az akkumulátor töltöttségi szintjének monitorával. A készülék figyeli a nedvességszintet, és adatokat küld az okostelefonra az interneten (MQTT) egy kiválasztott időközönként. U
Gyertyával működő elektromos gyertya: 8 lépés (képekkel)
Gyertyaüzemű elektromos gyertya: Miután megláttam a Sandy hurrikánról szóló híreket, és hallottam a megpróbáltatásokat, amelyeken New Yorkban és New Jersey-ben minden családom és barátom keresztülment, elgondolkodtam a saját vészhelyzeti készültségemen. Végül is San Francisco nagyon sok helyen ül
Napenergiával működő robot: 17 lépés (képekkel)
Napenergiával működő robot: Régebben tucatnyi robotot készítettem, amelyeket nagyrészt a BEAM Robotics ihletett. Azok számára, akik nem ismerik, a BEAM alapvetően egy speciális robotépítési módszer, amelynek középpontjában a biológia, az elektronika, az esztétika és a mechanika áll (ezért a rövidítés