Სარჩევი:

ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი: 6 ნაბიჯი
ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი: 6 ნაბიჯი

ვიდეო: ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი: 6 ნაბიჯი

ვიდეო: ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი: 6 ნაბიჯი
ვიდეო: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, ივლისი
Anonim
ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი
ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი
ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი
ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი

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

მე ასევე ხშირად ვხვდები, რომ მინდა ჩამონტაჟებული მოდულის ინტერფეისი კომპიუტერთან. თუ მოდულს არ აქვს სპეციალურად USB კავშირი, რაც ხშირად ხდება, მაშინ თქვენ უნდა შეიძინოთ ძვირადღირებული USB გადამყვანი, რომელიც შეასრულებს ერთ სამუშაოს, მაგალითად SPI ან უბრალოდ I2C.

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

დაფის ჩამონტაჟებული ინტერფეისის მახასიათებლები, რომლებზეც მე დავთანხმდი, მოიცავს.

  • ციფრული I/O
  • I2C
  • SPI
  • UART
  • PWM
  • სერვო მოტორი
  • ADC შეყვანა
  • DAC გამომავალი

ყველა მათგანი შეიძლება გამოყენებულ იქნას სრულიად დამოუკიდებლად.

ინტერფეისის დაფის კონტროლი შესაძლებელია კომპიუტერთან USB კავშირის საშუალებით, მაგრამ ასევე აქვს სურვილისამებრ WIFI ან Bluetooth მოდულის კავშირები, რათა დაფა გამოიყენოს დისტანციურად ან IoT ტიპის სცენარში.

სტანდარტული 2.54 მმ მოედანზე SIL სათაურების გამოყენებით შესაძლებელია უშუალოდ დაუკავშიროთ მდედრობითი დუპონტის კაბელები დაფასა და ჩადგმულ მოდულს შორის, რაც უზრუნველყოფს სწრაფ, საიმედო და შემაერთებელ კავშირებს.

მე ასევე ვფიქრობდი ისეთი რაღაცეების დამატებაზე, როგორიცაა CAN, LIN, H-bridge და ა. შ.

ნაბიჯი 1: PCB- ის დიზაინი

PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი

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

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

ხელმისაწვდომი 23 I/O ქინძისთავებით ამან მომცა ეს მახასიათებლები

  • დიგტალი I/O
  • I2C
  • SPI
  • UART
  • PWM x 2
  • სერვო ძრავა x 6
  • ADC შეყვანა x 3
  • DAC გამომავალი x 1
  • I/O ამოძრავებს 5V ან 3V3
  • სტატუსის LED

IC– ის ერთი ნაკლი, რომელიც მე ავირჩიე არის ის, რომ მას აქვს მხოლოდ ერთი UART პერიფერიული მოწყობილობა და, შესაბამისად, Bluetooth ან Wifi კონტროლის მეთოდის გამოყენებით თქვენ არ შეგეძლებათ გამოიყენოთ UART კავშირი.

ზემოთ მოცემულ სურათებში ნაჩვენებია დასრულებული სქემატური და PCB.

ნაბიჯი 2: პროტოკოლის შემუშავება

პროტოკოლის შემუშავება
პროტოკოლის შემუშავება

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

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

ჩემს დიზაინში აქ არის იმ ფუნქციების ჩამონათვალი, რომელთა შეტანა მინდოდა:

  • ციფრული I/O

    • SetPin (PinNumber, State)
    • მდგომარეობა = GetPin (PinNumber)
  • SPI

    • ინიციალიზაცია (SPI რეჟიმი)
    • DataIn = გადაცემა (DataOut)
    • ControlChipSelect (არხი, მდგომარეობა)
    • SetPrescaler (შეფასება)
  • I2C

    • ინიციალიზაცია ()
    • დაწყება ()
    • Რესტარტი ()
    • გაჩერება ()
    • SlaveAck = გაგზავნა (DataOut)
    • DataIn = მიღება (ბოლო)
  • UART

    • ინიციალიზაცია ()
    • TX ბაიტი (DataOut)
    • BytesAvailable = RX რაოდენობა ()
    • DataIn = RX ბაიტი ()
    • SetBaud (Baud)
  • PWM

    • ჩართვა (არხი)
    • გამორთვა (არხი)
    • SetFrequency (არხი, სიხშირე)
    • GetMaxDuty (მოვალეობა)
    • SetDuty (მოვალეობა)
  • სერვო

    • ჩართვა (არხი)
    • გამორთვა (არხი)
    • SetPosition (არხი, პოზიცია)
  • ADC

    ADCsample = ნიმუში (არხი)

  • DAC

    • ჩართვა
    • გამორთვა
    • SetOutput (ძაბვა)
  • ᲕᲐᲘ - ᲤᲐᲘ

    • SetSSID (SSID)
    • პაროლის დაყენება (პაროლი)
    • სტატუსი = CheckConnectionStatus ()
    • IP = GetIPAddress ()

პარამეტრები ნაჩვენებია ფრჩხილებში და ანაზღაურება ნაჩვენებია თანაბარი სიმბოლოს წინ.

სანამ დავიწყებ კოდირებას, თითოეულ ფუნქციას მივანიჭებ ბრძანების კოდს 128 -დან (ორობითი 0b10000000) და მუშაობს ზევით. მე ვაფორმებ პროტოკოლს სრულად იმის უზრუნველსაყოფად, რომ მას შემდეგ, რაც ჩემი თავი კოდშია, მაქვს კარგი დოკუმენტი, რომელსაც უნდა მივმართო. ამ პროექტის სრული პროტოკოლის დოკუმენტი თან ერთვის და მოიცავს შემომავალი ბრძანების კოდებს და ბიტის სიგანეს.

ნაბიჯი 3: პროგრამული უზრუნველყოფის შექმნა

პროგრამული უზრუნველყოფის დაპროექტება
პროგრამული უზრუნველყოფის დაპროექტება
პროგრამული უზრუნველყოფის დაპროექტება
პროგრამული უზრუნველყოფის დაპროექტება
პროგრამული უზრუნველყოფის დაპროექტება
პროგრამული უზრუნველყოფის დაპროექტება

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

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

სახელმწიფო მანქანა შედგება სამი მდგომარეობისგან:

1) ველოდები ბრძანებებს

2) პარამეტრების მიღება

3) პასუხი

სამი სახელმწიფო ურთიერთქმედებს შემდეგნაირად:

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

2) ჩვენ გავდივართ შემომავალი ბაიტების შენახვაში, სანამ არ შევინახავთ ყველა პარამეტრს. როდესაც ჩვენ გვაქვს ყველა პარამეტრი, ჩვენ ვასრულებთ ბრძანებას. თუ არის დასაბრუნებელი ბაიტი, ჩვენ გადავალთ მე –3 სტადიაზე.

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

მე გამოვიყენე Flowcode პროგრამული უზრუნველყოფის შესაქმნელად, რადგან ის კარგად აჩვენებს ვიზუალურად რას ვაკეთებ. იგივე შეიძლება გაკეთდეს თანაბრად კარგად არდუინოში ან სხვა ჩაშენებული პროგრამირების ენებზე.

პირველი ნაბიჯი არის კომპიუტერთან კომუნიკაციის დამყარება. ამისათვის მიკრო უნდა იყოს კონფიგურირებული სწორი სიჩქარით მუშაობისთვის და ჩვენ უნდა დავამატოთ კოდი USB და UART პერიფერიული მოწყობილობების მართვისთვის. Flowcode– ში ეს ისეთივე ადვილია, როგორც პროექტში USB სერიული კომპონენტის და UART კომპონენტის Comms კომპონენტის მენიუდან გადატანა.

ჩვენ ვამატებთ RX შეფერხებას და ბუფერს UART– ზე შემომავალი ბრძანებების დასაჭერად და ჩვენ რეგულარულად ვაკითხავთ USB– ს. შემდეგ ჩვენ შეგვიძლია ჩვენი დასვენების პროცესში ბუფერი.

თან ერთვის Flowcode პროექტი და გენერირებული C კოდი.

ნაბიჯი 4: კავშირი ნაკადის კოდის საშუალებით

კავშირი ნაკადის კოდის საშუალებით
კავშირი ნაკადის კოდის საშუალებით
კავშირი ნაკადის კოდის საშუალებით
კავშირი ნაკადის კოდის საშუალებით
კავშირი ნაკადის კოდის საშუალებით
კავშირი ნაკადის კოდის საშუალებით

Flowcode სიმულაცია ძალიან მძლავრია და საშუალებას გვაძლევს შევქმნათ კომპონენტი დაფაზე სასაუბროდ. კომპონენტის შექმნისას ჩვენ შეგვიძლია უბრალოდ ჩავათრიოთ კომპონენტი ჩვენს პროექტში და მყისიერად გვქონდეს დაფის ფუნქციები. როგორც დამატებითი ბონუსი, ნებისმიერი არსებული კომპონენტი, რომელსაც აქვს SPI, I2C ან UART პერიფერიული, შეიძლება გამოყენებულ იქნას სიმულაციაში და კომუნიკაციის მონაცემები შეიძლება მიემართოს ინტერფეისის დაფაზე ინჟექტორის კომპონენტის საშუალებით. თანდართული სურათები აჩვენებს მარტივ პროგრამას ეკრანზე შეტყობინების დასაბეჭდად. კომუნიკაციის მონაცემები, რომლებიც იგზავნება ინტერფეისის დაფის მეშვეობით რეალურ ჩვენების აპარატურაზე და კომპონენტის კონფიგურაციაზე I2C ჩვენებით, I2C ინჟექტორით და ინტერფეისის დაფის კომპონენტებით.

ახალი SCADA რეჟიმი Flowcode 8.1 არის აბსოლუტური დამატებული ბონუსი იმით, რომ ჩვენ შეგვიძლია ავიღოთ პროგრამა, რომელიც რაღაცას აკეთებს Flowcode სიმულატორში და გამოვიტანოთ იგი ისე, რომ ის დამოუკიდებლად გაუშვას ნებისმიერ კომპიუტერზე ლიცენზირების პრობლემების გარეშე. ეს შეიძლება იყოს შესანიშნავი პროექტებისთვის, როგორიცაა საცდელი აპარატები ან სენსორული კლასტერები.

მე ვიყენებ ამ SCADA რეჟიმს WIFI კონფიგურაციის ინსტრუმენტის შესაქმნელად, რომელიც შეიძლება გამოყენებულ იქნას SSID და პაროლის კონფიგურაციისთვის, ასევე მოდულის IP მისამართის შესაგროვებლად. ეს მაძლევს საშუალებას დავაყენო ყველაფერი USB კავშირის გამოყენებით და შემდეგ გადავიყვანო WIFI ქსელურ კავშირზე მას შემდეგ რაც ყველაფერი მუშაობს.

თანდართული რამდენიმე პროექტის მაგალითი.

ნაბიჯი 5: ინტერფეისის სხვა მეთოდები

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

აქ არის ინტერფეისის დაფასთან კომუნიკაციის ენებისა და მეთოდების სია.

პითონი - სერიული ბიბლიოთეკის გამოყენება მონაცემების გადასაცემად COM პორტში ან IP მისამართში

Matlab - ფაილის ბრძანებების გამოყენება მონაცემების გადასაცემად COM პორტში ან IP მისამართში

C ++ / C# / VB - წინასწარ დაწერილი DLL- ის გამოყენებით, უშუალო წვდომა COM პორტზე ან Windows TCP / IP API

Labview - გამოიყენეთ წინასწარ დაწერილი DLL, VISA სერიული კომპონენტი ან TCP/IP კომპონენტი

თუ ვინმეს სურს იხილოს ზემოაღნიშნული ენები, გთხოვთ შემატყობინოთ.

ნაბიჯი 6: მზა პროდუქტი

Დასრულებული პროდუქტი
Დასრულებული პროდუქტი
Დასრულებული პროდუქტი
Დასრულებული პროდუქტი
Დასრულებული პროდუქტი
Დასრულებული პროდუქტი

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

მე კოლეგებისთვისაც კი გადავეცი დაფები, რათა მათ ასევე გააუმჯობესონ თავიანთი სამუშაო ნაკადი და ეს ძალიან კარგად მიიღეს.

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

გირჩევთ: