Tartalomjegyzék:
- 1. lépés: Blokkdiagram - Hardver
- 2. lépés: Blokkdiagram - Hálózatépítés
- 3. lépés: Alkatrészek, eszközök, IDE és anyagjegyzék
- 4. lépés: Hardvertervezés - alaplap
- 5. lépés: Hardvertervezés - ESP32 modul
- 6. lépés: NYÁK -elrendezés
- 7. lépés: 3D szekrény
- 8. lépés: Szoftver implementálása - MCU
- 9. lépés: Szoftver implementálása - Android -alkalmazás
- 10. lépés: Tesztelés
Videó: Hordozható funkciógenerátor WiFi -n és Androidon: 10 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
A 20. század vége felé különféle technológiai újítások bukkantak fel, különösen a kommunikáció területén; de nem csak. Számunkra a felhasználók, a fogyasztók és a mérnökök rávilágítottak az elektronikus eszközök gyors fejlődésére, amelyek jelentősen megkönnyíthetik az életünket: intelligens órák, okos otthonok, okostelefonok stb.
Mivel manapság minden lehet „okos”, úgy döntöttem, hogy egy szuper -hasznos eszközt tervezek az alapvető elektronikus laboratóriumi berendezések részeként - hordozható funkciógenerátort, amelyet Android OS -alapú okostelefonnal lehet irányítani WiFi közvetlen vagy WiFi helyi hálózaton (WLAN) keresztül).
Miért építsük ezt a készüléket?
A vizsgálóberendezések túlnyomó része manapság meglehetősen drága. És néha ezek az eszközök nem hordozhatók. Megoldásként a magas árak, a hordozhatóság hiánya és az eszközhálózat -hozzáférés hiánya miatt az eszköz kétcsatornás hullámforma -generátort biztosít, amely valóban hordozható, és korlátlan hozzáféréssel rendelkezik a hálózathoz - akár internethez, akár helyi hálózathoz.
És persze az eszközt a lelkesedés, a barkácsolás elvei betartása miatt kell megépíteni - Néha csak magunknak kell tennünk valamit, hogy jól érezzük magunkat:)
Főbb jellemzők
Tápegység
- A típusú USB csatlakozó, tápellátó rendszerekhez és programozáshoz egyaránt
- Komplett Li -Ion akkumulátorkezelő rendszer - Töltés és stabil üzemmódok
- Intelligens kapcsoló megvalósítás - nincs szükség áramváltó kapcsolóra
- Kettős tápegység: +3,3 V és -3,3 V szimmetrikus feszültséghullám -alakú generáláshoz
Hullámalakítás
- DC szint megvalósítása a kimeneti kaszkádban - torzított hullámforma a feszültséghatárok között
- DDS alapú 4 típusú hullámforma generálás - szinusz, háromszög, négyzet és egyenáram
- Akár 10MHz frekvencia támogatás
- Kimeneti áram akár 80mA 500mW maximális rendelkezésre állással
- Külön csatornák a hullámforma generáláshoz - osztott AD9834 alapú áramkörök
Kommunikáció
- Az ESP32 megvalósítása - Alkalmazható WiFi képességek
- Teljes körű TCP/IP támogatás generátor eszközzel és Android okostelefonnal
- Képesség a felhasználói paraméterek tárolására minden eszközciklushoz
- Állapotfigyelés - mindkét rendszer tisztában van egymással: a FuncGen (nevezzük mostantól így) és az okostelefon.
Felhasználói felület
- 20 x 4 karakteres LCD, egyszerű 4 bites adat interfésszel
- Android -alkalmazás - teljes felhasználói ellenőrzés a FuncGen eszköz felett
- Zümmögő áramkör - hangos visszajelzés a felhasználónak
1. lépés: Blokkdiagram - Hardver
Mikrokontroller egység - ATMEGA32L
A mikrokontroller egy programozható chip, amely a számítógép minden olyan funkciójából áll, amelyek egyetlen elektronikus chipben találhatók. Esetünkben ez az "agy" és a rendszer központi eleme. Az MCU célja az összes perifériás rendszer kezelése, a rendszerek közötti kommunikáció kezelése, a hardver működésének ellenőrzése, valamint a felhasználói felület és a tényleges felhasználóval való interakció teljes körű támogatása. Ez a projekt az ATMEGA32L MCU -n alapul, amely 3.3V -on és 8MHz -es frekvencián működik.
Kommunikációs SoC - ESP32
Ez az SoC (System on Chip) teljes körű kommunikációs támogatást nyújt a FuncGen számára - Hozzáférés a WiFi képességekhez, beleértve a közvetlen, helyi vagy internetes kommunikációt. Az eszköz célja:
- Adatátvitel kezelése az Android alkalmazás és a FuncGen eszköz között
- Vezérlő/adatüzenetek kezelése
- A folyamatos TCP/IP kliens-szerver konfiguráció támogatása
A mi projektünkben az SoC az ESP32 espressif, ami túl népszerű ahhoz, hogy tovább bővítsük:)
Li-Ion akkumulátorkezelő rendszer
Annak érdekében, hogy eszközünket hordozhatóvá alakítsuk, az eszköz tervezett Li-Ion akkumulátor töltőáramkört tartalmaz. Az áramkör MC73831 IC -n alapul, szabályozható töltőárammal, egyetlen programozási ellenállás értékének beállításával (ezt a témát a Vázlat lépésben tárgyaljuk). A készülék tápegység bemenete A típusú USB-csatlakozó.
Intelligens kapcsoló áramkör
Az intelligens kapcsolóeszköz tápfeszültség -vezérlő áramköre teljes szoftvervezérlést biztosít az eszköz leállítási sorrendje felett, és nincs szükség külső váltókapcsolóra az eszköz akkumulátorfeszültségének leállításához. Minden bekapcsolási műveletet a nyomógomb és az MCU szoftverének megnyomásával végezhet el. Bizonyos esetekben le kell állítani a rendszert: Alacsony akkumulátorfeszültség, magas bemeneti feszültség, kommunikációs hiba és így tovább. Az intelligens kapcsoló az STM6601 intelligens kapcsoló IC -n alapul, amely olcsó és nagyon barátságos a játékhoz.
Fő tápegység
Ez az egység két elemmel működő tápegységből áll - +3,3 V az összes digitális / analóg tápáramkörben és -3,3 V a FunGen szimmetrikus kimenetében a 0 V potenciálhoz képest (azaz a generált hullámforma beállítható [-3,3 V: 3,3 V] vidék.
- A fő tápáramkör az LP3875-3,3 LDO (low dropout) 1A lineáris feszültségszabályozóra épül.
- A másodlagos tápáramkör az LM2262MX IC-n alapul, amely DC-DC negatív feszültségátalakítást végez kondenzátor-töltés-szivattyú-az IC alapú rendszeren keresztül.
Hullámforma generátor rendszer
A rendszert úgy tervezték, hogy külön hangsúlyt fektessenek a külön DDS (közvetlen digitális szintézis) integrált áramkörökre, amelyek lehetővé teszik a teljes hullámforma -generálás vezérlését az MCU SPI (soros perifériás interfész) segítségével. A tervezés során használt áramkörök az AD9834 analóg eszközök, amelyek különböző típusú hullámformákat biztosíthatnak. A következő kihívásokkal kell szembenéznünk az AD9834 használatakor:
- Fix hullámforma amplitúdó: A hullámforma amplitúdóját külső DAC modul vezérli
- Az offset DC szint figyelmen kívül hagyása: Összefoglaló áramkörök megvalósítása a kívánt DC offset értékekkel
- Külön kimenetek a négyzethullámhoz és a háromszög/szinusz hullámhoz: Nagyfrekvenciás kapcsolóáramkör megvalósítása, így minden egyes csatornás kimenet biztosítja a kívánt hullámformát: szinusz, háromszög, négyzet és egyenáram.
Folyadékkristályos kijelző
Az LCD a felhasználói felület (felhasználói felület) része, és célja, hogy lehetővé tegye a felhasználó számára, hogy megértse, mit csinál az eszköz valós idejű módban. Minden eszközállapotban kölcsönhatásba lép a felhasználóval.
Berregő
Egyszerű hanggenerátor áramkör további visszajelzéshez az eszköztől a felhasználóig.
Integrált ISP programozó
Minden mérnöknek van egy állandó problémája a programozási folyamat során: Mindig az a legrosszabb szükség, hogy szétszereljük a terméket, hogy újraprogramozhassuk egy új firmware -vel. Ennek a kellemetlenségnek a kiküszöbölése érdekében az AVR ISP programozót belülről csatlakoztatta az eszközhöz, míg az USB-adatokat és a tápvezetékeket az eszköz A típusú USB-csatlakozójához kötötték. Ebben a konfigurációban csak be kell dugnunk a FuncGen -t USB -kábelen keresztül akár programozáshoz, akár töltéshez!
2. lépés: Blokkdiagram - Hálózatépítés
Kétcsatornás funkciógenerátor
Fő eszköz. Amit az előző lépésben áttekintettünk
ESP-WROOM-32
Beépített System-on-Chip WiFi és BLE képességekkel. Az SoC az UART modulon keresztül csatlakozik az alaplaphoz (ezt a vázlatos lépésekben tárgyaljuk), és üzenetátvivőként működik a fő eszköz és az Android okostelefon között.
WiFi helyi hálózat
Az okostelefon és az eszköz a WiFi közvetlen vagy helyi hálózaton keresztül kommunikál a TCP szerver/kliens konfigurációja alapján. Amikor az eszközök felismerik egymást a WiFi -n, a fő eszköz megfelelő paraméterekkel TCP szervert hoz létre, és képes üzeneteket küldeni/fogadni. Az eszköz másodlagosan működik az okostelefonnal szemben. Az Android -eszköz viszont kliens hálózati eszközként csatlakozik a TCP -szerverhez, de elsődleges üzenettovábbítónak tekinthető - az okostelefon az, aki teljes kommunikációs ciklust kezdeményez: Üzenet küldése - válasz fogadása.
Android okostelefon
Android OS -alapú okostelefon, amely a FuncGen alkalmazáson fut
3. lépés: Alkatrészek, eszközök, IDE és anyagjegyzék
Anyagjegyzék (lásd a mellékelt XLS táblázatot)
UI és rendszerkapcsolatok
- 1 x 2004A Char-LCD 20x4 kék
- 1 db B típusú USB csatlakozó
- 1 x 10 szett Mini Micro JST XH 2,54 mm 4 tűs
- 1 x 6db Pillanatnyi SW
NYÁK megrendelés (a Seeed Studio szerint)
Alapanyag FR-4
Rétegek száma 2 réteg
NYÁK -mennyiség 10
Különböző formatervezési minták száma 1
NYÁK vastagsága 1,6 mm
NYÁK színe kék
Felületkezelő HASL
Minimális forrasztómaszk gát 0,4 mm ↑
Réz súlya 1 oz
A fúrólyuk minimális mérete 0,3 mm
Nyomkövetési szélesség / távolság 6/6 mil
Rétegezett félfuratok / Castellated Lyukak
Impedancia szabályozás Nem
Eszközök
- Ragasztópisztoly
- Csipesz
- Vágó
- ~ 22AWG huzal a meghibásodás kezelésére
- Forrasztópáka/állomás
- Forrasztó konzervdoboz
- SMD átdolgozó állomás (opcionális)
- 3D nyomtató (opcionális)
- Extrudáló fájl
- AVR ISP programozó
- USB -soros átalakító (opcionális, hibakeresési célokra)
Integrált fejlesztői környezet (IDE) és szoftver
- Autodesk EAGLE vagy Cadence Schematic Editor / Allegro PCB Editor
- OpenSCAD (opcionális)
- Ultimaker Cura (opcionális)
- Saleae Logic (hibaelhárításhoz)
- Atmel Studio 6.3 vagy újabb
- Android Studio vagy Eclipse IDE
- Docklight soros monitor / egyéb COM portfigyelő szoftver
- ProgISP az AVR ATMEGA32L vaku programozásához
4. lépés: Hardvertervezés - alaplap
Akkumulátor -kezelő áramkör
Az akkumulátor töltési áramköre az MCP7383 IC -n alapul, amely lehetővé teszi, hogy kiválasszuk a kívánt töltőáramot a Li -Ion akkumulátorhoz - 3,7 V, 850mAh kapacitással. A töltőáramot az ellenállás érték (R1) programozásával állítjuk be esetünkben
R1 = 3KOhm, I (töltés) = 400mA
A VBUS USB feszültséget a π-szűrő (C1, L3, C3) szűri, és a töltőáramkör áramforrásaként működik.
A feszültségosztó áramkör (R2, R3) lehetővé teszi az MCU számára, hogy jelezze, hogy külső USB -tápegység csatlakozik -e vagy sem, az alábbi feszültség biztosításával az MCU A/D csatornához:
V (jelzés) ~ (2/3) V (busz)
Mivel az ATMEGA32L A/D 12 bites, kiszámíthatjuk a digitális tartományt:
A / D (tartomány) = 4095V (jelzés) / V (REF).
A/D ∈ [14AH: FFFH]
Smart Switch tápegység
Az áramkör lehetővé teszi a rendszer számára, hogy vezérelje az áramellátást minden tervezett blokkhoz, mind a nyomógombok, mind az MCU szoftverén keresztül, és az STM6601 Smart-Switch alapú, POWER opcióval a RESET helyett. A következő terminálokat szeretnénk figyelembe venni:
- PSHOLD - Bemeneti vonal, amely meghatározza az eszköz állapotát: ha alacsonyra húzza, az eszköz letiltja az összes másodlagos tápegységet (+3,3 V és -3,3 V). Ha a HIGH gombot tartja - az eszköz bekapcsolt állapotban marad.
- nSR és nPB - Bemeneti vonalak. Nyomógombos terminálok. Amikor ezeken a csapokon leeső élt észlel, a készülék megpróbál be- / kikapcsolni
- nINT - Kimeneti vonal. LOW -t húz minden alkalommal, amikor megnyomja a nyomógombot
- HU - Kimeneti vonal, a másodlagos tápegységek áramellátását lehetővé teszi. Ha alacsonyan tartja, mindkét másodlagos tápegység le van tiltva
Van néhány fontos megjegyzés, mielőtt folytatnánk a végső tervezést:
- A PSHOLD-ot fel kell húzni 3,3 V-ra, mert vannak esetek, amikor az MCU-k az összes I/O-t HIGH-Z állapotba kényszerítik. Ebben az esetben az MCU PSHOLD állapota ismeretlen, és drámaian befolyásolhatja az eszköz programozási folyamatát.
- Az STM6601 -et hosszú ideig tartó EN beállítási lehetőséggel kell megrendelni, nem pedig RESET opcióval (ebbe beleestem).
Tápegység: +3.3V
Fő tápegység a projektünk összes rendszeréhez. Ha a +3,3 V -os vezetéket GND szinten tartja (azaz nincs feszültség), az intelligens kapcsoló kivételével az összes IC le van tiltva. Az áramkör az LDO LP-3875-3.3 IC alapú, és az EN terminálon keresztül vezérelhető, és legfeljebb 1A áramot biztosít.
Ennek az áramkörnek az áramforrása az akkumulátor feszültsége, mellékelt A/D jelzővel a VBAT érzékeléséhez konfigurációban, hasonlóan a VBUS érzékelő áramkörhöz. Ebben az esetben a számítások kissé eltérnek;
V (akkumulátor-A/D) = 0,59 V (akkumulátor); A/D (tartomány) ∈ [000H: C03H]
Tápegység: -3,3V
A negatív feszültségű tápáramkör lehetővé teszi számunkra, hogy szimmetrikus hullámformákat hozzunk létre 0 V DC tényezővel (azaz a hullámforma átlagos értéke 0V lehet). Ez az áramkör az LM2662MX IC - DC/DC átalakítón alapul, amely "töltőszivattyús" módszerrel működik. Az áramkör maximális kimeneti árama 200mA, ami elegendő a tervezési igényeinkhez - korlátozott a 80mA kimeneti áram minden eszköz csatornájáról.
Az IC elvégzi az összes szükséges munkát, ezért csak két elektrolitikus kondenzátort kell csatlakoztatnunk: C33 a kapcsoláshoz és C34 a -3,3 V vezeték -megkerüléshez (zajcsökkentési megfontolások). A kapcsolás gyakorisága elhanyagolható a tervezésben, ha az áramkört kellő távolságra helyezzük el a hullámforma generáló alkatrészektől (ezt a PCB elrendezési lépésben tárgyaljuk).
Mikrokontroller egység - MCU
Ez a rendszer menedzsere és vezérigazgatója - vezérlés, hálózati kezelés, üzenettovábbítás és felhasználói felület támogatás - mindent az MCU végez.
A kiválasztott MCU az Atmel ATMEGA32L, ahol az L a támogatott feszültségű működést jelenti ∈ [2.7V: 5.5V]. Esetünkben az üzemi feszültség +3,3 V.
Tekintsük a főbb működési blokkokat, amelyeket meg kell értenünk az MCU -val való tervezés során:
- Külső oszcillátor - opcionális alkatrész, mivel érdekel a 8 MHz -es működési frekvencia
-
Perifériás vezérlés, SPI hálózat - Az összes perifériás eszköz (az ESP32 kivételével) kommunikál az MCU -val az SPI -n keresztül. Három megosztott vonal van minden eszközhöz (SCK, MOSI, MISO), és minden perifériás áramkör rendelkezik saját CS (Chip Select) vonallal. Az SPI eszközök, amelyek az eszköz részét képezik:
- D/A az amplitúdó vezérléshez - A csatorna
- D/A amplitúdó vezérléshez - B csatorna
- AD9834 eszköz - A csatorna
- AD9834 eszköz - B csatorna
- D/A az előfeszített feszültségszabályozáshoz - A csatorna
- D/A az előfeszített feszültségszabályozáshoz - B csatorna
- Digitális potenciométer az LCD fényerejének/kontrasztjának beállításához
- LCD támogatás - Mivel az LCD egy általános 20 x 4 karakteres kijelző, 4 bites interfészt (D7: D4 sor), vezérlőcsapokat (RS, E sor) és fényerő/kontraszt szabályozást (V0 és anód sorok) használunk
- RGB LED támogatás - Ez a modul opcionális, de van egy közös katódos RGB LED csatlakozó megfelelő ellenállásokkal, amelyek az MCU -hoz vannak csatlakoztatva.
-
Energiaszabályozás - Az MCU valós idejű üzemmódban végzi az energiaellátó rendszer felügyeletét, és kezeli az összes szükséges áramellátási eseményt:
- VBAT_ADC - Az akkumulátor feszültségének figyelése és állapotának meghatározása (ADC0 csatorna)
- PWR_IND - A külső tápegység csatlakoztatásának jelzése (ADC1 csatorna)
- PS_HOLD - Elsődleges áramellátási vonal az összes meghatározott rendszerhez. Amikor az MCU alacsonyra húzza, az eszköz lekapcsol
- Az intelligens kapcsoló megszakító terminálja - Nyomógomb állapot felügyelet
- WiFi hálózatkezelés - ESP32: Az MCU UART interfészen keresztül kommunikál az ESP32 -vel. Mivel a 8MHz lehetővé teszi, hogy viszonylag kis hibával megvalósítsuk a 115200-as adatátviteli sebességet, az ESP32-t használhatjuk az áramkörben az adatátviteli sebesség változásának előzetes meghatározása nélkül.
AVR ISP programozó
Az MCU -nkat SPI -n keresztül programozzuk, és a visszaállítási vonalat (/RST) magasra kell húzni a megfelelő működéshez (ha nem - az MCU örökre reset állapotba kerül).
Annak érdekében, hogy az eszköz USB-n keresztül is programozható és tölthető legyen, csatoltam AVR ISP programozót (kis méretű termék, az eBay-től vásárolt). Az eszköz teljes USB-támogatásának fenntartása érdekében össze kell kötni az A típusú USB (D+, D-, VBUS és GND) terminálokat az AVR ISP eszközzel.
Hullámforma generáló áramkör
A készülék magja ezek az áramkörök. Az AD9834 egy kis fogyasztású DDS eszköz, amely minden olyan hullámformát biztosít számunkra, amelyeket a rendszerből szeretnénk lekérni. Az áramkörök két független AD9834 IC -t tartalmaznak, külön 50MHz -es oszcillátorokkal (amint az a rajzokon látható). Az elkülönített oszcillátor oka a digitális áramkörök zajcsökkentési szempontja, ezért a döntés az volt, hogy megfelelő 50 MHz -es vonalakat kell kezelni az AD9834 mellett elhelyezett oszcillátorokkal.
Most nézzünk egy kis matematikát:
Mivel a DDS eszköz Phase Wheel technológián működik, a kimeneti érték 28 bites regiszterben van, a hullámforma generálását matematikailag leírhatjuk:
dP (fázis) = ωdt; ω = P '= 2πf; f (AD9834) = ΔP * f (clk) / 2^28; ΔP ∈ [0: 2^28 - 1]
És az AD9834 adatlapja szerint, figyelembe véve a maximális frekvenciát, a kimeneti frekvencia felbontása elérhető:
Δf = k * f (oszcillátor) / f (maximum) = 0,28 * 50M / 28M = 0,187 [Hz]
Az AD9834 IC -k analóg áramkimenetet biztosítanak a háromszög/szinusz hullámhoz (IOUT terminál) és digitális kimenetet a négyzethullámhoz (SIGN_OUT terminál). A jelbit használata kissé trükkös, de képesek vagyunk kezelni - Minden alkalommal, amikor a DDS átlépi az összehasonlítási érték küszöbét, a SIGN_OUT ennek megfelelően viselkedik. Minden csatorna kimenetéhez egy 200 ohmos ellenállás van csatlakoztatva, így a kimeneti feszültségnek jelentős értékei vannak:
I (egycsatornás) = V (kimenet) / R (feszültségválasztás); V (kimenet) = R (VS)*I (SS) = 200I (SS) [A]
Amplitúdó (D/A) áramkörök
Az AD9834 adatlapja szerint amplitúdója a DDS teljes skálájú rendszer áramellátásával állítható be, így a kettős D/A IC segítségével szabályozhatjuk a kimeneti jel amplitúdóját az áram beállításával. Még egyszer egy kis matek:
I (teljes skála) = 18 * (V_REF - V_DAC) / R_SET [A]
A vázlatok szerint és néhány szám egyenletbe helyezése:
I (teljes skála) = 3,86 - 1,17 * V_DAC [A]
A tervezéshez használt D/A modul 12 bites MCP4922, ha az áram [0mA: 3,86mA] tartományban van, és a lineáris amplitúdó függvény:
V (amplitúdóválasztás) = 1 - [V (D / A) / (2^12 - 1)]
Hullámforma multiplexelő áramkör
A négyszöghullámú és a szinusz/háromszög hullám generáló kimenetek el vannak választva az AD9834 -nél, ezért nagy sebességű multiplexáló áramkört kell használni mindkét kimenethez, hogy lehetővé tegyük az összes kívánt hullámforma lekérését egyetlen elválasztott csatornából. A multiplexer IC egy ADG836L analóg kapcsoló, nagyon alacsony ellenállással (~ 0,5 Ohm).
A kiválasztási táblázat, amelyet az MCU a kimenetekhez használ:
Módválasztás [D2: D1] | A kimeneti csatorna | B kimeneti csatorna
00 | Szinusz/háromszög | Szinusz/háromszög 01 | Szinusz/háromszög | 10. tér | Négyzet | Szinusz/háromszög 11 | Négyzet | Négyzet
Előfeszítési feszültségszabályozó (D/A) áramkörök
A hullámforma generátor egyik fő jellemzője a DC értékének szabályozása. Ebben a kialakításban úgy történik, hogy minden csatornán a kívánt D/A feszültséget állítják be, és ezeket az előfeszítési feszültségeket összegezik multiplexelt kimenetekkel, amelyeket egy kicsit korábban tárgyaltunk.
A D/A-ból származó feszültség a [0V: +3.3V] tartományban van, így van egy op-amp alapú áramkör, amely a D/A tartományt [-3.3V: +3.3V] -ra képezi le, lehetővé téve az eszköz számára, hogy teljes tartományt biztosítson a kívánt egyenáramú komponenstől. Kihagyjuk a bosszantó analitikai matematikát, és csak a végeredményre koncentrálunk:
V_OUT (B csatorna) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (A csatorna) = V_BIAS_A (+) - V_BIAS_A (-)
Most az egyenáramú komponensek tartománya a [-3.3V: +3.3V] tartományban található.
Összefoglaló áramkörök - egyenáramú komponensek és hullámforma kimenetek
Ezen a ponton minden megvan, amire szükségünk van a megfelelő eszközkimenethez - előfeszítési feszültség (egyenáramú komponens) a teljes feszültségtartományban, és multiplexelt AD9834 kimenetek. Ezt az összegző erősítő - op -amp konfiguráció - használatával tudjuk megvalósítani
Hagyjuk még egyszer a matematikát (sok matematikai megközelítést már leírtunk), és írjuk le az összegző erősítő kimenetének végeredményét:
V (eszközkimenet) = V (pozitív torzítás) - V (negatív torzítás) - V (multiplexelt kimenet) [V]
Ennélfogva:
V_OUT = ΔV_BIAS - V_AD9834 [V]
A BNC típusú kimeneti csatlakozók kiválasztó ellenállásokkal vannak összekötve (R54, R55; R56, R57). Ennek az az oka, hogy abban az esetben, ha a tervezés nem megfelelő, akkor is kiválaszthatjuk, hogy összefoglaló erősítőt szeretnénk -e használni.
Fontos megjegyzés: A végső összegző erősítők ellenálláshálózatát a tervező állíthatja be annak érdekében, hogy megváltoztassa az eszközről lekérhető maximális amplitúdót. Esetemben minden erősítő ugyanazt az erősítést = 1, így a maximális pufferelt amplitúdó 0,7Vpp háromszög/szinusz hullám esetén és 3,3Vpp négyzethullám esetén. A sajátos matematikai megközelítés megtalálható a Step csatolt képei között.
ESP32 külső modulként
Az MCU UART interfészen keresztül kommunikál az ESP32 -vel. Mivel saját NYÁK -ot akartam az ESP32 -hez, 4 csatlakozó áll rendelkezésre a csatlakoztatáshoz: VCC, RX, TX, GND. A J7 egy interfészcsatlakozó a NYÁK -ok között, és az ESP32 külső modulként kerül kiosztásra a készüléken belül.
Felhasználói felület - LCD és hangszóró
A használt LCD egy általános 20 x 4 karakteres kijelző, 4 bites interfésszel, Ahogy a kialakításból is látható, van egy SPI digitális potenciométer az "A" és "V0" LCD terminálokhoz - célja a beállítás az LCD modul fényereje és kontrasztja programozottan.
A hangszóró hangkimenetet biztosít a felhasználó számára az MCU egyszerű négyszöghullám -generálásával. A BJT T1 a hangszórón keresztül szabályozza az áramot, amely csak két állapotban lehet - BE / KI.
5. lépés: Hardvertervezés - ESP32 modul
Az ESP32 -t külső modulként használják a fő NYÁK -hoz. Az eszközkommunikáció AT parancsokon alapul, amelyek egy általános eszköz firmware -jén érhetők el.
Ezen a dizájnon nem sokat kell bővíteni, de van néhány megjegyzés a tervezéshez:
- Az ESP32 megfelelő UART moduljának meghibásodásának kezelésére három kiválasztó ellenállást csatoltam mind a TX, mind az RX vonalakhoz. (0 ohm mindegyikhez). A szabványos konfigurációhoz az UART2 modult használják az AT parancsokhoz (R4, R7 forrasztani kell)
- A készülék 4 soros kimenettel rendelkezik - VCC, GND, TX, RX.
- Az IO0 és EN csapok értékelik az eszköz működését, és úgy kell megtervezni, ahogy az a rajzokban szerepel
A PCB összes funkcióját a következő lépésben tárgyaljuk.
6. lépés: NYÁK -elrendezés
A NYÁK tervezésének céljai
- Hozzon létre beágyazott rendszert az összes fedélzeti integrált áramkörhöz
- Javítsa az eszköz teljesítményét egyetlen fő NYÁK tervezésével
- Költségcsökkentés - ha meg szeretné nézni az árakat, az alacsony költségű tervek TÉNYLEG alacsony költségek
- Minimalizálja az elektronikus kártya méretét
- Könnyű hibaelhárítás - TP -ket (tesztpontokat) használhatunk minden lehetséges hibás vezetékhez.
Technikai paraméterek
Mindkét NYÁK: az alaplap és az ESP32 kártya ugyanazokkal a jellemzőkkel rendelkezik a gyártási folyamat során - alacsony költségű és használható a mi céljainkhoz. Lássuk őket:
A - Főtábla
- Mérete: 10 cm x 5,8 cm
- Rétegek száma: 2
- NYÁK vastagság: 1,6 mm
- Minimális nyomtér/szélesség: 6/6mil
- Minimális átmenő furat átmérő: 0,3 mm
- Réz a NYÁK széléig minimális távolság: 20mil
- Felületkezelés: HASL (nagyon jó megjelenésű ezüst színű olcsó típus)
B - Főtábla
- Mérete: 3 cm x 4 cm
- Rétegek száma: 2
- NYÁK vastagság: 1,6 mm
- Minimális nyomtér/szélesség: 6/6mil
- Minimális átmenő furat átmérő: 0,3 mm
- Réz a NYÁK széléig minimális távolság: 20mil
- Felületkezelés: HASL
7. lépés: 3D szekrény
Nem magam terveztem, mert akkoriban rávettem a készüléket a működésre, így egyáltalán nem voltam tisztában a 3D nyomtatás minden alapjával. Így a Thingiverse SCAD projektjét használtam, és különböző nyílásokat rögzítettem a határokhoz, az eszköz specifikációinak megfelelően.
- Nyomtatóeszköz: Creality Ender-3
- Ágy típusa: Üveg, 5 mm vastag
- Szál átmérője: 1,75 mm
- Szál típusa: PLA+
- Fúvóka átmérő: 0,4 mm
- Kezdeti sebesség: 20mm/sec
- Átlagos sebesség: 65mm/sec
- Támogatás: N/A
- Kitöltés: 25%
-
Hőfok:
- Ágy: 60 (oC)
- Fúvóka: 215 (oC)
- Szál színe: fekete
- Teljes rekeszszám: 5
-
Szekrénypanelek száma: 4
- TOP Shell
- Alsó héj
- Előlap
- Hátsó panel
8. lépés: Szoftver implementálása - MCU
GitHub Link az Androidhoz és az Atmega32 kódhoz
Szoftveres algoritmus
Az MCU által végrehajtott összes műveletet a mellékelt folyamatábrák írják le. Ezen kívül van egy csatolt kód a projekthez. Tekintsük a szoftver specifikációit:
Kapcsold be
Ebben a szakaszban az MCU elvégzi az összes inicializálási szekvenciát, valamint meghatározza a tárolt kommunikáció típusát Android -eszközzel: Közvetlen WiFi vagy WLAN hálózati kommunikáció - ezeket az adatokat az EEPROM tárolja. A felhasználó ebben a szakaszban újradefiniálhatja az Android -eszköz párosítási típusát.
Közvetlen Android -eszközpárosítás
Ez a típusú párosítás a FuncGen eszköz által létrehozott WiFi hálózaton alapul. Létrehoz AP -t (Access Point) és TCP -kiszolgálót a helyi eszköz IP -címén, meghatározott SSID -vel (WiFi -hálózat neve) és egy adott portszámmal. Az eszköznek tartania kell az állapotot - nyitva a kapcsolatok számára.
Amikor az Android -eszköz csatlakoztatva van a FuncGen -hez, az MCU ACTIVE módba lép, és az Android -eszköz felhasználói utasításai szerint reagál.
WLAN párosítás
A helyi WiFi hálózaton való kommunikációhoz az MCU -nak parancsokat kell biztosítania az ESP32 számára, hogy hozzáférési pontot hozzon létre, kommunikáljon az Android -eszközzel és cserélje ki a legfontosabb hálózati adatokat:
- Az Android készülék megkapja a FuncGen -től a MAC -címét, és eltárolja a memóriában.
- A FuncGen eszköz megkapja az Android készülék által kiválasztott WLAN paramétereket: SSID, biztonsági típus és jelszó, és tárolja az EEPROM -ban.
Ha az eszközök valóban ugyanahhoz a WLAN -hez vannak csatlakoztatva, az Android -eszköz megkeresi a FuncGen -t a WLAN -hoz csatlakoztatott eszközök összes MAC -címének beolvasásával. Amikor az Android -eszköz meghatározza a MAC -egyezést, megpróbál kommunikálni.
Csatlakozás és állapotkezelés - MCU
Amikor az eszközök kommunikálnak egymással, a protokoll (lásd az utolsó lépést) változatlan marad, és a folyamatábra ugyanaz.
Eszközállapot -felügyelet
Az időzített megszakítás biztosítja az MCU számára az állapotkezeléshez szükséges részleteket. Minden időzítő megszakítási ciklusban a következő paraméterek listája frissül:
- Külső tápegység - Be/Ki
- Az akkumulátor feszültség állapota
- UI frissítés minden testreszabáshoz
- Nyomógomb: Nyomva/Nincs megnyomva
9. lépés: Szoftver implementálása - Android -alkalmazás
Az Android alkalmazás Java-Android stílusban van írva. Megpróbálom megmagyarázni az előző lépésekhez hasonló módon - az algoritmus külön kódblokkra osztásával.
Bekapcsolási sorrend
A készülék első sorozata. Itt megjelenik az alkalmazás logója, valamint az Android -eszköz GPS- és WiFi -moduljainak engedélyezése (ne aggódjon, a GPS csak a megfelelő WiFi hálózatok vizsgálatához szükséges).
Főmenü
Az alkalmazás indítása után négy gomb jelenik meg a képernyőn. Gombok művelete:
- KÖZVETLEN CSATLAKOZTATÁS: A FuncGen AP -hez való csatlakozás inicializálása az IOT_FUNCGEN SSID azonosítójával. Ha a kapcsolat sikeres, az eszköz belép a fő felhasználói felület módba.
- WIFI CSATLAKOZTATÁS: Az eszköz ellenőrzi, hogy vannak -e tárolt adatparaméterek a memóriában: wifi.txt, mac.txt. Ha nincsenek tárolt adatok, az eszköz elutasítja a felhasználói kérelmet, és felugró üzenetet küld arról, hogy először a WLAN-párosítást kell elvégezni.
- PÁROSÍTÁS: A FuncGen -nel ugyanúgy kommunikál, mint a DIRECT CONNECTION, de a folyamatos üzenetváltás helyett egyetlen kézfogás történik. Az Android -eszköz ellenőrzi, hogy csatlakozik -e már a WiFi hálózathoz, és kéri a felhasználót, hogy írja be a jelszót. Ha az újracsatlakozás sikeres, az Android -eszköz tárolja az SSID -t és a jelszót a wifi.txt fájlban. A FuncGennel folytatott sikeres kommunikáció után a kapott MAC -címet a mac.txt fájlban tárolja.
- Kilépés: Elég volt:)
WiFi szkenneléskezelő
Azt akartam, hogy az alkalmazás teljesen működőképes legyen, és ne végezzenek alkalmazáson kívüli módosításokat. Tehát megterveztem a WiFi szkennert, amely elvégzi az összes szükséges műveletet ahhoz, hogy ismert jelszóval és SSID -vel csatlakozzon a WiFi hálózathoz.
Adatátvitel és TCP kommunikáció
Ez az alkalmazás fő kódblokkja. Valamennyi felhasználói felület egy meghatározott formátumú üzenetet tartalmaz (utolsó előtti lépés), amely arra kényszeríti a FuncGent, hogy a kívánt kimenetet biztosítsa a csatornákhoz. Háromféle felhasználói felület mező létezik a tevékenységben:
-
Keresősávok: Itt definiáljuk a FuncGen kimeneti paraméterek valós tartományát
- Amplitúdó
- DC eltolás
- LCD fényerő
- LCD kontraszt
- Szövegszerkesztés: Annak érdekében, hogy az egész számok jól definiáltak és pontosak legyenek, a frekvenciabevitel csak számok szövegmezőin keresztül történik
-
Gombok: Paraméterek kiválasztása a rendelkezésre álló listákból:
- Hullámforma
- Szinusz
- Háromszög
- DC
- Négyzet
- KI
-
Szerezz információt
- Akkumulátor állapota (százalék)
- AC állapot (külső tápegység)
-
Indítási opció (FuncGen MCU esetén)
- Gyári beállítás
- Újrakezd
- Leállitás
- Közvetlen - Újraindítás közvetlen párosítási móddal
- WLAN - Indítsa újra a WLAN párosítási móddal
- Kilépés a főmenübe: Elég mondta:)
- Hullámforma
10. lépés: Tesztelés
Ajánlott:
Valós idejű grafikon rajzolása Androidon az Arduino-tól a HC-05-ig: 3 lépés
Valós idejű grafikon ábrázolása Androidon Arduino-tól HC-05-ig: Üdv, itt van egy oktatóanyag arról, hogyan lehet valós idejű grafikonot ábrázolni egy mikrovezérlőről, például egy Arduino-ról az alkalmazásra. Bluetooth-modult, például a HC-05-t használ üzenetküldő eszközként az adatok továbbítására és fogadására az Ar
Bluetooth otthoni automatizálás Androidon keresztül: 3 lépés
Bluetooth otthoni automatizálás Androidon keresztül: A 21. században élünk az automatizálás századában, azonban nem mindenki rendelkezik ezzel a luxussal, ne aggódjon! Ez az utasítás pontosan megmondja, hogyan kell automatizálni a készülékeit, hogy be- vagy kikapcsolhassa őket a gomb megnyomásával
Hogyan lehet megakadályozni a Facebook automatikus videolejátszását Androidon !!: 10 lépés
Hogyan lehet leállítani a Facebookot a videók automatikus lejátszásától Androidon !!: Ez az utasítás megmutatja, hogyan lehet megakadályozni, hogy a Facebook automatikusan lejátssza a videókat mind az adatokon, mind a wifi -n egy androidos készüléken. Kérjük, iratkozzon fel a csatornámra! Köszönjük
Nátrium -por érzékelő Androidon: 6 lépés
Nátrium -porérzékelő Androidon: Egy évvel ezelőtt egy barátom tartott egy hétvégi workshopot a környezetfigyelésről. A műhely célja az volt, hogy felépítsenek egy porérzékelőt, amely egy málna pi táblához van csatlakoztatva, hogy a mérési adatokat el lehessen helyezni egy olyan kiszolgálón, amely gyakran frissített port biztosít
Hordozható funkciógenerátor az Arduino -n: 7 lépés (képekkel)
Hordozható funkciógenerátor az Arduino -n: A funkciógenerátor nagyon hasznos eszköz, különösen akkor, ha azt vizsgáljuk, hogy teszteljük -e az áramkör válaszát egy bizonyos jelre. Ebben az utasításban leírom a kicsi, könnyen használható, hordozható funkciógenerátor építési sorrendjét. A