Sisällysluettelo:

Kannettava toimintogeneraattori WiFi: ssä ja Androidissa: 10 vaihetta
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa: 10 vaihetta

Video: Kannettava toimintogeneraattori WiFi: ssä ja Androidissa: 10 vaihetta

Video: Kannettava toimintogeneraattori WiFi: ssä ja Androidissa: 10 vaihetta
Video: EI LATURIA? EI HÄTÄÄ. NÄIN SAAT LADATTUA AKUN 30 MINUUTISSA 2024, Heinäkuu
Anonim
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa
Kannettava toimintogeneraattori WiFi: ssä ja Androidissa

Lähes 1900 -luvun lopulla esitettiin erilaisia teknologisia innovaatioita, erityisesti viestinnän alalla; mutta ei vain. Meille käyttäjille, kuluttajille ja insinööreille tuli ilmi elektronisten laitteiden nopea kehitys, jotka voivat helpottaa elämäämme paljon: älykellot, älykkäät kodit, älypuhelimet jne.

Koska nykyään kaikki voi olla "älykästä", olen päättänyt suunnitella erittäin hyödyllisen laitteen olennaisten elektronisten laboratoriovälineiden osaksi - Kannettava toimintogeneraattori, jota voi ohjata Android -käyttöjärjestelmään perustuvalla älypuhelimella WiFi -suoran tai WiFi -lähiverkon (WLAN) kautta).

Miksi meidän pitäisi rakentaa tämä laite?

Suurin osa testauslaitteista on nykyään melko kalliita. Ja joskus nämä laitteet eivät ole kannettavia. Ratkaisuna korkeille hinnoille, siirrettävyyden puuttumiselle ja laitteiden verkkoyhteyden puuttumiselle laite tarjoaa kaksikanavaisen aaltomuodon generaattorin, joka on todellakin kannettava ja jolla on rajoittamaton pääsy verkkoon - joko Internetiin tai paikalliseen.

Ja tietysti laite on rakennettava innostumisen vuoksi, DIY -periaatteiden noudattaminen - Joskus meidän on vain tehtävä asioita itse, jotta voimme tuntea olonsa oikeaksi:)

Avainominaisuudet

Virtalähde

  • A-tyypin USB-liitin, sekä virtalähdejärjestelmiin että ohjelmointiin
  • Täydellinen litiumioniakunhallintajärjestelmä - Lataus- ja vakaat tilat
  • Älykytkimen toteutus - virtakytkintä ei tarvita
  • Kaksi virtalähdettä: +3,3 V ja -3,3 V symmetrisen jänniteaaltomuodon tuottamiseksi

Aaltomuodon luominen

  • DC -tason toteuttaminen lähtökaskadissa - jänniterajojen välinen puolueellinen aaltomuoto
  • DDS -pohjainen 4 -tyypin aaltomuodon luominen - sini, kolmio, neliö ja tasavirta
  • Jopa 10MHz taajuuden tuki
  • Lähtövirta jopa 80 mA ja suurin teho 500 mW
  • Erilliset kanavat aaltomuodon tuottamista varten - jaetut AD9834 -pohjaiset piirit

Viestintä

  • ESP32: n käyttöönotto - Sovellettavat WiFi -ominaisuudet
  • Täydellinen TCP/IP -tuki generaattorilaitteella ja Android -älypuhelimella
  • Mahdollisuus tallentaa käyttäjäparametreja jokaiselle laitejaksolle
  • Tilan valvonta - molemmat järjestelmät ovat tietoisia toisistaan: FuncGen (kutsutaan tästä lähtien tästä lähtien) ja älypuhelin.

Käyttöliittymä

  • 20 x 4 merkin LCD-näyttö yksinkertaisella 4-bittisellä dataliittymällä
  • Android -sovellus - täydellinen FuncGen -laitteen hallinta
  • Summeri -piiri - äänipalaute käyttäjälle

Vaihe 1: Lohkokaavio - laitteisto

Lohkokaavio - laitteisto
Lohkokaavio - laitteisto
Lohkokaavio - laitteisto
Lohkokaavio - laitteisto

Mikro -ohjainyksikkö - ATMEGA32L

Mikro -ohjain on ohjelmoitava siru, joka koostuu kaikista tietokoneen toiminnoista, jotka sijaitsevat yhdessä elektronisessa sirussa. Meidän tapauksessamme se on "aivot" ja järjestelmän keskeinen osa. MCU: n tarkoituksena on hallita kaikkia oheisjärjestelmiä, käsitellä näiden järjestelmien välistä viestintää, ohjata laitteiston toimintaa ja tarjota täyden tuen käyttöliittymälle ja sen vuorovaikutukselle varsinaisen käyttäjän kanssa. Tämä projekti perustuu ATMEGA32L MCU: han, joka voi toimia 3,3 V: n taajuudella ja 8 MHz: n taajuudella.

Tiedonsiirto SoC - ESP32

Tämä SoC (System on Chip) tarjoaa täydellisen viestintätuen FuncGenille - Pääsy WiFi -ominaisuuksiin, mukaan lukien suora, paikallinen tai Internet -viestintä. Laitteen käyttötarkoitukset ovat:

  • Tiedonsiirron käsittely Android -sovelluksen ja FuncGen -laitteen välillä
  • Ohjaus-/dataviestien hallinta
  • Tuki jatkuvalle TCP/IP-asiakas-palvelin-määritykselle

Projektissamme SoC on espressif ESP32, joka on liian suosittu laajentamaan sitä entisestään:)

Litiumioniakkujen hallintajärjestelmä

Laitteen muuttamiseksi kannettavaksi laite sisältää suunnitellun litiumioniakun latauspiirin. Piiri perustuu MC73831 IC: hen, jossa on ohjattava latausvirta säätämällä yhden ohjelmointivastuksen arvoa (katamme tämän aiheen kaavion vaiheessa). Laitteen virtalähteen tulo on USB Type-A -liitin.

Älykäs kytkinpiiri

Älykytkinlaitteen virranhallintapiiri tarjoaa täydellisen ohjelmiston hallinnan laitteen sammutusjärjestyksestä ja ulkoisen vaihtokytkimen puuttumisesta laitteen akun jännitteen katkaisemiseksi. Kaikki virransyötöt suoritetaan painamalla painiketta ja MCU: n ohjelmistoa. Joissakin tapauksissa järjestelmä on sammutettava: alhainen akun jännite, korkea tulojännite, tiedonsiirtovirhe ja niin edelleen. Älykytkin perustuu STM6601 -älykytkin IC: hen, joka on halpa ja erittäin ystävällinen pelata.

Päävirtalähde

Tämä laite koostuu kahdesta paristokäyttöisestä virtalähteestä - +3,3 V kaikille digitaalisille / analogisille syöttöpiireille ja -3,3 V FunGen -symmetriselle ulostulolle suhteessa 0 V: n potentiaaliin (eli generoitu aaltomuoto voidaan asettaa [-3.3V: 3.3V] alueella.

  • Päävirtapiiri perustuu LP3875-3.3 LDO (low dropout) 1A lineaariseen jännitesäätimeen.
  • Toissijainen syöttöpiiri perustuu LM2262MX IC: hen, joka suorittaa DC-DC-negatiivisen jännitteen muuntamisen kondensaattori-latauspumppu-järjestelmän kautta, johon IC perustuu.

Aaltomuodon generaattorijärjestelmä

Järjestelmä on suunniteltu painottamalla erillisiä DDS (suora digitaalinen synteesi) -piirejä, jotka mahdollistavat täydellisen aaltomuodon generoinnin MCU: n SPI (sarjaperifeerinen rajapinta) avulla. Suunnittelussa käytetyt piirit ovat analogisia laitteita AD9834, jotka voivat tarjota erityyppisiä aaltomuotoja. Haasteet, jotka meidän on kohdattava työskennellessämme AD9834: n kanssa, ovat:

  • Kiinteä aaltomuodon amplitudi: Aaltomuodon amplitudia ohjataan ulkoisella DAC -moduulilla
  • DC -offset -tasoa ei oteta huomioon: Sumuraatiopiirien toteuttaminen halutuilla DC -offset -arvoilla
  • Erilliset lähdöt neliöaallolle ja kolmio/siniaallolle: Suurtaajuisen kytkentäpiirin toteuttaminen, joten jokainen kanavan yksittäinen lähtö voi tarjota kaikki halutut aaltomuodot: sini, kolmio, neliö ja DC.

Nestekidenäyttö

Nestekidenäyttö on osa käyttöliittymää, ja sen tarkoituksena on antaa käyttäjälle mahdollisuus ymmärtää, mitä laite tekee reaaliajassa. Se on vuorovaikutuksessa käyttäjän kanssa kaikissa laitteen tiloissa.

Summeri

Yksinkertainen äänigeneraattoripiiri antaa lisäpalautetta laitteelta käyttäjälle.

Integroitu ISP -ohjelmoija

Jokaisella insinöörillä on jatkuva ongelma ohjelmointiprosessin suhteen: Aina on pahin tarve purkaa tuote, jotta se voidaan ohjelmoida uudelleen uudella laiteohjelmistolla. Tämän haitan voittamiseksi AVR ISP -ohjelmoija liitettiin laitteeseen sisäpuolelta, kun taas USB-data ja virtajohdot on kytketty laitteen A-tyypin USB-liittimeen. Tässä kokoonpanossa meidän tarvitsee vain kytkeä FuncGen USB -kaapelilla joko ohjelmointia tai latausta varten!

Vaihe 2: Lohkokaavio - verkottuminen

Lohkokaavio - Verkostoituminen
Lohkokaavio - Verkostoituminen

Dual Channel Function Generator

Päälaite. Se, jonka olemme tarkistaneet edellisessä vaiheessa

ESP-WROOM-32

Integroitu System-on-Chip, jossa on WiFi ja BLE-ominaisuudet. SoC on liitetty emolevyyn (käsitellään tätä kaavamaisessa vaiheessa) UART -moduulin kautta ja toimii viestin lähettäjänä päälaitteen ja Android -älypuhelimen välillä.

WiFi -paikallisverkko

Älypuhelin ja laite kommunikoivat suoraan Wi -Fi- tai lähiverkkoyhteyden kautta TCP -palvelimen/asiakasmäärityksen perusteella. Kun laitteet tunnistavat toisensa WiFi -yhteydellä, päälaite luo TCP -palvelimen, jolla on asianmukaiset parametrit, ja pystyy lähettämään/vastaanottamaan viestejä. Laite toimii toissijaisena älypuhelimeen nähden. Android -laite toisaalta muodostaa yhteyden TCP -palvelimeen asiakasverkkolaitteena, mutta sitä pidetään ensisijaisena viestin lähettäjänä - älypuhelin on se, joka aloittaa täydellisen viestintäjakson: Viestin lähettäminen - vastauksen vastaanottaminen.

Android -älypuhelin

Android -käyttöjärjestelmään perustuva älypuhelin, joka toimii FuncGen -sovelluksella

Vaihe 3: Osat, työkalut, IDE ja materiaaliluettelo

Osat, työkalut, IDE ja materiaaliluettelo
Osat, työkalut, IDE ja materiaaliluettelo
Osat, työkalut, IDE ja materiaaliluettelo
Osat, työkalut, IDE ja materiaaliluettelo
Osat, työkalut, IDE ja materiaaliluettelo
Osat, työkalut, IDE ja materiaaliluettelo

Materiaaliluettelo (katso liitteenä oleva XLS -taulukko)

Käyttöliittymä ja järjestelmäyhteydet

  • 1 x 2004A Char-LCD 20x4 sininen
  • 1 x USB Type B -liitin
  • 1 x 10 sarja Mini Micro JST XH 2,54 mm 4 -nastainen
  • 1 x 6kpl hetkellinen SW

Piirilevyjen tilaus (Seeed Studion mukaan)

Pohjamateriaali FR-4

Kerrosten lukumäärä 2 kerrosta

PCB -määrä 10

Eri mallien lukumäärä 1

Piirilevyn paksuus 1,6 mm

Piirilevyn väri Sininen

Pintakäsittely HASL

Minimi juotosmaski 0,4 mm ↑

Kuparin paino 1 oz

Porausreiän vähimmäiskoko 0,3 mm

Jäljen leveys / väli 6/6 mil

Päällystetyt puolireiät / Valuraudatut reiät

Impedanssin säätö nro

Työkalut

  • Kuuma liimapistooli
  • Pinsetit
  • Leikkuri
  • ~ 22AWG -johto toimintahäiriöiden käsittelyä varten
  • Juotin/asema
  • Juotin
  • SMD -työasema (valinnainen)
  • 3D -tulostin (valinnainen)
  • Puristettava tiedosto
  • AVR ISP -ohjelmoija
  • USB -sarjamuunnin (valinnainen, virheenkorjausta varten)

Integroitu kehitysympäristö (IDE) ja ohjelmisto

  • Autodesk EAGLE tai Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (valinnainen)
  • Ultimaker Cura (valinnainen)
  • Saleae Logic (vianetsintään)
  • Atmel Studio 6.3 tai uudempi
  • Android Studio tai Eclipse IDE
  • Docklight Serial Monitor / Muu COM -portin valvontaohjelmisto
  • ProgISP AVR ATMEGA32L -salamaohjelmointiin

Vaihe 4: Laitteiston suunnittelu - emolevy

Laitteiston suunnittelu - emolevy
Laitteiston suunnittelu - emolevy
Laitteiston suunnittelu - emolevy
Laitteiston suunnittelu - emolevy
Laitteiston suunnittelu - emolevy
Laitteiston suunnittelu - emolevy

Akunhallintapiiri

Akun latauspiiri perustuu MCP7383 IC: hen, jonka avulla voimme valita halutun latausvirran litiumioniakulle - 3,7 V, 850 mAh: n kapasiteetilla. Latausvirta asetetaan ohjelmoimalla vastuksen arvo (R1) meidän tapauksessamme

R1 = 3KOhm, I (lataus) = 400mA

USB-jännite VBUS suodatetaan π-suodattimella (C1, L3, C3) ja toimii virtalähteenä latauspiirille.

Jännitteenjakajapiirin (R2, R3) avulla MCU voi ilmoittaa, onko ulkoinen USB -virtalähde kytketty vai ei, antamalla MCU A/D -kanavalle seuraavan jännitteen:

V (näyttö) ~ (2/3) V (väylä)

Koska ATMEGA32L: n A/D on 12-bittinen, voimme laskea digitaalisen alueen:

A / D (alue) = 4095 V (näyttö) / V (REF).

A/D ∈ [14AH: FFFH]

Smart Switch -virtalähde

Piirin avulla järjestelmä voi ohjata virtalähdettä jokaiseen suunniteltuun lohkoon sekä painikkeella että MCU: n ohjelmistolla, ja se perustuu STM6601 Smart-Switch -laitteeseen, jossa on POWER-vaihtoehto RESET-asetuksen sijaan. Päätelaitteet, joita haluamme harkita, ovat seuraavat:

  • PSHOLD - Tulolinja, joka määrittää laitteen tilan: jos sitä vedetään LOW, laite poistaa kaikki toissijaiset virtalähteet (+3,3 V ja -3,3 V). Jos HIGH pidetään alhaalla - laite säilyttää ON -tilan.
  • nSR ja nPB - Tulolinjat. Painonapit. Kun näissä nastoissa havaitaan putoava reuna, laite yrittää siirtyä virran ylös / alas -tilaan
  • nINT - Lähtölinja. Vedetty LOW joka kerta, kun painiketta painetaan
  • FI - Lähtölinjaa käytetään toissijaisten virtalähteiden virrankulutuksena. Kun LOW -painiketta pidetään alhaalla, molemmat toissijaiset virtalähteet ovat poissa käytöstä

Ennen lopullisen suunnittelun aloittamista on joitain tärkeitä huomautuksia:

  • PSHOLD on vedettävä 3,3 V: iin, koska on tapauksia, joissa MCU: t pakottavat kaikki I/O: t olemaan HIGH-Z-tilassa. Tässä tapauksessa MCU: n PSHOLD -tila on tuntematon ja voi vaikuttaa dramaattisesti laitteen ohjelmointiprosessiin.
  • STM6601 on tilattava EN -säätömahdollisuudella pitkällä painalluksella RESET -vaihtoehdon sijaan (olen pudonnut siihen).

Virtalähde: +3.3V

Päävirtalähde kaikille projektimme järjestelmille. Kun +3,3 V: n johto pidetään GND -tasolla (eli jännitettä ei ole), kaikki IC: t paitsi älykytkin ovat poissa käytöstä. Piiri perustuu LDO LP-3875-3.3 IC -tekniikkaan, ja sitä voidaan ohjata EN-liitännän kautta ja antaa virtaa 1A asti.

Tämän piirin virtalähde on akun jännite, johon on liitetty A/D -ilmaisin VBAT: n tunnistamiseen kokoonpanossa, samanlainen kuin VBUS -anturipiiri. Tässä tapauksessa laskelmat eroavat hieman;

V (akku-A/D) = 0,59 V (akku); A/D (alue) ∈ [000H: C03H]

Virtalähde: -3.3V

Negatiivisen jännitteen syöttöpiirin avulla voimme luoda symmetrisiä aaltomuotoja, joiden DC -kerroin on 0 V (eli aaltomuodon keskiarvo voi olla 0 V). Tämä piiri perustuu LM2662MX IC - DC/DC -muuntimeen, joka toimii "latauspumpun" menetelmällä. Piirin maksimilähtövirta on 200 mA, mikä riittää suunnitteluvaatimuksillemme - meillä on rajoitettu 80 mA: n lähtövirta jokaiselta laitteen kanavalta.

IC suorittaa kaikki tarvittavat työt, joten vain osat, jotka meidän on kiinnitettävä, ovat kaksi elektrolyyttikondensaattoria: C33 kytkemistä varten ja C34 -3,3 V: n johdon ohitusta varten (kohinanvaimennusnäkökohdat). Kytkentätaajuus on suunnittelussa vähäinen, jos sijoitamme piirin riittävän kauas aaltomuodon muodostavista osista (keskustelemme siitä piirilevyasetteluvaiheessa).

Mikro -ohjainyksikkö - MCU

Tämä on järjestelmän hallinnoija ja toimitusjohtaja - ohjaus, verkon käsittely, viestien siirto ja käyttöliittymätuki - kaikki tapahtuu MCU: n toimesta.

Valittu MCU on Atmel ATMEGA32L, jossa L tarkoittaa tuettua jännitettä ∈ [2.7V: 5.5V]. Meidän tapauksessamme käyttöjännite on +3,3 V.

Tarkastellaan tärkeimpiä toimintolohkoja, jotka ovat välttämättömiä ymmärrettäväksi, työskennellessämme MCU: n kanssa suunnittelussamme:

  • Ulkoinen oskillaattori - on valinnainen komponentti, koska olemme kiinnostuneita 8 MHz: n toimintataajuudesta
  • Oheislaitteiden ohjaus, SPI -verkko - Kaikki oheislaitteet (paitsi ESP32) kommunikoivat MCU: n kanssa SPI: n kautta. Kaikille laitteille (SCK, MOSI, MISO) on kolme jaettua linjaa, ja jokaisella oheispiirillä on oma CS (Chip Select) -linja. SPI -laitteet, jotka ovat osa laitetta:

    1. D/A amplitudisäädölle - kanava A
    2. D/A amplitudisäädölle - kanava B
    3. AD9834 -laite - kanava A
    4. AD9834 -laite - kanava B
    5. D/A esijänniteohjaukselle - kanava A
    6. D/A esijänniteohjaukselle - kanava B
    7. Digitaalinen potentiometri nestekidenäytön kirkkaus-/kontrastiasetuksiin
  • LCD -tuki - Koska LCD on yleinen 20 x 4 merkin näyttö, käytämme 4 -bittistä käyttöliittymää (rivit D7: D4), ohjaustappeja (rivit RS, E) ja kirkkauden/kontrastin säätöä (rivit V0 ja anodi)
  • RGB LED -tuki - Tämä moduuli on valinnainen, mutta MCU: hon on kytketty yhteinen katodinen RGB LED -liitin, jossa on sopivat vastukset.
  • Virranhallinta - MCU valvoo sähköjärjestelmää reaaliajassa ja käsittelee kaikki tarvittavat virrat:

    1. VBAT_ADC - Akun jännitteen valvonta ja sen tilan määrittäminen (ADC0 -kanava)
    2. PWR_IND - Ulkoisen virtalähteen liitäntä (ADC1 -kanava)
    3. PS_HOLD - Ensisijainen virrankäyttölinja kaikille määritetyille järjestelmille. Kun MCU vetää matalalle, laite sammuu
    4. Älykytkimen keskeytysliitin - Painikkeiden tilan valvonta
  • WiFi -verkonhallinta - ESP32: MCU kommunikoi ESP32: n kanssa UART -liitännän kautta. Koska 8 MHz: n avulla voimme toteuttaa 115200 baudinopeuden suhteellisen pienellä virheellä, voimme käyttää ESP32: ta piirissä ilman siirtonopeuden muutosten ennalta määritelmiä.

AVR ISP -ohjelmoija

MCU on ohjelmoitu SPI: n kautta, ja nollauslinja (/RST) on vedettävä KORKEA oikein toimiakseen (jos ei - MCU löytää itsensä nollaustilaan ikuisesti).

Jotta laite voidaan ohjelmoida ja ladata USB: n kautta, olen liittänyt AVR ISP -ohjelmoijan (pienikokoinen tuote, ostettu eBaysta). Laitteen täydellisen USB-tuen ylläpitämiseksi USB-tyypin A (D+, D-, VBUS ja GND) liittimet on kytkettävä AVR ISP -laitteeseen.

Aaltomuodon muodostuspiiri

Laitteen ydin on nämä piirit. AD9834 on pienitehoinen DDS-laite, joka tarjoaa meille kaikki aaltomuodot, jotka haluaisimme hakea järjestelmästä. Piirit sisältävät kaksi itsenäistä AD9834 -IC: tä, joissa on erilliset 50 MHz: n oskillaattorit (kuten kaaviosta näkyy). Erotetun oskillaattorin syy on digitaalipiirien kohinanvaimennus, joten päätettiin käsitellä oikeita 50 MHz: n linjoja, joissa oskillaattorit on sijoitettu AD9834: n viereen.

Katsotaan nyt hieman matematiikkaa:

Koska DDS-laite toimii Phase Wheel -tekniikalla, jonka lähtöarvo on 28-bittisessä rekisterissä, voimme kuvata aaltomuodon muodostamisen matemaattisesti:

dP (vaihe) = ωdt; ω = P '= 2πf; f (AD9834) = ΔP * f (clk) / 2^28; ΔP ∈ [0: 2^28-1]

Ja AD9834 -lomakkeen mukaan, kun otetaan huomioon suurin taajuus, lähtötaajuuden resoluutio voidaan saada:

Δf = k * f (oskillaattori) / f (maksimi) = 0,28 * 50 M / 28 M = 0,187 [Hz]

AD9834 -piirit tarjoavat analogisen virran ulostulon kolmio/siniaallolle (IOUT -liitäntä) ja digitaalilähdön neliöaallolle (SIGN_OUT -liitin). Merkkibitin käyttö on hieman hankalaa, mutta pystymme käsittelemään sitä - Joka kerta, kun DDS ylittää vertailukynnyksen, SIGN_OUT käyttäytyy sen mukaisesti. Kunkin kanavan lähtöön on liitetty 200 ohmin vastus, joten lähtöjännitteellä olisi merkitykselliset arvot:

I (yksi kanava) = V (lähtö) / R (jännitteen valinta); V (lähtö) = R (VS)*I (SS) = 200I (SS) [A]

Amplitudin ohjauspiirit (D/A)

AD9834: n tietolomakkeen mukaan sen amplitudia voidaan säätää syöttämällä virtaa DDS -täyden asteikon järjestelmään, joten kaksois -D/A -IC: n avulla voimme ohjata lähtösignaalin amplitudia säätämällä tätä virtaa. Jälleen vähän matematiikkaa:

I (täysi asteikko) = 18 * (V_REF - V_DAC) / R_SET [A]

Kaavion mukaan ja joidenkin numeroiden asettaminen yhtälöön:

I (täysi asteikko) = 3,86 - 1,17 * V_DAC [A]

Suunnittelussa käytetty D/A-moduuli on 12-bittinen MCP4922, kun virta on alueella [0mA: 3,86mA] ja lineaarinen amplitudifunktio on:

V (amplitudin valinta) = 1 - [V (D / A) / (2^12 - 1)]

Aaltomuodon kanavointipiiri

Neliöaalto- ja sini-/kolmioaaltogeneraatiolähdöt on erotettu toisistaan AD9834: ssä, joten meidän on käytettävä molempien lähtöjen nopeaa multipleksointipiiriä, jotta kaikki halutut aaltomuodot voidaan hakea yhdestä erillisestä kanavasta. Multiplekserin IC on ADG836L-analogikytkin, jonka resistanssi on erittäin alhainen (~ 0,5 ohmia).

Valintataulukko, jota MCU käyttää lähtöihin sellaisenaan:

Tilan valinta [D2: D1] | Lähtökanava A | Lähtökanava B

00 | Sini/kolmio | Sini/kolmio 01 | Sini/kolmio | Neliö 10 | Neliö | Sini/kolmio 11 | Neliö | Neliö

Bias Voltage Control (D/A) -piirit

Yksi aaltomuodon generaattorin pääominaisuuksista on ohjata sen DC -arvoa. Tässä mallissa se tehdään asettamalla haluttu D/A -jännite kutakin kanavaa kohden, ja nämä esijännitteet summataan multipleksoiduilla lähdöillä, joista olemme keskustelleet hieman aiemmin.

D/A-jännite on alueella [0V: +3,3 V], joten on olemassa op-amp-pohjainen piiri, joka yhdistää D/A-alueen arvoon [-3,3 V: +3,3 V], jolloin laite voi tarjota täyden alueen haluttua tasavirtakomponenttia. Ohitamme ärsyttävän analyyttisen matematiikan ja keskitymme vain lopputuloksiin:

V_OUT (kanava B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (kanava A) = V_BIAS_A (+) - V_BIAS_A (-)

Nyt DC-komponenttialue sijaitsee alueella [-3.3V: +3.3V].

Yhteenvetopiirit - DC -komponentit ja aaltomuodon lähdöt

Tässä vaiheessa meillä on kaikki mitä tarvitsemme laitteen oikeaan lähtöön - Bias Voltage (DC -komponentti) koko jännitealueella ja multipleksoidut AD9834 -lähdöt. Teemme sen käyttämällä summausvahvistinta - op -amp -kokoonpanoa

Ohitetaan taas matematiikka (olemme käsitelleet jo paljon matemaattista lähestymistapaa) ja kirjoitamme yhteen summausvahvistimen lähdön lopputuloksen:

V (laitteen lähtö) = V (positiivinen esijännite) - V (negatiivinen esijännite) - V (multipleksoitu lähtö) [V]

Siten:

V_OUT = ΔV_BIAS - V_AD9834 [V]

BNC -tyyppiset lähtöliittimet on kytketty valintavastuksiin (R54, R55; R56, R57). Syynä tähän on se, että siinä tapauksessa, että suunnittelu voi olla toimintahäiriöinen, voimme silti valita, haluammeko käyttää summausvahvistinta.

Tärkeä huomautus: Suunnittelija voi säätää lopullisten summausvahvistimien vastusverkkoja muuttaakseen laitteesta haettavissa olevaa maksimiamplitudia. Minun tapauksessani kaikilla vahvistimilla on sama vahvistus = 1, joten suurin puskuroitu amplitudi on 0,7 Vpp kolmio/siniaalto ja 3,3 Vpp neliöaalto. Erityinen matemaattinen lähestymistapa löytyy vaiheen liitteenä olevien kuvien joukosta.

ESP32 ulkoisena moduulina

MCU kommunikoi ESP32: n kanssa UART -liitännän kautta. Koska halusin oman piirilevyn ESP32: lle, käytettävissä on neljä liitäntää: VCC, RX, TX, GND. J7 on piirilevyjen välinen liitäntä, ja ESP32 varataan ulkoiseksi moduuliksi laitteen sisällä.

Käyttöliittymä - LCD ja kaiutin

Käytetty nestekidenäyttö on yleinen 20 x 4 merkin näyttö, jossa on 4 -bittinen käyttöliittymä. Kuten suunnittelusta voidaan nähdä, LCD -liittimiin "A" ja "V0" on kiinnitetty digitaalinen SPI -potentiometri - sen tarkoitus on säätää LCD -moduulin kirkkautta ja kontrastia ohjelmallisesti.

Kaiutin tarjoaa äänentoiston käyttäjälle yksinkertaisella neliöaallon generoinnilla MCU: sta. BJT T1 ohjaa virtaa kaiuttimen kautta, joka voi olla vain kahdessa tilassa - ON / OFF.

Vaihe 5: Laitteiston suunnittelu - ESP32 -moduuli

Laitteiston suunnittelu - ESP32 -moduuli
Laitteiston suunnittelu - ESP32 -moduuli

ESP32: ta käytetään ulkoisena moduulina pääpiirilevylle. Laitekommunikointi perustuu AT -komentoihin, jotka ovat saatavilla laitteen yleisessä laiteohjelmistossa.

Tässä suunnittelussa ei ole paljon laajennettavaa, mutta suunnittelussa on joitain huomautuksia:

  • ESP32: n asianmukaisen UART -moduulin viankäsittelyä varten olen liittänyt kolme valintavastusta sekä TX- että RX -linjoille. (0 ohmia kullekin). Vakiokokoonpanossa UART2 -moduulia käytetään AT -komentoihin (R4, R7 on juotettava)
  • Laitteessa on 4 -rivinen lähtö - VCC, GND, TX, RX.
  • IO0- ja EN -nastat arvioivat laitteen toimintaa, ja ne on suunniteltava kaavioiden mukaisesti

Kaikki piirilevyn ominaisuudet, joita käsittelemme seuraavassa vaiheessa.

Vaihe 6: Piirilevyasettelu

PCB -asettelu
PCB -asettelu
PCB -asettelu
PCB -asettelu
PCB -asettelu
PCB -asettelu

Piirilevyn suunnittelun tavoitteet

  1. Luo sulautettu järjestelmä kaikille saman piirilevyn integroiduille piireille
  2. Paranna laitteen suorituskykyä suunnittelemalla yksi pääpiirilevy
  3. Kustannusten alentaminen - jos haluat etsiä hintoja, edulliset mallit ovat todella edullisia
  4. Pienennä elektronisen levyn kokoa
  5. Helppo vianmääritys - Voimme käyttää TP: tä (testipisteitä) jokaiselle mahdolliselle toimintahäiriölle.

Tekniset parametrit

Molemmilla piirilevyillä: pää- ja ESP32 -levyllä on samat ominaisuudet valmistusprosessissa - edulliset ja käyttökelpoiset tarkoituksiimme. Katsotaanpa niitä:

A - Emolevy

  • Koko: 10 cm x 5,8 cm
  • Kerrosten lukumäärä: 2
  • Piirilevyn paksuus: 1,6 mm
  • Vähimmäisjälki/leveys: 6/6mil
  • Vähimmäisreiän halkaisija: 0,3 mm
  • Kupari piirilevyn reunaan asti: 20mil
  • Pintakäsittely: HASL (melko hyvän näköinen hopeanvärinen halpa tyyppi)

B - Emolevy

  • Koko: 3 cm x 4 cm
  • Kerrosten lukumäärä: 2
  • Piirilevyn paksuus: 1,6 mm
  • Vähimmäisjälki/leveys: 6/6mil
  • Vähimmäisreiän halkaisija: 0,3 mm
  • Kupari piirilevyn reunaan asti: 20mil
  • Pinnan viimeistely: HASL

Vaihe 7: 3D -kotelo

3D -kotelo
3D -kotelo

En suunnitellut sitä itse, koska tuolloin suostuttelin tämän laitteen toimimaan, joten en ollut tietoinen kaikista 3D -tulostuksen perusteista. Olen siis käyttänyt Thingiversen SCAD -projektia ja kiinnittänyt reunoihin erilaisia aukkoja laitteen määritysten mukaan.

  1. Tulostuslaite: Creality Ender-3
  2. Sängyn tyyppi: Lasi, paksuus 5 mm
  3. Filamentin halkaisija: 1,75 mm
  4. Filamentin tyyppi: PLA+
  5. Suuttimen halkaisija: 0,4 mm
  6. Alkunopeus: 20 mm/sek
  7. Keskinopeus: 65 mm/sek
  8. Tuki: N/A
  9. Täyte: 25%
  10. Lämpötila:

    • Sänky: 60 (oC)
    • Suutin: 215 (oC)
  11. Filamentin väri: Musta
  12. Aukkojen kokonaismäärä: 5
  13. Kotelopaneelien lukumäärä: 4

    • TOP Shell
    • Pohjakuori
    • Etupaneeli
    • Takapaneeli

Vaihe 8: Ohjelmiston käyttöönotto - MCU

Ohjelmistototeutus - MCU
Ohjelmistototeutus - MCU
Ohjelmistototeutus - MCU
Ohjelmistototeutus - MCU
Ohjelmistototeutus - MCU
Ohjelmistototeutus - MCU

GitHub Linkki Androidiin ja Atmega32 -koodiin

Ohjelmiston algoritmi

Kaikki MCU: n suorittamat toiminnot on kuvattu liitteenä olevissa vuokaavioissa. Lisäksi projektille on liitetty koodi. Tarkastellaan ohjelmiston teknisiä tietoja:

Käynnistää

Tässä vaiheessa MCU suorittaa kaikki alustusjaksot ja määrittää tallennetun viestintätyypin Android -laitteen kanssa: Suora WiFi tai WLAN -verkkoviestintä - nämä tiedot tallennetaan EEPROMiin. Käyttäjä voi määrittää Android -laitteen pariliitostyypin uudelleen tässä vaiheessa.

Suora Android -laitteen pariliitos

Tämäntyyppinen pariliitos perustuu WiFi -verkon luomiseen FuncGen -laitteen avulla. Se luo tukiaseman (tukiasema) ja TCP -palvelimen paikallisen laitteen IP -osoitteeseen, jolla on tietty SSID (WiFi -verkon nimi) ja tietty porttinumero. Laitteen on pidettävä tila - auki yhteyksiä varten.

Kun Android -laite on yhdistetty FuncGeniin, MCU siirtyy AKTIIVISEEN tilaan ja vastaa Android -laitteen käyttäjän ohjeiden mukaisesti.

WLAN -pariliitos

Voidakseen kommunikoida paikallisessa WiFi -verkossa MCU: n tulisi antaa ESP32: lle komentoja AP: n luomiseksi, kommunikoimiseksi Android -laitteen kanssa ja tärkeiden verkkotietojen vaihtamiseksi:

  • Android -laite vastaanottaa FuncGeniltä MAC -osoitteen ja tallentaa sen muistiin.
  • FuncGen -laite vastaanottaa Android -laitteen valitsemista WLAN -parametreista: SSID, suojaustyyppi ja salasana ja tallentaa sen EEPROMiin.

Kun laitteet on todella liitetty samaan WLAN -verkkoon, Android -laite etsii FuncGen -verkkoa skannaamalla kaikki WLAN -verkkoon liitettyjen laitteiden MAC -osoitteet. Kun Android -laite määrittää MAC -osuman, se yrittää kommunikoida.

Liitäntä ja tilan käsittely - MCU

Kun laitteet kommunikoivat keskenään, protokolla (katso ennen viimeistä vaihetta) pysyy samana ja vuokaavio on sama.

Laitteen tilan valvonta

Ajastettu keskeytys antaa MCU: lle tarvittavat tiedot tilan käsittelyä varten. Jokainen ajastinkeskeytysjakso päivittää seuraavan parametriluettelon:

  • Ulkoinen virtalähde - Päällä/Pois
  • Akun jännitteen tila
  • Käyttöliittymän päivitys jokaiselle mukautukselle
  • Painike: Painettu/Ei painettu

Vaihe 9: Ohjelmiston käyttöönotto - Android -sovellus

Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus
Ohjelmistototeutus - Android -sovellus

Android-sovellus on kirjoitettu Java-Android-tyyliin. Yritän selittää sen samalla tavalla kuin edelliset vaiheet - jakamalla algoritmi erillisiin koodilohkoihin.

Käynnistysjakso

Laitteen ensimmäinen sarja. Tässä esitetään sovelluksen logo sekä Android -laitteen GPS- ja WiFi -moduulien käyttöönotto (älä huoli, GPS tarvitaan vain WiFin oikean verkon skannaukseen).

Päävalikko

Kun sovellus on käynnistetty, näyttöön tulee neljä painiketta. Painikkeiden toiminta:

  1. SUORA YHTEYS: Alustetaan yhteys FuncGenin tukiasemaan SSO: lla IOT_FUNCGEN. Jos yhteys onnistuu, laite siirtyy pääkäyttöliittymään.
  2. WIFI -YHTEYS: Laite tarkistaa, onko muistiin tallennettuja dataparametreja: wifi.txt, mac.txt. Jos tietoja ei ole tallennettu, laite hylkää käyttäjän pyynnön ja antaa ponnahdusviestin, että WLAN-pariliitos on tehtävä ensin.
  3. PARIITTAMINEN: Viestintä FuncGenin kanssa samalla tavalla kuin DIRECT CONNECTION, mutta jatkuvan viestinvaihdon sijasta on vain yksi kädenpuristus. Android -laite tarkistaa, onko se jo yhdistetty WiFi -verkkoon, ja pyytää käyttäjää syöttämään salasanan. Jos uudelleen yhdistäminen onnistuu, Android -laite tallentaa SSID: n ja salasanan wifi.txt -tiedostoon. Onnistuneen viestinnän jälkeen FuncGenin kanssa se tallentaa vastaanotetun MAC -osoitteen mac.txt -tiedostoon.
  4. Poistu: Sanottu riittää:)

WiFi -skannauspäällikkö

Halusin, että sovellus on täysin toimiva ja ilman sovelluksen ulkopuolisia muutoksia. Olen siis suunnitellut WiFi -skannerin, joka suorittaa kaikki tarvittavat toiminnot muodostaakseen yhteyden WiFi -verkkoon tunnetulla salasanalla ja SSID: llä.

Tiedonsiirto ja TCP -tiedonsiirto

Tämä on sovelluksen pääkoodilohko. Kaikille käyttöliittymille on määritetty sanoma tietyssä muodossa (ennen viimeistä vaihetta), joka pakottaa FuncGenin tarjoamaan halutun lähdön kanaville. Toiminnassa on kolmenlaisia käyttöliittymäkenttiä:

  1. Etsi palkit: Tässä määritellään FuncGen-lähtöparametrien todellinen alue

    1. Amplitudi
    2. DC -siirtymä
    3. LCD -kirkkaus
    4. Nestekidenäytön kontrasti
  2. Tekstin muokkaus: Jotta kokonaislukuarvot pysyisivät hyvin määriteltyinä ja tarkkoina, taajuuden syöttö tapahtuu vain numeroiden tekstikentillä
  3. Painikkeet: Parametrien valinta käytettävissä olevista luetteloista:

    1. Aaltomuodon tyyppi

      1. Sini
      2. Kolmio
      3. DC
      4. Neliö
      5. VINOSSA
    2. Saada tietoa
      1. Akun tila (prosenttiosuus)
      2. AC -tila (ulkoinen virtalähde)
    3. Käynnistysvaihtoehto (FuncGen MCU)

      1. Tehdasasetus
      2. Uudelleenkäynnistää
      3. Sammuttaa
      4. Suora - Käynnistä uudelleen suoralla pariliitostilalla
      5. WLAN - Käynnistä uudelleen WLAN -pariliitostilassa
    4. Poistu päävalikosta: tarpeeksi sanottu:)

Vaihe 10: Testaus

Suositeltava: