Სარჩევი:

პორტატული ფუნქციის გენერატორი WiFi და Android: 10 ნაბიჯი
პორტატული ფუნქციის გენერატორი WiFi და Android: 10 ნაბიჯი

ვიდეო: პორტატული ფუნქციის გენერატორი WiFi და Android: 10 ნაბიჯი

ვიდეო: პორტატული ფუნქციის გენერატორი WiFi და Android: 10 ნაბიჯი
ვიდეო: [ახალი] FNIRSI 2C23T 👉 2CH ოსცილოსკოპი + მულტიმეტრი + ფუნქციის გენერატორი 👉 ვაუ! 2024, ივლისი
Anonim
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე
პორტატული ფუნქციის გენერატორი WiFi და Android- ზე

მე -20 საუკუნის ბოლოს, სხვადასხვა ტექნოლოგიური სიახლეები გამოჩნდა, განსაკუთრებით კომუნიკაციების სფეროში; მაგრამ არა მხოლოდ ჩვენთვის, მომხმარებლები, მომხმარებლები და ინჟინრები გამოჩნდა ელექტრონული მოწყობილობების სწრაფი განვითარება, რამაც შეიძლება ჩვენი ცხოვრება გაცილებით გაადვილოს: ჭკვიანი საათები, ჭკვიანი სახლები, სმარტფონები და ა.

ვინაიდან დღესდღეობით ყველაფერი შეიძლება იყოს "ჭკვიანი", მე გადავწყვიტე შემექმნა სუპერ სასარგებლო მოწყობილობა, რომელიც იქნება აუცილებელი ელექტრონული ლაბორატორიული აღჭურვილობის ნაწილი - პორტატული ფუნქციის გენერატორი, კონტროლირებადი Android OS სმარტფონის მიერ WiFi პირდაპირი ან WiFi ლოკალური ქსელის საშუალებით (WLAN).

რატომ უნდა ავაშენოთ ეს მოწყობილობა?

ტესტირების აღჭურვილობის დიდი უმრავლესობა დღეს საკმაოდ ძვირია. და ზოგჯერ, ეს მოწყობილობები არ არის პორტატული. როგორც მაღალი ფასების გადაწყვეტა, პორტაბელურობის ნაკლებობა და მოწყობილობის ქსელში წვდომის ნაკლებობა, მოწყობილობა უზრუნველყოფს ორმაგი არხის ტალღის გენერატორს, რომელიც მართლაც პორტატულია და აქვს შეუზღუდავი წვდომა ქსელში - ინტერნეტზე ან ადგილობრივზე.

და რა თქმა უნდა, მოწყობილობა უნდა იყოს აგებული ენთუზიაზმის გამო, რომელიც ემორჩილება წვრილმანი პრინციპებს - ზოგჯერ ჩვენ უბრალოდ უნდა გავაკეთოთ რამე იმისათვის, რომ თავი კარგად ვიგრძნოთ:)

ძირითადი მახასიათებლები

Ენერგიის წყარო

  • USB Type-A კონექტორი, როგორც კვების ბლოკის სისტემებისთვის, ასევე პროგრამირებისთვის
  • სრული Li -Ion ბატარეის მართვის სისტემა - დატენვა და სტაბილური რეჟიმები
  • Smart Switch განხორციელება - არ არის საჭირო დენის გადართვის შეცვლა
  • ორმაგი კვების წყარო: +3.3V და -3.3V სიმეტრიული ძაბვის ტალღის წარმოქმნისთვის

ტალღის ფორმის თაობა

  • DC დონის განხორციელება გამომავალ კასკადში - მიკერძოებული ტალღის ფორმა ძაბვის საზღვრებს შორის
  • DDS დაფუძნებული 4 ტიპის ტალღის ფორმის თაობა - სინუსი, სამკუთხედი, კვადრატი და DC
  • 10 მჰც -მდე სიხშირის მხარდაჭერა
  • გამომავალი დენი 80mA– მდე 500mW მაქსიმალური სიმძლავრის ხელმისაწვდომობით
  • ტალღების წარმოქმნის ცალკე არხები - გაყოფილი AD9834 დაფუძნებული სქემები

Კომუნიკაცია

  • ESP32- ის დანერგვა - გამოსაყენებელი WiFi შესაძლებლობები
  • სრული TCP/IP მხარდაჭერა გენერატორის მოწყობილობისა და Android სმარტფონის მიერ
  • თითოეული მოწყობილობის ციკლის მომხმარებლის პარამეტრების შენახვის შესაძლებლობა
  • სახელმწიფო მონიტორინგი - ორივე სისტემამ იცის ერთმანეთის მდგომარეობა: FuncGen (მოდი ასე ვუწოდოთ ამიერიდან) და სმარტფონი.

Მომხმარებლის ინტერფეისი

  • 20 x 4 პერსონაჟის LCD მარტივი 4 ბიტიანი მონაცემთა ინტერფეისით
  • Android პროგრამა - მომხმარებლის სრული კონტროლი FuncGen მოწყობილობაზე
  • Buzzer circuit - ხმის უკუკავშირი მომხმარებლისთვის

ნაბიჯი 1: ბლოკის დიაგრამა - აპარატურა

ბლოკის დიაგრამა - აპარატურა
ბლოკის დიაგრამა - აპარატურა
ბლოკის დიაგრამა - აპარატურა
ბლოკის დიაგრამა - აპარატურა

მიკროკონტროლის განყოფილება - ATMEGA32L

მიკროკონტროლი არის პროგრამირებადი ჩიპი, რომელიც შედგება კომპიუტერის ყველა ფუნქციონირებისგან, რომელიც მდებარეობს ერთ ელექტრონულ ჩიპში. ჩვენს შემთხვევაში, ეს არის "ტვინი" და სისტემის ცენტრალური კომპონენტი. MCU– ს მიზანია მართოს ყველა პერიფერიული სისტემა, გაუმკლავდეს ამ სისტემებს შორის კომუნიკაციას, გააკონტროლოს აპარატურის მუშაობა და უზრუნველყოს სრული მხარდაჭერა მომხმარებლის ინტერფეისისთვის და მისი ურთიერთქმედება რეალურ მომხმარებელთან. ეს პროექტი დაფუძნებულია ATMEGA32L MCU– ზე, რომელსაც შეუძლია იმუშაოს 3.3V– ზე და სიხშირეზე 8 MHz.

საკომუნიკაციო SoC - ESP32

ეს SoC (სისტემა ჩიპზე) უზრუნველყოფს სრულ საკომუნიკაციო მხარდაჭერას FuncGen– ისთვის - წვდომა WiFi შესაძლებლობებზე, პირდაპირი, ადგილობრივი ან ინტერნეტ კომუნიკაციის ჩათვლით. მოწყობილობის მიზნებია:

  • Android პროგრამასა და FuncGen მოწყობილობას შორის მონაცემთა გადაცემის გატარება
  • კონტროლის/მონაცემთა შეტყობინებების მართვა
  • უწყვეტი TCP/IP კლიენტის სერვერის კონფიგურაციის მხარდაჭერა

ჩვენს პროექტში SoC არის espressif ESP32, რომელიც ძალიან პოპულარულია მასზე კიდევ უფრო გაფართოებისთვის:)

Li-Ion ბატარეის მართვის სისტემა

იმისათვის, რომ ჩვენი მოწყობილობა გადავიდეს პორტატულ მოწყობილობაზე, მოწყობილობა შეიცავს Li-Ion ბატარეის დატენვის წრეს. წრე ემყარება MC73831 IC- ს, კონტროლირებადი დატენვის დენით პროგრამირების ერთი რეზისტორის მნიშვნელობის რეგულირების გზით (ჩვენ ამ თემას განვიხილავთ სქემის ნაბიჯში). მოწყობილობის კვების ბლოკი არის USB Type-A კონექტორი.

Smart Switch Circuit

ჭკვიანი გადამრთველი მოწყობილობის დენის კონტროლის წრე უზრუნველყოფს პროგრამული უზრუნველყოფის სრულ კონტროლს მოწყობილობის გამორთვის თანმიმდევრობით და მოწყობილობის ბატარეის ძაბვის გათიშვის გარე გადამრთველის საჭიროების არარსებობით. ენერგიის ყველა ოპერაცია ხორციელდება ღილაკზე დაჭერით და MCU პროგრამული უზრუნველყოფით. ზოგიერთ შემთხვევაში, საჭირო იქნება სისტემის გამორთვა: ბატარეის დაბალი ძაბვა, მაღალი შეყვანის ძაბვა, კომუნიკაციის შეცდომა და ასე შემდეგ. ჭკვიანი გადამრთველი ემყარება STM6601 სმარტ გადამრთველს IC, რომელიც არის იაფი და ძალიან მეგობრული სათამაშოდ.

ძირითადი კვების ბლოკი

ეს განყოფილება შედგება ორი ბატარეით დატენვის სქემისგან - +3.3V ყველა ციფრული / ანალოგური მიწოდების სქემისთვის და -3.3V FunGen– ის სიმეტრიული გამომავალი 0V პოტენციალთან შედარებით (ანუ წარმოქმნილი ტალღის ფორმა შეიძლება დაყენდეს [-3.3V: 3.3V] რეგიონი.

  • ძირითადი მიწოდების სქემა ემყარება LP3875-3.3 LDO (დაბალი მიტოვების) 1A ხაზოვანი ძაბვის მარეგულირებელს.
  • მეორადი მიწოდების წრე ემყარება LM2262MX IC- ს, რომელიც ახორციელებს DC-DC უარყოფითი ძაბვის გარდაქმნას კონდენსატორ-მუხტის ტუმბოს საშუალებით-სისტემაზე, რომელსაც IC ემყარება.

ტალღის ფორმის გენერატორების სისტემა

სისტემა შექმნილია ცალკეული DDS (პირდაპირი ციფრული სინთეზის) ინტეგრირებული სქემების აქცენტით, რაც საშუალებას იძლევა ტალღის ფორმების გენერაციის სრული კონტროლი MCU– ს SPI– ით (სერიული პერიფერიული ინტერფეისი). სქემები, რომლებიც გამოყენებულ იქნა დიზაინში არის ანალოგური მოწყობილობები AD9834, რომელსაც შეუძლია უზრუნველყოს სხვადასხვა სახის ტალღის ფორმა. გამოწვევები, რომელთა წინაშეც უნდა ვიყოთ AD9834– თან მუშაობისას არის:

  • ტალღის ფორმის ამპლიტუდა: ტალღის ამპლიტუდა კონტროლდება გარე DAC მოდულით
  • ოფსეტური DC დონის გათვალისწინება: DC შევსების სქემების განხორციელება სასურველი DC ოფსეტური მნიშვნელობებით
  • კვადრატული ტალღისა და სამკუთხედის/სინუსური ტალღის ცალკეული შედეგები: მაღალი სიხშირის გადართვის მიკროსქემის დანერგვა, რითაც თითოეულ არხის ერთ გამომავალს შეუძლია უზრუნველყოს ყველა სასურველი ტალღის ფორმა: სინუსი, სამკუთხედი, კვადრატი და DC.

Თხევად კრისტალური ეკრანი

LCD არის ინტერფეისის (ინტერფეისის) ნაწილი და მისი მიზანია მომხმარებელს გააცნობიეროს რას აკეთებს მოწყობილობა რეალურ დროში. ის ურთიერთქმედებს მომხმარებელთან მოწყობილობის ყველა მდგომარეობაში.

ბუზერი

მარტივი ტონის გენერატორის სქემა მოწყობილობიდან მომხმარებელზე დამატებითი გამოხმაურებისათვის.

ინტეგრირებული ISP პროგრამისტი

ყველა ინჟინერს აქვს მუდმივი პრობლემა, როდესაც საქმე პროგრამირების პროცესს ეხება: ყოველთვის არის ყველაზე უარესი პროდუქტის დაშლა, რათა მოხდეს მისი ახალი პროგრამული უზრუნველყოფის პროგრამირება. ამ უხერხულობის დასაძლევად, AVR ISP პროგრამისტი შიგნიდან იყო მიმაგრებული მოწყობილობაზე, ხოლო USB მონაცემები და ელექტროგადამცემი ხაზები მიბმულია მოწყობილობის USB Type-A კონექტორზე. ამ კონფიგურაციაში, ჩვენ უბრალოდ უნდა შევაერთოთ ჩვენი FuncGen USB კაბელის საშუალებით, პროგრამირების ან დატენვისთვის!

ნაბიჯი 2: ბლოკის დიაგრამა - ქსელის შექმნა

ბლოკის დიაგრამა - ქსელის შექმნა
ბლოკის დიაგრამა - ქსელის შექმნა

ორმაგი არხის ფუნქციის გენერატორი

მთავარი მოწყობილობა. ის, რაც ჩვენ განვიხილეთ წინა ეტაპზე

ESP-WROOM-32

ინტეგრირებული სისტემა ჩიპზე WiFi და BLE შესაძლებლობებით. SoC მიმაგრებულია მთავარ დაფაზე (ჩვენ ამას განვიხილავთ სქემატურ ეტაპზე) UART მოდულის საშუალებით და მოქმედებს როგორც შეტყობინებების გადამცემი მთავარ მოწყობილობასა და Android სმარტფონს შორის.

WiFi ადგილობრივი ქსელი

სმარტფონი და მოწყობილობა დაუკავშირდება WiFi პირდაპირ ან ადგილობრივი ქსელის საშუალებით, TCP სერვერის/კლიენტის კონფიგურაციის საფუძველზე. როდესაც მოწყობილობები აღიარებენ ერთმანეთს 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 კომპლექტი მინი მიკრო JST XH 2.54 მმ 4 პინი
  • 1 x 6 ცალი Momentary SW

PCB შეკვეთა (Seeed Studio– ს მიხედვით)

ბაზის მასალა FR-4

ფენების რაოდენობა 2 ფენა

PCB რაოდენობა 10

სხვადასხვა დიზაინის ნომერი 1

PCB სისქე 1.6 მმ

PCB ფერი ლურჯი

ზედაპირის დასრულება HASL

მინიმალური შედუღების ნიღაბი კაშხალი 0.4 მმ

სპილენძის წონა 1oz

საბურღი ხვრელის მინიმალური ზომა 0.3 მმ

კვალი სიგანე / მანძილი 6/6 მილ

მოოქროვილი ნახევარ-ხვრელები / Castellated Holes No.

წინაღობის კონტროლი No.

ინსტრუმენტები

  • ცხელი წებოს იარაღი
  • პინცეტი
  • საჭრელი
  • A 22AWG მავთული გაუმართაობის მართვის მიზნით
  • შედუღების რკინა/სადგური
  • შედუღების კალის
  • SMD გადამამუშავებელი სადგური (სურვილისამებრ)
  • 3D პრინტერი (სურვილისამებრ)
  • ფაილის ექსტრუდირება
  • AVR ISP პროგრამისტი
  • USB სერიული კონვერტორი (სურვილისამებრ, გამართვის მიზნით)

ინტეგრირებული განვითარების გარემო (IDE) და პროგრამული უზრუნველყოფა

  • Autodesk EAGLE ან Cadence Schematic Editor / Allegro PCB რედაქტორი
  • OpenSCAD (სურვილისამებრ)
  • Ultimaker Cura (სურვილისამებრ)
  • Saleae Logic (პრობლემის მოსაგვარებლად)
  • Atmel Studio 6.3 ან ზემოთ
  • Android Studio ან Eclipse IDE
  • Docklight სერიული მონიტორი / სხვა COM პორტის მონიტორინგის პროგრამული უზრუნველყოფა
  • ProgISP AVR ATMEGA32L ფლეშ პროგრამირებისთვის

ნაბიჯი 4: აპარატურის დიზაინი - მთავარი დაფა

აპარატურის დიზაინი - მთავარი დაფა
აპარატურის დიზაინი - მთავარი დაფა
აპარატურის დიზაინი - მთავარი დაფა
აპარატურის დიზაინი - მთავარი დაფა
აპარატურის დიზაინი - მთავარი დაფა
აპარატურის დიზაინი - მთავარი დაფა

ბატარეის მართვის წრე

ბატარეის დატენვის წრე ემყარება MCP7383 IC- ს, რაც საშუალებას გვაძლევს ავირჩიოთ Li -Ion ბატარეის სასურველი დატენვის დენი - 3.7V სიმძლავრით 850mAh. დატენვის დენი დადგენილია პროგრამირების რეზისტორის მნიშვნელობით (R1) ჩვენს შემთხვევაში

R1 = 3KOhm, I (დატენვა) = 400mA

USB ძაბვის VBUS გაფილტრულია π- ფილტრით (C1, L3, C3) და მოქმედებს როგორც დენის წყარო დატენვის წრედისთვის.

ძაბვის გამყოფი წრე (R2, R3) საშუალებას აძლევს MCU- ს მიუთითოს, არის თუ არა გარე USB კვების წყარო დაკავშირებული თუ არა, MCU A/D არხზე შემდეგი ძაბვის მიწოდებით:

V (მითითება) (2/3) V (ავტობუსი)

ვინაიდან ჩვენი ATMEGA32L A/D არის 12 ბიტიანი, ჩვენ შეგვიძლია გამოვთვალოთ ციფრული დიაპაზონი:

A / D (დიაპაზონი) = 4095V (მითითება) / V (REF).

A/D ∈ [14AH: FFFH]

Smart Switch დენის ერთეული

წრე საშუალებას აძლევს სისტემას გააკონტროლოს ელექტროენერგიის მიწოდება ყველა დაპროექტებულ ბლოკზე როგორც ღილაკზე, ასევე პროგრამულ უზრუნველყოფაზე MCU და ემყარება STM6601 Smart-Switch– ს POWER პარამეტრით გადაყენების ნაცვლად. ტერმინალები, რომელთა განხილვაც გვინდა, არის:

  • PSHOLD - შეყვანის ხაზი, რომელიც განსაზღვრავს მოწყობილობის მდგომარეობას: თუ დაბალია, მოწყობილობა გამორთავს ყველა მეორადი კვების ბლოკს (+3.3V და -3.3V). თუ მაღალია - მოწყობილობა ინარჩუნებს ჩართულ მდგომარეობას.
  • nSR და nPB - შეყვანის ხაზები. დააჭირეთ ღილაკს ტერმინალები. როდესაც ამ ქინძისთავებზე დაფიქსირებულია ზღვარის დაცემა, მოწყობილობა ცდილობს შევიდეს ენერგიის გაზრდის / გამორთვის რეჟიმში
  • nINT - გამომავალი ხაზი. იწევს დაბლა ყოველ ჯერზე, როდესაც დააჭირეთ ღილაკს
  • EN - გამომავალი ხაზი, გამოიყენება როგორც დენის ჩართვა მეორადი კვების ბლოკებისათვის. სანამ ის დაბალია, ორივე მეორადი კვების წყარო გამორთულია

საბოლოო დიზაინზე გადასვლამდე არის რამდენიმე მნიშვნელოვანი შენიშვნა:

  • PSHOLD უნდა გაიყვანოს 3.3 ვ-მდე, რადგან არის შემთხვევები, როდესაც MCU- ები აიძულებენ ყველა I/O- ს იყოს HIGH-Z მდგომარეობაში. ამ შემთხვევაში, MCU– დან PSHOLD– ის მდგომარეობა უცნობია და შეიძლება მკვეთრად იმოქმედოს მოწყობილობის პროგრამირების პროცესზე.
  • STM6601 უნდა შეუკვეთოთ EN რეგულირების ვარიანტით ხანგრძლივ დაჭერაზე, ნაცვლად RESET ვარიანტისა (მე ჩავვარდი ამ ერთში).

კვების ბლოკი: +3.3 ვ

მთავარი ენერგომომარაგება ჩვენს პროექტში არსებული ყველა სისტემისთვის. როდესაც +3.3V ხაზი GND დონეზეა (ანუ ძაბვა არ არის), ყველა IC გარდა ჭკვიანი გადამრთველისა გამორთულია. წრე ემყარება LDO LP-3875-3.3 IC- ს, EN ტერმინალით კონტროლის უნარით და 1A- მდე დენის უზრუნველყოფით.

ამ მიკროსქემის ენერგიის წყაროა ბატარეის ძაბვა, რომელსაც თან ერთვის A/D ინდიკატორი VBAT– ის კონფიგურაციის განსახილველად, VBUS ზონდირების სქემის მსგავსი. ამ შემთხვევაში, გამოთვლები ოდნავ განსხვავდება;

V (ბატარეა-ს/დ) = 0.59V (ბატარეა); A/D (დიაპაზონი) ∈ [000H: C03H]

კვების ბლოკი: -3.3V

ნეგატიური ძაბვის მიწოდების სქემა საშუალებას გვაძლევს შევქმნათ სიმეტრიული ტალღების ფორმები 0V DC ფაქტორით (ანუ ტალღის ფორმის საშუალო მნიშვნელობა შეიძლება იყოს 0V). ეს წრე დაფუძნებულია LM2662MX IC - DC/DC გადამყვანზე, რომელიც მუშაობს "დამუხტვის ტუმბოს" მეთოდით. მიკროსქემის მაქსიმალური გამომავალი დენი არის 200mA, რაც საკმარისია ჩვენი დიზაინის მოთხოვნებისთვის - ჩვენ შეზღუდული ვართ 80mA გამომავალი დენით თითოეული მოწყობილობის არხიდან.

IC ასრულებს ყველა საჭირო სამუშაოს, ამიტომ მხოლოდ ნაწილები, რომლებიც ჩვენ უნდა დავამატოთ, არის ორი ელექტროლიტური კონდენსატორი: C33 გადართვისთვის და C34 -3.3V ხაზის შემოვლითი გზით (ხმაურის შემცირების გათვალისწინება). გადართვის სიხშირე უმნიშვნელოა დიზაინში, თუ ჩვენ ვდებთ წრეს საკმაოდ შორს ტალღის წარმოქმნის ნაწილებისგან (ჩვენ ამას განვიხილავთ PCB განლაგების ეტაპზე).

მიკროკონტროლერის აპარატი - MCU

ეს არის ჩვენი სისტემის მენეჯერი და აღმასრულებელი დირექტორი - კონტროლი, ქსელის მართვა, შეტყობინებების გადაცემა და ინტერფეისის მხარდაჭერა - ყველაფერი MCU– ს მიერ.

შერჩეული MCU არის Atmel ATMEGA32L, სადაც L ნიშნავს ძაბვის მუშაობას supported [2.7V: 5.5V]. ჩვენს შემთხვევაში, სამუშაო ძაბვაა +3.3V.

მოდით განვიხილოთ ძირითადი ოპერაციული ბლოკები, რომელთა გაგებაც აუცილებელია, MCU– სთან ერთად ჩვენს დიზაინში მუშაობა:

  • გარე ოსცილატორი - არჩევითი კომპონენტია, რადგან ჩვენ დაინტერესებული ვართ 8 მჰც სიხშირით
  • პერიფერიული კონტროლი, SPI ქსელი - ყველა პერიფერიული მოწყობილობა (ESP32 გამოკლებით) MCU– სთან კომუნიკაციას ახდენს SPI– ის საშუალებით. ყველა მოწყობილობისთვის არის სამი საერთო ხაზი (SCK, MOSI, MISO) და ყველა პერიფერიულ წრეს აქვს თავისი გამოყოფილი CS (ჩიპის არჩევა) ხაზი. SPI მოწყობილობები, რომლებიც მოწყობილობის ნაწილია:

    1. D/A ამპლიტუდის კონტროლისთვის - არხი A
    2. D/A ამპლიტუდის კონტროლისთვის - არხი B
    3. AD9834 მოწყობილობა - არხი A
    4. AD9834 მოწყობილობა - არხი B
    5. D/A მიკერძოებული ძაბვის კონტროლისთვის - არხი A
    6. D/A მიკერძოებული ძაბვის კონტროლისათვის - არხი B
    7. ციფრული პოტენომეტრი LCD სიკაშკაშის/კონტრასტის პარამეტრებისთვის
  • LCD მხარდაჭერა - ვინაიდან LCD არის 20 x 4 პერსონაჟის საერთო ეკრანი, ჩვენ ვიყენებთ 4 -ბიტიან ინტერფეისს (ხაზები D7: D4), საკონტროლო ქინძისთავებს (ხაზები RS, E) და სიკაშკაშის/კონტრასტის კონტროლს (ხაზები V0 და ანოდი)
  • RGB LED მხარდაჭერა - ეს მოდული არჩევითია, მაგრამ არსებობს საერთო კათოდური RGB LED კონექტორი შესაბამისი რეზისტენტებით, დაკავშირებული MCU– სთან.
  • სიმძლავრის კონტროლი - MCU ახორციელებს ენერგიის სისტემის მონიტორინგს რეალურ დროში და ამუშავებს ენერგიის ყველა საჭირო მოვლენას:

    1. VBAT_ADC - ბატარეის ძაბვის მონიტორინგი და მისი მდგომარეობის განსაზღვრა (ADC0 არხი)
    2. PWR_IND - გარე კვების ბლოკის მითითება (ADC1 არხი)
    3. PS_HOLD - პირველადი დენის ჩართვის ხაზი ყველა განსაზღვრული სისტემისთვის. როდესაც MCU დაბალია, მოწყობილობა ითიშება
    4. ჭკვიანი გადამრთველის ტერმინალის შეწყვეტა - დააჭირეთ ღილაკს მდგომარეობის მონიტორინგი
  • WiFi ქსელის მენეჯმენტი - ESP32: MCU დაუკავშირდება ESP32– ს UART ინტერფეისის საშუალებით. ვინაიდან 8 MHz საშუალებას გვაძლევს განვახორციელოთ baud მაჩვენებელი 115200 შედარებით მცირე შეცდომით, ჩვენ შეგვიძლია გამოვიყენოთ ESP32 წრეში baud სიჩქარის ცვლილებების წინასწარი განმარტებების გარეშე.

AVR ISP პროგრამისტი

ჩვენი MCU დაპროგრამებულია SPI– ით გადატვირთვის ხაზით (/RST) სათანადო ოპერაციისთვის უნდა გაიყვანოს მაღლა (თუ არა - MCU სამუდამოდ აღმოჩნდება გადატვირთვის მდგომარეობაში).

იმისათვის, რომ მოწყობილობა იყოს დაპროგრამებული და დამუხტული USB– ის საშუალებით, მე დავამატე AVR ISP პროგრამისტი (მცირე ზომის პროდუქტი, ნაყიდი eBay– დან). მოწყობილობის სრული USB მხარდაჭერის შესანარჩუნებლად საჭიროა USB Type-A (D+, D-, VBUS და GND) ტერმინალების მიბმა AVR ISP მოწყობილობასთან.

ტალღის ფორმის გენერაციის წრე

მოწყობილობის ბირთვი არის ეს სქემები. AD9834 არის დაბალი სიმძლავრის DDS მოწყობილობა, რომელიც გვაწვდის ყველა ტალღის ფორმას, რომლის ამოღებაც ჩვენ გვსურს სისტემიდან. სქემები შეიცავს ორ დამოუკიდებელ AD9834 IC- ს გამოყოფილ გარე 50MHz ოსცილატორებით (როგორც ეს ჩანს სქემატებში). გამოყოფილი ოსცილატორის მიზეზი არის ციფრული სქემების ხმაურის შემცირების მოსაზრებები, ასე რომ, გადაწყვეტილება იყო 50 მჰც სიხშირის ხაზების დამუშავება AD9834– ის მიმდებარე ოსცილატორებით.

ახლა მოდით შევხედოთ მათემატიკას:

ვინაიდან DDS მოწყობილობა მუშაობს ფაზის ბორბლის ტექნოლოგიაზე, რომლის გამომავალი ღირებულებაა 28 ბიტიანი რეგისტრში, ჩვენ შეგვიძლია მათემატიკურად აღვწეროთ ტალღის წარმოქმნა:

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

AD9834 მონაცემების თანახმად, მაქსიმალური სიხშირის გათვალისწინებით, შესაძლებელია გამომავალი სიხშირის გარჩევადობის მიღება:

Δf = k * f (oscillator) / f (მაქსიმალური) = 0.28 * 50M / 28M = 0.187 [Hz]

AD9834 IC- ები უზრუნველყოფენ ანალოგიურ მიმდინარე გამომავალს სამკუთხედის/სინუსური ტალღისთვის (IOUT ტერმინალი) და ციფრულ გამომუშავებას კვადრატული ტალღისთვის (SIGN_OUT ტერმინალი). ნიშნის ბიტის გამოყენება ცოტა სახიფათოა, მაგრამ ჩვენ შეგვიძლია გავუმკლავდეთ მას - ყოველ ჯერზე, როდესაც DDS გადის შედარებითი მნიშვნელობის ზღურბლს, SIGN_OUT იქცევა შესაბამისად. 200Ohm რეზისტორი ერთვის თითოეულ არხის გამოსვლას, ამიტომ გამომავალ ძაბვას ექნება მნიშვნელოვანი მნიშვნელობები:

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.5Ohm).

შერჩევის ცხრილი, რომელსაც MCU იყენებს შედეგებისთვის, როგორც ეს არის:

რეჟიმის შერჩევა [D2: D1] | გამომავალი არხი A | გამომავალი არხი B

00 | სინუსი/სამკუთხედი | სინუსი/სამკუთხედი 01 | სინუსი/სამკუთხედი | მოედანი 10 | მოედანი | სინუსი/სამკუთხედი 11 | მოედანი | მოედანი

მიკერძოებული ძაბვის კონტროლის (D/A) სქემები

ტალღის ფორმის გენერატორის ერთ -ერთი მთავარი მახასიათებელია მისი DC მნიშვნელობის კონტროლი. ამ დიზაინში იგი კეთდება თითოეული არხისთვის სასურველი D/A ძაბვის დაყენებით და ეს მიკერძოებული ძაბვები ჯამდება მულტიპლექსური გამოსავლით, რომლებიც ჩვენ ცოტა ადრე განვიხილეთ.

D/A– დან ამოღებული ძაბვა არის დიაპაზონში [0V: +3.3V], ასე რომ არსებობს op-amp დაფუძნებული წრე, რომელიც ასახავს D/A დიაპაზონს [-3.3V: +3.3V]-მდე, რაც საშუალებას აძლევს მოწყობილობას უზრუნველყოს სრული დიაპაზონი სასურველი DC კომპონენტი. ჩვენ გამოვტოვებთ შემაშფოთებელ ანალიტიკურ მათემატიკას და მხოლოდ ყურადღებას გავამახვილებთ საბოლოო შედეგებზე:

V_OUT (არხი B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (არხი A) = V_BIAS_A (+) - V_BIAS_A (-)

ახლა, DC კომპონენტის დიაპაზონი მდებარეობს დიაპაზონში [-3.3V: +3.3V].

შემაჯამებელი სქემები - DC კომპონენტები და ტალღის ფორმები

ამ ეტაპზე ჩვენ გვაქვს ყველაფერი რაც გვჭირდება მოწყობილობის სათანადო გამომუშავებისთვის - Bias Voltage (DC კომპონენტი) სრული ძაბვის დიაპაზონში და მულტიპლექსური AD9834 გამომავალი. ჩვენ ამას გავაკეთებთ შემაჯამებელი გამაძლიერებლის - op -amp კონფიგურაციის გამოყენებით

მოდით, გამოტოვოთ მათემატიკა კიდევ ერთხელ (ჩვენ უკვე შევიტანეთ ბევრი მათემატიკური მიდგომა) და ჩავწეროთ გამაძლიერებლის გამომუშავების საბოლოო შედეგი:

V (მოწყობილობის გამომავალი) = V (პოზიტიური მიკერძოება) - V (უარყოფითი მიკერძოება) - V (მულტიპლექსური გამომავალი) [V]

აქედან გამომდინარე:

V_OUT = ΔV_BIAS - V_AD9834 [V]

BNC ტიპის გამომავალი კონექტორები დაკავშირებულია შერჩევის რეზისტორებთან (R54, R55; R56, R57). ამის მიზეზი ის არის, რომ იმ შემთხვევაში, თუ დიზაინი შეიძლება იყოს დისფუნქციური, ჩვენ მაინც შეგვიძლია შევარჩიოთ თუ გვსურს გამოვიყენოთ შემაჯამებელი გამაძლიერებელი.

მნიშვნელოვანი შენიშვნა: საბოლოო ჯამური გამაძლიერებლების რეზისტორული ქსელების რეგულირება შესაძლებელია დიზაინერის მიერ, რათა შეიცვალოს მოწყობილობიდან ამოღებული მაქსიმალური ამპლიტუდა. ჩემს შემთხვევაში, ყველა გამაძლიერებელი იზიარებს ერთსა და იმავე მოგებას = 1, შესაბამისად მაქსიმალური ბუფერული ამპლიტუდა არის 0.7Vpp სამკუთხედის/სინუსური ტალღისთვის და 3.3Vpp კვადრატული ტალღისთვის. კონკრეტული მათემატიკური მიდგომა შეგიძლიათ იხილოთ ნაბიჯის თანდართულ სურათებს შორის.

ESP32 როგორც გარე მოდული

MCU დაუკავშირდება ESP32– ს UART ინტერფეისის საშუალებით. მას შემდეგ, რაც მე მინდოდა საკუთარი PCB ESP32– ისთვის, დასაკავშირებლად არის 4 ტერმინალი: VCC, RX, TX, GND. J7 არის ინტერფეისის კონექტორი PCB– ებს შორის და ESP32 გამოყოფილია როგორც გარე მოდული მოწყობილობის შიგნით.

მომხმარებლის ინტერფეისი - LCD და სპიკერი

გამოყენებული LCD არის 20 x 4 პერსონაჟის საერთო ეკრანი 4 -ბიტიანი ინტერფეისით, როგორც დიზაინიდან ჩანს, რომ SPI ციფრული პოტენომეტრი არის მიმაგრებული LCD ტერმინალებზე "A" და "V0" - მისი მიზანია მორგება LCD მოდულის სიკაშკაშე და კონტრასტი პროგრამულად.

სპიკერი მომხმარებელს აძლევს ხმის გამომუშავებას MCU– დან მარტივი კვადრატული ტალღის წარმოქმნით. BJT T1 აკონტროლებს დინამიკას დინამიკის საშუალებით, რომელიც შეიძლება იყოს მხოლოდ ორ მდგომარეობაში - ON / OFF.

ნაბიჯი 5: აპარატურის დიზაინი - ESP32 მოდული

აპარატურის დიზაინი - ESP32 მოდული
აპარატურის დიზაინი - ESP32 მოდული

ESP32 გამოიყენება როგორც გარე მოდული ძირითადი PCB– სთვის. მოწყობილობის კომუნიკაცია ემყარება AT ბრძანებებს, რომლებიც ხელმისაწვდომია ზოგადი მოწყობილობის პროგრამულ უზრუნველყოფაზე.

ამ დიზაინის გასაუმჯობესებლად ბევრი არაფერია, მაგრამ დიზაინის რამდენიმე შენიშვნაა:

  • ESP32– ის შესაბამისი UART მოდულის გამოყენების წარუმატებლობის გამო, მე დავამატე სამი შერჩევის რეზისტორი ორივე TX და RX ხაზებისთვის. (0 Ohm თითოეული). სტანდარტული კონფიგურაციისთვის, UART2 მოდული გამოიყენება AT ბრძანებებისთვის (R4, R7 უნდა იყოს შედუღებული)
  • მოწყობილობას აქვს 4 ხაზიანი გამომავალი - VCC, GND, TX, RX.
  • IO0 და EN ქინძისთავები აფასებენ მოწყობილობის მუშაობას და უნდა იყოს შემუშავებული ისე, როგორც ეს მოცემულია სქემატებში

PCB– ის ყველა მახასიათებელი, რომელსაც ჩვენ განვიხილავთ შემდეგ ეტაპზე.

ნაბიჯი 6: PCB განლაგება

PCB განლაგება
PCB განლაგება
PCB განლაგება
PCB განლაგება
PCB განლაგება
PCB განლაგება

PCB– ის დიზაინის მიზნები

  1. შექმენით ჩაშენებული სისტემა ერთი და იმავე დაფაზე არსებული ყველა ინტეგრირებული სქემისთვის
  2. გააუმჯობესეთ მოწყობილობის მუშაობა ერთი ძირითადი PCB- ის შექმნის გზით
  3. ხარჯების შემცირება - თუ გსურთ გაეცნოთ ფასებს, დაბალი ღირებულების დიზაინები მართლაც დაბალი ღირებულებაა
  4. შეამცირეთ ელექტრონული დაფის ზომა
  5. პრობლემების მოგვარება ადვილია - ჩვენ შეგვიძლია გამოვიყენოთ TP (სატესტო წერტილები) თითოეული შესაძლო გაუმართავი ხაზისთვის.

Ტექნიკური პარამეტრები

ორივე PCB: ძირითადი და ESP32 დაფა იზიარებს ერთსა და იმავე მახასიათებლებს წარმოების პროცესისთვის - დაბალი ღირებულება და ოპერატიულობა ჩვენი მიზნებისათვის. ვნახოთ ისინი:

A - მთავარი დაფა

  • ზომა: 10 სმ x 5.8 სმ
  • ფენების რაოდენობა: 2
  • PCB სისქე: 1.6 მმ
  • მინიმალური კვალი ადგილი/სიგანე: 6/6 მილი
  • მინიმალური ხვრელის დიამეტრი: 0.3 მმ
  • სპილენძი PCB– ის პირას მინიმალური მანძილი: 20 მლ
  • ზედაპირის დამთავრება: HASL (საკმაოდ ლამაზი ვერცხლის ფერი იაფი ტიპის)

B - მთავარი დაფა

  • ზომა: 3 სმ x 4 სმ
  • ფენების რაოდენობა: 2
  • PCB სისქე: 1.6 მმ
  • მინიმალური კვალი ადგილი/სიგანე: 6/6 მილი
  • მინიმალური ხვრელის დიამეტრი: 0.3 მმ
  • სპილენძი PCB– ის პირას მინიმალური მანძილი: 20 მლ
  • ზედაპირის დასრულება: HASL

ნაბიჯი 7: 3D დანართი

3D დანართი
3D დანართი

მე თვითონ არ შევიმუშავე, რადგან იმ დროს მე დავარწმუნებდი ამ მოწყობილობას მუშაობაში, ამიტომ მე საერთოდ არ ვიცოდი 3D ბეჭდვის საფუძვლები. ამრიგად, მე გამოვიყენე SCAD პროექტი Thingiverse– დან და დავამატე სხვადასხვა დიაფრაგმები საზღვრებზე, ჩემი მოწყობილობის მახასიათებლების შესაბამისად.

  1. ბეჭდვის მოწყობილობა: Creality Ender-3
  2. საწოლის ტიპი: მინის, 5 მმ სისქის
  3. ძაფის დიამეტრი: 1.75 მმ
  4. ძაფის ტიპი: PLA+
  5. საქშენების დიამეტრი: 0.4 მმ
  6. საწყისი სიჩქარე: 20 მმ/წმ
  7. საშუალო სიჩქარე: 65 მმ/წმ
  8. მხარდაჭერა: N/A
  9. შევსება: 25%
  10. ტემპერატურა:

    • საწოლი: 60 (oC)
    • საქშენები: 215 (oC)
  11. ძაფის ფერი: შავი
  12. ხვრელების საერთო რაოდენობა: 5
  13. დანართების პანელების რაოდენობა: 4

    • TOP Shell
    • ქვედა შელი
    • Წინა პანელი
    • Უკანა პანელი

ნაბიჯი 8: პროგრამული უზრუნველყოფის დანერგვა - MCU

პროგრამული უზრუნველყოფის დანერგვა - MCU
პროგრამული უზრუნველყოფის დანერგვა - MCU
პროგრამული უზრუნველყოფის დანერგვა - MCU
პროგრამული უზრუნველყოფის დანერგვა - MCU
პროგრამული უზრუნველყოფის დანერგვა - MCU
პროგრამული უზრუნველყოფის დანერგვა - MCU

GitHub ბმული Android- თან და Atmega32 კოდთან

პროგრამული ალგორითმი

ყველა ოპერაცია, რომელსაც ასრულებს MCU, აღწერილია თანდართულ დიაგრამებში. გარდა ამისა, არსებობს პროექტის თანდართული კოდი. განვიხილოთ პროგრამული უზრუნველყოფის მახასიათებლები:

გაძლიერება

ამ ეტაპზე, MCU ასრულებს ყველა ინიციალიზაციის თანმიმდევრობას Android მოწყობილობასთან შენახული კომუნიკაციის ტიპის განსაზღვრასთან ერთად: პირდაპირი WiFi ან WLAN ქსელის კომუნიკაცია - ეს მონაცემები ინახება EEPROM– ში. მომხმარებელს შეუძლია ამ ეტაპზე ხელახლა განსაზღვროს Android მოწყობილობის დაწყვილების ტიპი.

Android მოწყობილობის პირდაპირი დაწყვილება

ამ ტიპის დაწყვილება ემყარება WiFi ქსელის შექმნას FuncGen მოწყობილობით. ის შექმნის AP (წვდომის წერტილი) და TCP სერვერს ადგილობრივ მოწყობილობის IP– ზე კონკრეტული SSID (WiFi ქსელის სახელი) და კონკრეტული პორტის ნომრით. მოწყობილობამ უნდა შეინარჩუნოს მდგომარეობა - ღიაა კავშირებისთვის.

როდესაც Android მოწყობილობა დაკავშირებულია FuncGen– თან, MCU შედის ACTIVE რეჟიმში და პასუხობს Android მოწყობილობის მომხმარებლის მითითებების შესაბამისად.

WLAN დაწყვილება

ადგილობრივ WiFi ქსელზე კომუნიკაციის მიზნით, MCU– მ უნდა უზრუნველყოს ESP32– ის ბრძანებები AP– ის შესაქმნელად, Android მოწყობილობასთან კომუნიკაციისთვის და გადამწყვეტი ქსელის მონაცემების გაცვლისთვის:

  • Android მოწყობილობა იღებს FuncGen– ისგან MAC მისამართს, ინახავს მას მეხსიერებაში.
  • FuncGen მოწყობილობა იღებს Android მოწყობილობის შერჩეული WLAN პარამეტრებიდან: SSID, უსაფრთხოების ტიპი და პაროლი და ინახავს მას EEPROM– ში.

როდესაც მოწყობილობები მართლაც დაკავშირებულია იმავე WLAN– თან, Android მოწყობილობა მოძებნის FuncGen– ს WLAN– თან დაკავშირებული მოწყობილობების ყველა MAC მისამართის სკანირებით. როდესაც Android მოწყობილობა განსაზღვრავს MAC თანხვედრას, ის ცდილობს დაუკავშირდეს.

კავშირი და სახელმწიფო მართვა - MCU

როდესაც მოწყობილობები ერთმანეთთან ურთიერთობენ, პროტოკოლი (იხ. წინასწარი საბოლოო ნაბიჯი) იგივე რჩება და დიაგრამა იგივეა.

მოწყობილობის მდგომარეობის მონიტორინგი

დროული შეწყვეტა MCU– ს აწვდის აუცილებელ დეტალებს სახელმწიფოს მართვისათვის. ტაიმერის შეწყვეტის თითოეული ციკლი, განახლებულია პარამეტრების შემდეგი სია:

  • გარე კვების წყარო - ჩართული/გამორთული
  • ბატარეის ძაბვის მდგომარეობა
  • UI განახლება თითოეული პერსონალიზაციისთვის
  • Push-Button: დაჭერილი/არა დაჭერილი

ნაბიჯი 9: პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია

პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია
პროგრამული უზრუნველყოფის დანერგვა - Android აპლიკაცია

Android აპლიკაცია დაწერილია Java-Android სტილში. შევეცდები ავხსნა იგი ისევე, როგორც წინა ნაბიჯები - ალგორითმის ცალკე კოდის ბლოკებად დაყოფით.

Power Up თანმიმდევრობა

მოწყობილობის პირველი თანმიმდევრობა. აქ არის აპის ლოგო წარმოდგენილი Android მოწყობილობის GPS და WiFi მოდულების ჩართვით (არ ინერვიულოთ, GPS საჭიროა მხოლოდ WiFi– ის შესაბამისი ქსელების სკანირებისთვის).

Მთავარი მენიუ

პროგრამის ჩატვირთვის შემდეგ, ოთხი ღილაკი გამოჩნდება ეკრანზე. ღილაკების მოქმედება:

  1. პირდაპირი კავშირი: FuncGen– ის AP– სთან კავშირის ინიციალიზაცია IOT_FUNCGEN– ის SSID– ით. თუ კავშირი წარმატებულია, მოწყობილობა შედის ძირითად ინტერფეისის რეჟიმში.
  2. WIFI კავშირი: მოწყობილობა ამოწმებს, არის თუ არა მეხსიერებაში შენახული მონაცემთა პარამეტრები: wifi.txt, mac.txt. თუ არ არის შენახული მონაცემები, მოწყობილობა უარს იტყვის მომხმარებლის მოთხოვნაზე და მოგვაწვდის შეტყობინებას, რომ WLAN დაწყვილება ჯერ უნდა მოხდეს.
  3. დაწყვილება: კომუნიკაცია FuncGen– თან ისევე, როგორც პირდაპირი კავშირი, მაგრამ შეტყობინებების უწყვეტი გაცვლის ნაცვლად არის ერთი ხელის ჩამორთმევა. Android მოწყობილობა ამოწმებს, არის თუ არა უკვე დაკავშირებული WiFi ქსელთან და ითხოვს მომხმარებლის პაროლის შეყვანას. თუ ხელახლა დაკავშირება წარმატებულია, Android მოწყობილობა ინახავს SSID და გასაღებს wifi.txt ფაილში. FuncGen– თან წარმატებული კომუნიკაციის შემდეგ, იგი ინახავს MAC მისამართს mac.txt ფაილში.
  4. გასვლა: საკმარისია ნათქვამი:)

WiFi სკანირების მენეჯერი

მინდოდა, რომ აპლიკაცია ყოფილიყო ყველაფრის მომცემი და აპსგარეშე კორექტირების გარეშე. ამრიგად, მე შევიმუშავე WiFi სკანერი, რომელიც ასრულებს ყველა საჭირო ოპერაციას WiFi ქსელთან დასაკავშირებლად ცნობილი პაროლით და SSID– ით.

მონაცემთა გადაცემა და TCP კომუნიკაცია

ეს არის პროგრამის მთავარი კოდის ბლოკი. ყველა ინტერფეისის ერთეულისთვის არის განსაზღვრული შეტყობინება კონკრეტულ ფორმატში (წინასწარი საბოლოო ნაბიჯი), რომელიც აიძულებს FuncGen- ს უზრუნველყოს არხებისთვის სასურველი გამომავალი. სამი სახის UI სფეროა საქმიანობაში:

  1. მოძებნეთ ბარები: აქ ჩვენ განვსაზღვრავთ FuncGen გამომავალი პარამეტრების რეალურ დიაპაზონს

    1. Დიაპაზონი
    2. DC ოფსეტური
    3. LCD სიკაშკაშე
    4. LCD კონტრასტი
  2. ტექსტის რედაქტირება: იმისათვის, რომ მთელი მნიშვნელობები იყოს მკაფიოდ განსაზღვრული და ზუსტი, სიხშირის შეყვანა ხდება მხოლოდ რიცხვითი ტექსტური ყუთების საშუალებით
  3. ღილაკები: პარამეტრების შერჩევა ხელმისაწვდომი სიებიდან:

    1. ტალღის ფორმა

      1. სინუსი
      2. სამკუთხედი
      3. DC
      4. მოედანი
      5. გამორთული
    2. Ინფორმაციის მიღება

      1. ბატარეის სტატუსი (პროცენტი)
      2. AC სტატუსი (გარე კვების წყარო)
    3. ჩატვირთვის ვარიანტი (FuncGen MCU– სთვის)

      1. Ქარხნული პარამეტრები
      2. Რესტარტი
      3. Გათიშვა
      4. პირდაპირი - გადატვირთეთ პირდაპირი დაწყვილების რეჟიმში
      5. WLAN - გადატვირთეთ WLAN დაწყვილების რეჟიმში
    4. გასვლა მთავარ მენიუში: საკმარისია:)

ნაბიჯი 10: ტესტირება

გირჩევთ: