Мазмұны:

WiFi мен Android -де портативті функция генераторы: 10 қадам
WiFi мен Android -де портативті функция генераторы: 10 қадам

Бейне: WiFi мен Android -де портативті функция генераторы: 10 қадам

Бейне: WiFi мен Android -де портативті функция генераторы: 10 қадам
Бейне: Честный обзор проектора Samsung Freestyle — что скрывается за маркетингом? 2024, Шілде
Anonim
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы
WiFi мен Android -де портативті функция генераторы

20 ғасырдың аяғында әр түрлі технологиялық жаңалықтар пайда болды, әсіресе байланыс саласында; бірақ тек қана емес. Біз үшін пайдаланушылар, тұтынушылар мен инженерлер біздің өмірімізді жеңілдететін электронды құрылғылардың тез дамып келе жатқанын білді: ақылды сағаттар, ақылды үйлер, смартфондар және т.

Қазіргі кезде бәрі «ақылды» болуы мүмкін болғандықтан, мен өте маңызды құрылғыны электронды зертханалық жабдықтардың бір бөлігі ретінде жасауды шештім - Wi -Fi немесе WiFi жергілікті желі (WLAN) арқылы Android ОЖ негізіндегі смартфонмен басқарылатын портативті функция генераторы.).

Неліктен біз бұл құрылғыны құрастыруымыз керек?

Сынақ құралдарының басым көпшілігі қазіргі кезде өте қымбат. Ал кейде бұл құрылғылар портативті емес. Құрылғы жоғары бағаны, портативтіліктің жоқтығын және желіге қосылудың жетіспеушілігін шешу үшін қос арналы толқындық генераторды ұсынады, ол шынымен де портативті және желіге шектеусіз қол жеткізе алады - интернетке де, жергіліктіге де.

Және, әрине, құрылғыны DIY принциптерін сақтай отырып, ынта -жігердің арқасында жасау керек - Кейде біз өзімізді дұрыс сезіну үшін өзіміз істеуіміз керек:)

Басты ерекшеліктер

Нәр беруші

  • USB Type-A қосқышы, электрмен жабдықтау жүйелері үшін де, бағдарламалау үшін де
  • Li -Ion батареясын басқарудың толық жүйесі - зарядтау және тұрақты режимдер
  • Ақылды қосқышты енгізу - қуат қосқышының қажеті жоқ
  • Қос қуат көзі: +3,3В және -3,3В кернеудің толқындық формасын генерациялау үшін

Толқындық форма генерациясы

  • Шығу каскадында тұрақты ток деңгейін енгізу - кернеу шекаралары арасындағы толқынды біркелкі
  • DDS негізіндегі 4 типті толқын пішіні - синус, үшбұрыш, шаршы және тұрақты ток
  • 10 МГц жиілікке дейін қолдау
  • Ең жоғары қуаты 500 мВт болатын 80 мА дейінгі шығыс тогы
  • Толқындық форманы құруға арналған бөлек арналар - бөлінген AD9834 тізбектері

Байланыс

  • ESP32 - Қолданылатын WiFi мүмкіндіктері
  • Генератор құрылғысы мен Android смартфоны арқылы TCP/IP қолдауының толық болуы
  • Құрылғының әр циклі үшін пайдаланушы параметрлерін сақтау мүмкіндігі
  • Мемлекеттік мониторинг - екі жүйе де бір -бірінен хабардар: FuncGen (бұдан былай осылай атайық) және смартфон.

Қолданушы интерфейсі

  • Қарапайым 4 биттік деректер интерфейсі бар 20 x 4 таңбалы СКД
  • Android қосымшасы - FuncGen құрылғысын пайдаланушының толық бақылауы
  • Дыбыстық сигнал - пайдаланушыға дыбыстық кері байланыс

1 -қадам: Блок -схема - аппараттық құрал

Блок диаграммасы - аппараттық құрал
Блок диаграммасы - аппараттық құрал
Блок диаграммасы - аппараттық құрал
Блок диаграммасы - аппараттық құрал

Микроконтроллер блогы - ATMEGA32L

Микроконтроллер - бұл бір электронды чипте орналасқан компьютердің барлық функцияларынан тұратын бағдарламаланатын чип. Біздің жағдайда бұл «ми» және жүйенің орталық компоненті. MCU мақсаты - барлық перифериялық жүйелерді басқару, осы жүйелер арасындағы байланысты басқару, аппараттық құралдардың жұмысын басқару және пайдаланушы интерфейсі мен оның нақты пайдаланушымен өзара әрекеттесуіне толық қолдау көрсету. Бұл жоба ATMEGA32L MCU -ға негізделген, ол 3.3В және жиілігі 8 МГц -те жұмыс істей алады.

Байланыс SoC - ESP32

Бұл SoC (чиптегі жүйе) FuncGen үшін толық коммуникациялық қолдауды қамтамасыз етеді - WiFi мүмкіндіктеріне тікелей, жергілікті немесе интернет байланысын қосады. Құрылғының мақсаттары:

  • Android қолданбасы мен FuncGen құрылғысы арасында деректерді беруді өңдеу
  • Бақылау/деректер хабарламаларын басқару
  • TCP/IP Client-Server үздіксіз конфигурациясын қолдау

Біздің жобада SoC эспрессивті ESP32 болып табылады, оны одан әрі кеңейту үшін өте танымал:)

Ли-иондық батареяларды басқару жүйесі

Біздің құрылғыны портативті құрылғыға айналдыру үшін құрылғыда Li-Ion батареясын зарядтау схемасы бар. Схема MC73831 IC -ге негізделген, бір бағдарламалық резистордың мәнін реттеу арқылы реттелетін зарядталатын токпен (біз бұл тақырыпты схемада қарастырамыз). Құрылғының қуат көзінің кірісі-USB Type-A қосқышы.

Ақылды қосқыш схемасы

Ақылды коммутатордың құрылғыны басқару тізбегі құрылғыны өшіру реттілігін бағдарламалық қамтамасыз етуді толық басқаруды және батареяның кернеуін өшіру үшін сыртқы ауыстырып қосқышты қажет етпеуді қамтамасыз етеді. Барлық қуат операциялары басу түймесі мен MCU бағдарламалық жасақтамасын басу арқылы орындалады. Кейбір жағдайларда жүйені өшіру қажет болады: батареяның төмен кернеуі, жоғары кіріс кернеуі, байланыс қателігі және т.б. Ақылды коммутатор STM6601 IC ақылды қосқышына негізделген, ол арзан және ойнауға өте ыңғайлы.

Негізгі қуат блогы

Бұл қондырғы батареямен басқарылатын екі қоректену тізбегінен тұрады -барлық цифрлық / аналогты жеткізу тізбектері үшін +3.3В және 0В потенциалға қатысты FunGen симметриялы шығысы үшін -3.3V (яғни генерацияланған толқын пішінін [-3.3V: 3.3V] аймақ.

  • Негізгі жеткізу тізбегі LP3875-3.3 LDO (төмен түсу) 1А кернеудің сызықтық реттегішіне негізделген.
  • Екіншілік қоректендіру тізбегі LM2262MX IC-ге негізделген, ол тұрақты кернеудің теріс кернеуін конденсатор-зарядты сорғы-IC негізіндегі жүйе арқылы жүзеге асырады.

Толқындық форма генераторлары жүйесі

Жүйе MCU SPI (сериялық перифериялық интерфейс) арқылы толқын пішінін генерациялауды толық басқаруға мүмкіндік беретін жеке DDS (тікелей цифрлық синтез) интегралды схемаларына баса назар аудара отырып жасалған. Дизайнда қолданылған тізбектер AD9834 аналогты құрылғылары болып табылады, олар әр түрлі толқындық пішіндерді қамтамасыз ете алады. AD9834 -пен жұмыс істеу кезінде бізге кездесетін қиындықтар:

  • Толқын түрінің амплитудасы бекітілген: Толқындар амплитудасы сыртқы DAC модулімен басқарылады
  • Тұрақты токтың ығысу деңгейіне мән берілмейді: Қалаған тұрақты токтың ығысу мәндері бар жиынтық тізбектерді енгізу
  • Квадрат толқын мен үшбұрыш/синус толқыны үшін бөлек шығулар: жоғары жиілікті коммутациялық схеманы енгізу, осылайша әрбір арна бір шығыс толқынның барлық қажетті формасын қамтамасыз ете алады: синус, үшбұрыш, шаршы және тұрақты ток.

Сұйық кристалды дисплей

СКД UI (пайдаланушы интерфейсі) бөлігі болып табылады және оның мақсаты пайдаланушыға нақты уақыт режимінде қандай құрылғы істейтінін түсінуге мүмкіндік беру. Ол кез келген құрылғы күйінде пайдаланушымен өзара әрекеттеседі.

Зумер

Құрылғыдан пайдаланушыға қосымша кері байланыс үшін қарапайым тонусты генератор схемасы.

Интернет -провайдердің кіріктірілген бағдарламашысы

Бағдарламалау процесіне қатысты әрбір инженер үшін өзекті мәселе бар: жаңа микробағдарламамен қайта бағдарламалау үшін өнімді бөлшектеу әрқашан қажет. Бұл қолайсыздықты жою үшін AVR ISP бағдарламашысы құрылғыға ішкі жағынан қосылды, ал USB деректері мен қуат сымдары құрылғының USB Type-A қосқышына қосылған. Бұл конфигурацияда біз бағдарламалауға немесе зарядтауға USB кабелі арқылы FuncGen -ді қосуымыз керек!

2 -қадам: Блок -схема - желіге қосылу

Блок диаграммасы - желіге қосылу
Блок диаграммасы - желіге қосылу

Екі арналы функция генераторы

Негізгі құрылғы. Біз алдыңғы қадамда қарастырдық

ESP-WROOM-32

WiFi мен BLE мүмкіндіктері бар кіріктірілген чип жүйесі. SoC UART модулі арқылы негізгі тақтаға бекітілген (біз оны схемада қарастырамыз) және негізгі құрылғы мен Android смартфоны арасында хабарлама қабылдағыш қызметін атқарады.

WiFi жергілікті желісі

Смартфон мен құрылғы TCP сервері/клиент конфигурациясына негізделген WiFi тікелей немесе жергілікті желі арқылы байланысады. Құрылғылар WiFi -де бір -бірін таныған кезде, негізгі құрылғы сәйкес параметрлері бар TCP серверін жасайды және хабарларды жібере/қабылдай алады. Құрылғы смартфонға қосалқы рөл атқарады. Екінші жағынан, Android құрылғысы клиенттік желілік құрылғы ретінде TCP серверіне қосылады, бірақ негізгі хабар таратушы болып саналады - смартфон - бұл толық байланыс циклын іске қосатын адам: хабарлама жіберу - жауап алу.

Android смартфоны

Android OS негізіндегі смартфон құрылғы FuncGen қосымшасында жұмыс істейді

3 -қадам: Бөлшектер, құралдар, IDE және материалдар тізімі

Бөлшектер, құралдар, IDE және материалдар тізімі
Бөлшектер, құралдар, IDE және материалдар тізімі
Бөлшектер, құралдар, IDE және материалдар тізімі
Бөлшектер, құралдар, IDE және материалдар тізімі
Бөлшектер, құралдар, IDE және материалдар тізімі
Бөлшектер, құралдар, IDE және материалдар тізімі

Материалдық есеп (XLS кестесін қараңыз)

UI және жүйелік қосылулар

  • 1 x 2004A Char-LCD 20x4 көк
  • 1 x USB B түріндегі қосқыш
  • 1 x 10 жиынтығы Mini Micro JST XH 2.54мм 4 істікшелі
  • 1 x 6 дана лездік БҚ

ПХД тапсырысы (Seeed Studio бойынша)

Негізгі материал FR-4

Қабаттар саны 2 қабат

ПХД саны 10

Әр түрлі конструкциялардың саны 1

ПХД қалыңдығы 1,6 мм

ПХД түсі көк

Беттік өңдеу HASL

Минималды дәнекерлеу маскасы бөгеті 0,4 мм ↑

Мыс салмағы 1 унция

Бұрғылау саңылауының минималды өлшемі 0,3 мм

Із ені / аралығы 6/6 млн

Жартылай саңылаулармен қапталған / Кастелленген тесіктер №

Импеданс бақылауы №

Құралдар

  • Ыстық желім қаруы
  • Пинцет
  • Кескіш
  • ~ 22AWG сымы ақауларды жоюға арналған
  • Пісіру үтігі/станция
  • Пісіру қалайы
  • SMD қайта өңдеу станциясы (міндетті емес)
  • 3D принтері (қосымша)
  • Экструдирленген файл
  • AVR ISP бағдарламашысы
  • USB сериялық түрлендіргіші (міндетті емес, отладка мақсатында)

Біріктірілген даму ортасы (IDE) және бағдарламалық қамтамасыз ету

  • Autodesk EAGLE немесе Cadence схемалық редакторы / Allegro PCB редакторы
  • OpenSCAD (міндетті емес)
  • Ultimaker Cura (міндетті емес)
  • Saleae логикасы (ақауларды жою үшін)
  • Atmel Studio 6.3 немесе одан жоғары
  • Android Studio немесе Eclipse IDE
  • Docklight сериялық мониторы / басқа COM портын бақылау бағдарламасы
  • AVR ATMEGA32L флэш -бағдарламалауға арналған ProgISP

4 -қадам: Жабдықтың дизайны - Бас тақта

Жабдықтың дизайны - Бас тақта
Жабдықтың дизайны - Бас тақта
Жабдықтың дизайны - Бас тақта
Жабдықтың дизайны - Бас тақта
Жабдықтың дизайны - Бас тақта
Жабдықтың дизайны - Бас тақта

Батареяны басқару схемасы

Батареяны зарядтау тізбегі MCP7383 IC -ге негізделген, бұл сыйымдылығы 850 мАч болатын 3,7В Li -Ion батареясы үшін қажетті зарядтау тогын таңдауға мүмкіндік береді. Зарядтау тогы біздің жағдайда резистордың мәнін (R1) бағдарламалау арқылы орнатылады

R1 = 3KOhm, I (заряд) = 400mA

USB кернеуі VBUS filter-сүзгісімен (C1, L3, C3) сүзіледі және зарядтау тізбегінің қуат көзі ретінде әрекет етеді.

Кернеуді бөлу схемасы (R2, R3) MCU A/D арнасына келесі кернеуді беру арқылы сыртқы USB қуат көзінің қосылғанын немесе қосылмағанын көрсетуге мүмкіндік береді:

V (көрсеткіш) ~ (2/3) V (BUS)

ATMEGA32L A/D 12-биттік болғандықтан, біз сандық диапазонды есептей аламыз:

A / D (диапазон) = 4095V (көрсеткіш) / V (REF).

A/D ∈ [14AH: FFFH]

Ақылды қосқыштың қуат блогы

Электр тізбегі MCU-дағы түймеден де, бағдарламалық жасақтамадан да әрбір жобаланған блокқа қуат беруді басқаруға мүмкіндік береді және RESET орнына POWER опциясы бар STM6601 Smart-Switchке негізделген. Біз қарастырғымыз келетін терминалдар:

  • PSHOLD - құрылғы күйін анықтайтын кіріс желісі: егер LOW төмен тартылса, құрылғы барлық қосалқы қоректендіру блоктарын ажыратады (+3.3V және -3.3V). Егер ЖОҒАРЫ күйде болса - құрылғы ҚОСУ күйін сақтайды.
  • nSR және nPB - енгізу жолдары. Батырмалы терминалдар. Бұл түйреуіштерде құлау жиегі анықталған кезде, құрылғы қосылу / өшіру режиміне өтуге тырысады
  • nINT - шығыс сызығы. Түйме басылған сайын LOW төмен тартылады
  • KK - Шығу желісі қосалқы қоректендіру қондырғыларының қуат қосуы ретінде қолданылады. LOW ұстап тұрғанда қосалқы қуат көздерінің екеуі де ажыратылады

Соңғы дизайнды бастамас бұрын бірнеше маңызды ескертулер бар:

  • PSHOLD 3,3 В дейін тартылуы керек, себебі MCU барлық енгізу-шығару нүктелерін HIGH-Z күйінде болуға мәжбүр ететін жағдайлар бар. Бұл жағдайда MCU -дан PSHOLD күйі белгісіз және құрылғыны бағдарламалау процесіне қатты әсер етуі мүмкін.
  • STM6601 RESET опциясының орнына ұзақ басу кезінде EN реттеу опциясымен тапсырыс берілуі керек (мен бұған түсіп қалдым).

Қуат көзі: +3,3 В

Біздің жобадағы барлық жүйелердің негізгі қуат көзі. +3.3V желісі GND деңгейінде ұсталғанда (яғни, кернеу жоқ), ақылды қосқыштан басқа барлық IC ажыратылады. Схема LDO LP-3875-3.3 IC-ге негізделген, EN терминалы арқылы басқарылатын және 1А дейін ток беретін.

Бұл тізбектің қуат көзі - VBUS сенсорлық схемасына ұқсас конфигурацияда VBAT сезуге арналған A/D индикаторы бар аккумуляторлық кернеу. Бұл жағдайда есептеулер аздап ерекшеленеді;

V (Батарея-А/Д) = 0,59В (Батарея); A/D (диапазон) ∈ [000H: C03H]

Қуат көзі: -3.3В

Теріс кернеу тізбегі тұрақты ток коэффициенті 0В болатын симметриялы толқын пішінін құруға мүмкіндік береді (яғни толқынның орташа мәні 0В болуы мүмкін). Бұл схема «зарядты сорғы» әдісімен жұмыс істейтін LM2662MX IC - DC/DC түрлендіргішіне негізделген. Тізбектің максималды шығыс тогы 200 мА құрайды, бұл біздің жобалау талаптары үшін жеткілікті - біз әр құрылғының арнасынан 80 мА шығыс токпен шектелеміз.

IC барлық қажетті жұмысты орындайды, сондықтан бізге тек екі электролиттік конденсатор қосылуы керек: қосуға арналған C33 және -3.3V желіні айналып өтуге арналған C34 (шуды төмендетуге қатысты ойлар). Егер біз тізбекті толқын пішінінің бөліктерінен жеткілікті алыс орналастырсақ, коммутация жиілігі шамалы болады (біз оны ПХД орналасу қадамында талқылайтын боламыз).

Микроконтроллер блогы - MCU

Бұл біздің жүйенің менеджері және бас директоры - басқару, желіні өңдеу, хабарламаларды жіберу және UI қолдауы - бәрі MCU -да.

Таңдалған MCU - Atmel ATMEGA32L, онда L қолдау кернеуінің stands [2.7V: 5.5V] білдіреді. Біздің жағдайда жұмыс кернеуі +3,3В құрайды.

Біздің дизайнда MCU -мен жұмыс істеуді түсіну қажет негізгі операциялық блоктарды қарастырайық:

  • Сыртқы осциллятор - бұл қосымша компонент, өйткені бізді 8 МГц жұмыс жиілігі қызықтырады
  • Перифериялық басқару, SPI желісі - Барлық перифериялық құрылғылар (ESP32 қоспағанда) MCU -мен SPI арқылы байланысады. Барлық құрылғыларға арналған үш ортақ желі бар (SCK, MOSI, MISO) және әрбір перифериялық схемада арнайы CS (Chip Select) желісі бар. Құрылғының құрамына кіретін SPI құрылғылары:

    1. Д/А амплитудалық бақылау үшін - А арнасы
    2. D/A амплитудасын бақылау үшін - В арнасы
    3. AD9834 құрылғысы - А арнасы
    4. AD9834 құрылғысы - В арнасы
    5. Кернеуді бақылау үшін D/A - А арнасы
    6. Кернеуді бақылау үшін D/A - В арнасы
    7. СКД жарықтығы/контрастын орнатуға арналған сандық потенциометр
  • СКД қолдау - СКД жалпы 20х4 таңбалы дисплей болғандықтан, біз 4 разрядты интерфейсті (D7: D4 сызықтары), басқару түйреуіштерін (RS, E сызықтары) және жарықтылықты/контрастты басқаруды (V0 және Анод сызықтары) қолданамыз.
  • RGB жарықдиодты қолдау - бұл модуль міндетті емес, бірақ MCU -ға қосылған тиісті резисторлары бар жалпы катодты RGB LED қосқышы бар.
  • Қуатты басқару - MCU нақты уақыт режимінде қуат жүйесін бақылауды жүзеге асырады және барлық қажетті қуат оқиғаларын өңдейді:

    1. VBAT_ADC - Батарея кернеуін бақылау және оның күйін анықтау (ADC0 арнасы)
    2. PWR_IND - Сыртқы қуат көзіне қосылудың көрсеткіші (ADC1 арнасы)
    3. PS_HOLD - барлық анықталған жүйелер үшін негізгі қуат қосатын желі. MCU төмен түсіргенде, құрылғы өшіріледі
    4. Ақылды коммутатордың үзіліс терминалы - батырманың күйін бақылау
  • WiFi желісін басқару - ESP32: MCU USP интерфейсі арқылы ESP32 -мен байланысады. 8МГц 115200-дің жіберу жылдамдығын салыстырмалы түрде кішігірім қатемен енгізуге мүмкіндік беретіндіктен, біз ESP32-ті тізбекте бауд жылдамдығының өзгеруіне алдын ала анықтамасыз қолдана аламыз.

AVR ISP бағдарламашысы

Біздің MCU қалпына келтіру желісі бар SPI арқылы бағдарламаланған (/RST) дұрыс жұмыс істеу үшін жоғары тартылуы керек (егер олай болмаса - MCU мәңгілікке қалпына келтіру күйінде қалады).

Құрылғыны USB арқылы бағдарламалауға және зарядтауға мүмкіндік беру үшін мен AVR ISP бағдарламашысын (eBay-ден сатып алынған шағын өнім) тіркедім. Құрылғының толық USB қолдауын қамтамасыз ету үшін USB Type-A (D+, D-, VBUS және GND) терминалдарын AVR ISP құрылғысымен байланыстыру қажет.

Толқындық форма генерациясының тізбегі

Құрылғының өзегі - бұл тізбектер. AD9834-бұл қуаты аз DDS құрылғысы, ол бізге жүйеден шығарғымыз келетін барлық толқындық формаларды қамтамасыз етеді. Тізбектерде сыртқы 50МГц осцилляторлары бар екі тәуелсіз AD9834 IC бар (оны схемадан көруге болады). Бөлінген осциллятордың себебі шуды азайтудың цифрлық схемасы болып табылады, сондықтан AD9834 -ке жанасатын осцилляторлармен 50 МГц жиіліктегі тиісті желілерді басқару туралы шешім қабылданды.

Енді математиканы қарастырайық:

DDS құрылғысы 28 биттік регистрде шығыс мәні бар Phase Wheel технологиясында жұмыс істейтіндіктен, біз толқындық форманы генерациялауды математикалық түрде сипаттай аламыз:

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

AD9834 мәліметтер кестесіне сәйкес максималды жиілікті ескере отырып, шығыс жиілігінің ажыратымдылығын алуға болады:

Δf = k * f (осциллятор) / f (максимум) = 0,28 * 50М / 28М = 0,187 [Гц]

AD9834 IC үшбұрыш/синус толқыны үшін аналогты ток шығысын (IOUT терминалы) және квадрат толқыны үшін сандық шығуды (SIGN_OUT терминалы) қамтамасыз етеді. Белгі битін қолдану сәл қиын, бірақ біз оны шеше аламыз - DDS салыстыру мәнінің шегінен өткен сайын, SIGN_OUT сәйкесінше әрекет етеді. Әр арнаның шығысына 200 Ом резистор бекітілген, сондықтан шығыс кернеуі мәнді болады:

I (бір арналы) = V (шығыс) / R (кернеуді таңдау); V (шығу) = R (VS)*I (SS) = 200I (SS) [A]

Амплитудалық бақылау (D/A) тізбектері

AD9834 мәліметтер кестесіне сәйкес, оның амплитудасы DDS толық масштабты жүйеге ток беру арқылы реттелуі мүмкін, сондықтан қос D/A IC көмегімен біз осы токты реттеу арқылы шығыс сигналының амплитудасын басқара аламыз. Тағы да математика:

I (толық масштаб) = 18 * (V_REF - V_DAC) / R_SET [A]

Схемаға сәйкес және кейбір сандарды теңдеуге қою:

I (толық шкала) = 3,86 - 1,17 * V_DAC [A]

D/A дизайны үшін қолданылатын модуль 12-разрядты MCP4922 болып табылады, бұл кезде ток [0mA: 3.86mA] диапазонында және сызықтық амплитудалық функция:

V (амплитуда таңдау) = 1 - [V (D / A) / (2^12 - 1)]

Толқындық мультиплекстеу тізбегі

Квадрат толқынды және синус/үшбұрышты толқын генерациясының шығулары AD9834 -те бөлінген, сондықтан біз барлық бөлінген арнадан барлық қажетті толқын пішіндерін алуға мүмкіндік беру үшін екі шығыс үшін де жоғары жылдамдықты мультиплекстеу схемасын қолдануымыз керек. IC мультиплексоры-ADG836L аналогтық қосқышы, өте төмен қарсылықпен (~ 0,5 Ом).

MCU шығыс үшін пайдаланатын таңдау кестесі келесідей:

Режимді таңдау [D2: D1] | Шығару арнасы A | Шығару арнасы В.

00 | Синус/үшбұрыш | Синус/үшбұрыш 01 | Синус/үшбұрыш | 10 -алаң | Шаршы | Синус/үшбұрыш 11 | Шаршы | Шаршы

Bias кернеуді басқару (D/A) тізбектері

Толқындық генератордың негізгі ерекшеліктерінің бірі - оның тұрақты мәнін басқару. Бұл конструкцияда ол әр арнаға керекті D/A кернеуін орнату арқылы жүзеге асады және бұл кернеулер біз бұрын талқылаған мультиплексті шығыстармен қосылады.

D/A кернеуі [0V: +3.3V] диапазонында орналасқан, сондықтан D/A диапазонын [-3.3V: +3.3V] салыстыратын оп-ампқа негізделген схема бар, бұл құрылғыға толық диапазонды қамтамасыз етуге мүмкіндік береді. қалаған тұрақты ток компонентінен. Біз тітіркендіргіш аналитикалық математикадан бас тартамыз және тек соңғы нәтижелерге назар аударамыз:

V_OUT (B арнасы) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (А арнасы) = V_BIAS_A (+) - V_BIAS_A (-)

Енді, [-3.3V: +3.3V] диапазонында орналасқан тұрақты ток компоненттерінің диапазоны.

Қорытынды тізбектер - тұрақты ток компоненттері мен толқындық форманың шығуы

Бұл кезде бізде кернеудің толық диапазонында және кернеудің толық диапазонында жанама кернеу (тұрақты ток компоненті) және мультиплексті AD9834 шығысы бар құрылғының дұрыс шығуы үшін қажет нәрсенің бәрі бар. Біз мұны жиынтық күшейткіш - op -amp конфигурациясы арқылы жасаймыз

Математиканы тағы бір рет өткізіп жіберейік (біз қазірдің өзінде көптеген математикалық тәсілдерді қарастырдық) және қорытынды күшейткіштің соңғы нәтижесін жазамыз:

V (құрылғы шығысы) = V (оң жақ) - V (теріс бұрмалау) - V (мультиплексті шығыс) [V]

Демек:

V_OUT = ΔV_BIAS - V_AD9834 [V]

BNC типті шығыс коннекторлары таңдау резисторларымен қосылады (R54, R55; R56, R57). Мұның себебі, егер дизайн жұмыс істемей қалса, біз жинақтау күшейткішін қолданғымыз келетінін таңдай аламыз.

Маңызды ескерту: Құрылғыдан шығарылатын максималды амплитудасын өзгерту үшін конструктор соңғы қорытынды күшейткіштердің резисторлық желілерін реттей алады. Менің жағдайда, барлық күшейткіштер бірдей пайданы бөліседі = 1, осылайша максималды буферлік амплитудасы үшбұрыш/синус толқыны үшін 0,7Впп және шаршы толқын үшін 3,3Впп. Нақты математикалық тәсілді қадамға бекітілген суреттердің арасынан табуға болады.

ESP32 сыртқы модуль ретінде

MCU USP интерфейсі арқылы ESP32 -мен байланысады. Мен ESP32 үшін жеке ПХД алғым келгендіктен, қосылуға болатын 4 терминал бар: VCC, RX, TX, GND. J7 - бұл ПХД арасындағы интерфейс қосқышы, және ESP32 құрылғы ішінде сыртқы модуль ретінде бөлінеді.

Қолданушы интерфейсі - СКД және динамик

Қолданылған СК - бұл 4 -разрядты интерфейсі бар 20х4 символы бар жалпы дисплей, конструкциядан көрініп тұрғандай, «А» және «V0» СК терминалдарына бекітілген SPI сандық потенциометрі бар - оның мақсаты - реттеу СКД модулінің жарықтығы мен контрастын бағдарламалық түрде.

Динамик MCU -дан квадрат толқынды генерациялау арқылы пайдаланушыға дыбыс шығаруды қамтамасыз етеді. BJT T1 динамик арқылы токты басқарады, ол тек екі күйде болуы мүмкін - ON / OFF.

5 -қадам: Жабдықтың дизайны - ESP32 модулі

Жабдықтың дизайны - ESP32 модулі
Жабдықтың дизайны - ESP32 модулі

ESP32 негізгі ПХД үшін сыртқы модуль ретінде қолданылады. Құрылғы байланысы жалпы құрылғының микробағдарламасында қол жетімді AT командаларына негізделген.

Бұл дизайнды кеңейту үшін көп нәрсе жоқ, бірақ дизайн үшін бірнеше ескертулер бар:

  • ESP32 -дің UART модулін дұрыс пайдаланбау үшін мен TX және RX желілеріне үш таңдау резисторын қостым. (Әрқайсысы үшін 0 Ом). Стандартты конфигурация үшін UART2 модулі AT командалары үшін қолданылады (R4, R7 дәнекерленген болуы керек)
  • Құрылғы 4 жолды шығысқа ие - VCC, GND, TX, RX.
  • IO0 және EN түйреуіштері құрылғының жұмысын бағалайды және схемада көрсетілгендей жобалануы керек

ПХД -ның барлық мүмкіндіктерін біз келесі қадамда қарастырамыз.

6 -қадам: ПХД орналасуы

ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы
ПХД орналасуы

ПХД құрастырудың мақсаттары

  1. Бір тақтадағы барлық интегралды схемалар үшін ендірілген жүйе жасаңыз
  2. Бір негізгі ПХД құрастыру арқылы құрылғының жұмысын жақсарту
  3. Шығындарды азайту - егер сіз бағаны іздегіңіз келсе, арзан конструкциялар шынымен де төмен
  4. Электронды тақтаның көлемін азайтыңыз
  5. Ақаулықтарды жою оңай - әрбір мүмкін ақаулы желі үшін TP (тест нүктелері) қолдана аламыз.

Техникалық параметрлер

ПХД -дың екеуі де: негізгі және ESP32 тақталары өндіріс процесінің сипаттамаларына сәйкес келеді - төмен баға және біздің мақсатымызға жарамды. Оларды көрейік:

A - Басқарма

  • Өлшемі: 10 x 5,8 см
  • Қабаттар саны: 2
  • ПХД қалыңдығы: 1,6 мм
  • Минималды іздеу кеңістігі/ені: 6/6 миль
  • Тесік диаметрі бойынша ең аз: 0,3 мм
  • Мыс ПХД шетіне дейінгі ең аз қашықтық: 20 миль
  • Беттік өңдеу: HASL (өте жақсы көрінетін күміс түсті арзан түрі)

В - Бас тақта

  • Өлшемі: 3см x 4см
  • Қабаттар саны: 2
  • ПХД қалыңдығы: 1,6 мм
  • Минималды іздеу кеңістігі/ені: 6/6 миль
  • Тесік диаметрі бойынша ең аз: 0,3 мм
  • Мыс ПХД шетіне дейінгі ең аз қашықтық: 20 миль
  • Беттік өңдеу: HASL

7 -қадам: 3D қоршау

3D қоршау
3D қоршау

Мен оны өз бетімше жасаған жоқпын, себебі мен бұл құрылғыны жұмысқа көндірдім, сондықтан мен 3D басып шығарудың барлық негіздерін білмедім. Осылайша мен Thingiverse -ден SCAD жобасын қолдандым және менің құрылғымның ерекшеліктеріне сәйкес шекараларға әр түрлі саңылауларды тіркедім.

  1. Баспа құрылғысы: Creality Ender-3
  2. Төсек түрі: шыны, қалыңдығы 5 мм
  3. Жіп диаметрі: 1,75 мм
  4. Жіп түрі: PLA+
  5. Шүмектің диаметрі: 0,4 мм
  6. Бастапқы жылдамдық: 20 мм/сек
  7. Орташа жылдамдық: 65 мм/сек
  8. Қолдау: жоқ
  9. Толтыру: 25%
  10. Температура:

    • Төсек: 60 (oC)
    • Саңылау: 215 (oC)
  11. Жіптің түсі: қара
  12. Саңылаулардың жалпы саны: 5
  13. Қоршау тақталарының саны: 4

    • TOP Shell
    • Төменгі қабық
    • Алдыңғы панель
    • Артқы панель

8 -қадам: Бағдарламалық қамтамасыз етуді енгізу - MCU

Бағдарламалық қамтамасыз етуді енгізу - MCU
Бағдарламалық қамтамасыз етуді енгізу - MCU
Бағдарламалық қамтамасыз етуді енгізу - MCU
Бағдарламалық қамтамасыз етуді енгізу - MCU
Бағдарламалық қамтамасыз етуді енгізу - MCU
Бағдарламалық қамтамасыз етуді енгізу - MCU

Android және Atmega32 кодына GitHub сілтемесі

Бағдарламалық қамтамасыз ету алгоритмі

MCU орындайтын барлық операциялар бекітілген схемаларда сипатталған. Бұған қоса, жобаның бекітілген коды бар. Бағдарламалық жасақтама сипаттамаларын қарастырайық:

Күшейту

Бұл кезеңде MCU Android инициализациясымен сақталатын байланыс түрін анықтаумен бірге барлық инициализация ретін орындайды: Direct WiFi немесе WLAN желілік байланысы - бұл деректер EEPROM -де сақталады. Бұл кезеңде пайдаланушы Android құрылғысының жұптастыру түрін қайта анықтай алады.

Android құрылғыларын тікелей жұптастыру

Жұптастырудың бұл түрі FuncGen құрылғысымен WiFi желісін құруға негізделген. Ол белгілі бір SSID (WiFi желісінің атауы) және нақты порт нөмірі бар жергілікті құрылғы IP -де AP (кіру нүктесі) мен TCP серверін жасайды. Құрылғы күйде болуы керек - қосылу үшін ашық.

Android құрылғысы FuncGen -ге қосылған кезде, MCU ACTIVE режиміне өтеді және Android құрылғысының пайдаланушы нұсқауларына сәйкес жауап береді.

WLAN жұптастыру

Жергілікті WiFi желісінде байланысу үшін MCU ESP32 үшін AP құруға, Android құрылғысымен байланысуға және желінің маңызды деректерімен алмасуға пәрмендер беруі керек:

  • Android құрылғысы FuncGen -ден өзінің MAC -адресін алады, оны жадында сақтайды.
  • FuncGen құрылғысы Android құрылғысының WLAN параметрлерін таңдайды: SSID, қауіпсіздік түрі мен Құпия сөз және оны EEPROM -да сақтайды.

Құрылғылар бір WLAN желісіне қосылған кезде, Android құрылғысы WLAN желісіне қосылған құрылғылардың барлық MAC мекенжайларын сканерлеу арқылы FuncGen іздейді. Android құрылғысы MAC сәйкестігін анықтаған кезде, ол байланыс орнатуға тырысады.

Қосылу және күйді өңдеу - MCU

Құрылғылар бір-бірімен байланысқан кезде хаттама (соңғы қадамды қараңыз) өзгеріссіз қалады, ал схема өзгеріссіз қалады.

Құрылғының күйін бақылау

Уақытша үзіліс MCU -ге күйді өңдеу үшін қажетті мәліметтерді береді. Таймер үзілісінің әрбір циклі келесі параметрлер тізімі жаңартылады:

  • Сыртқы қуат көзі - қосу/өшіру
  • Батарея кернеуінің жағдайы
  • Әрбір теңшеу үшін UI жаңартуы
  • Басу түймесі: басылған/басылмаған

9 -қадам: Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы

Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы
Бағдарламалық қамтамасыз етуді енгізу - Android қосымшасы

Android қосымшасы Java-Android стилінде жазылған. Мен мұны алгоритмді бөлек код блоктарына бөлу арқылы алдыңғы қадамдардағыдай түсіндіруге тырысамын.

Қуатты қосу реті

Құрылғының бірінші реті. Мұнда қолданба логотипі Android құрылғысының GPS және WiFi модульдерін қосумен бірге ұсынылады (алаңдамаңыз, GPS тек WiFi желісін сканерлеу үшін қажет).

Негізгі мәзір

Бағдарлама жүктелгеннен кейін экранда төрт түйме пайда болады. Түймелердің әрекеті:

  1. ТІКЕЛЕЙ БАЙЛАНЫС: IOT_FUNCGEN SSID арқылы FuncGen AP қосылымын қосу. Егер байланыс сәтті болса, құрылғы UI негізгі режиміне өтеді.
  2. WIFI БАЙЛАНЫСЫ: Құрылғы жадта сақталған деректер параметрлерінің бар -жоғын тексереді: wifi.txt, mac.txt. Егер деректер сақталмаса, құрылғы пайдаланушының сұрауын қабылдамайды және алдымен WLAN жұптауын жасау керек қалқымалы хабарды береді.
  3. Жұптасу: FuncGen -мен DIRECT CONNECTION сияқты байланыс орнату, бірақ үздіксіз хабарлама алмасудың орнына бір қол алысу. Android құрылғысы WiFi желісіне қосылғанын тексереді және пайдаланушыдан парольді енгізуді сұрайды. Егер қайта қосылу сәтті болса, Android құрылғысы SSID пен құпия сөзді wifi.txt файлында сақтайды. FuncGen -мен сәтті байланысқаннан кейін, ол алынған MAC мекенжайын mac.txt файлында сақтайды.
  4. Шығу: жеткілікті деді:)

WiFi сканерлеу менеджері

Мен қосымшаның толық жұмыс істейтінін және қолданбаға түзетулер енгізілмегенін қалаймын. Мен WiFi сканерін жасадым, ол белгілі құпия кілт пен SSID арқылы WiFi желісіне қосылу үшін барлық қажетті әрекеттерді орындайды.

Мәліметтерді жіберу және TCP байланысы

Бұл бағдарламадағы негізгі код блогы. Барлық UI қондырғылары үшін FuncGen арналар үшін қажетті шығуды қамтамасыз етуге мәжбүр ететін белгілі бір форматтағы (соңғы қадам) анықталған хабарлама бар. Әрекетте UI өрісінің үш түрі бар:

  1. Іздеу жолақтары: мұнда біз FuncGen шығыс параметрлерінің нақты ауқымын анықтаймыз

    1. Амплитудасы
    2. Тұрақты токтың жылжуы
    3. СКД жарықтығы
    4. LCD контраст
  2. Мәтінді өңдеу: бүтін сандардың мәнін дәл және дәл сақтау үшін жиілікті енгізу тек сандар арқылы ғана мәтін ұяшықтары арқылы жүзеге асады
  3. Түймелер: Қол жетімді тізімнен параметрлерді таңдау:

    1. Толқын түрінің түрі

      1. Синус
      2. Үшбұрыш
      3. DC
      4. Шаршы
      5. ӨШІРУ
    2. Ақпарат алу

      1. Батарея күйі (пайызбен)
      2. Айнымалы ток күйі (сыртқы қуат көзі)
    3. Жүктеу опциясы (FuncGen MCU үшін)

      1. Зауыттық параметрлер
      2. Қайтадан қосу
      3. Жабу
      4. Тікелей - тікелей жұптастыру режимімен қайта іске қосыңыз
      5. WLAN - WLAN жұптастыру режимімен қайта іске қосыңыз
    4. Негізгі мәзірге шығу: жеткілікті деді:)

10 -қадам: тестілеу

Ұсынылған: