Სარჩევი:
- ნაბიჯი 1: PCB- ის დიზაინი
- ნაბიჯი 2: პროტოკოლის შემუშავება
- ნაბიჯი 3: პროგრამული უზრუნველყოფის შექმნა
- ნაბიჯი 4: კავშირი ნაკადის კოდის საშუალებით
- ნაბიჯი 5: ინტერფეისის სხვა მეთოდები
- ნაბიჯი 6: მზა პროდუქტი
ვიდეო: ჩამონტაჟებული უნივერსალური ინტერფეისის დაფა - USB/Bluetooth/WIFI კონტროლი: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
მე ხშირად ვხვდები, რომ ვქმნი ბიბლიოთეკებს ახალი ჩადგმული მოდულებისთვის ნულიდან, მოწყობილობის მონაცემთა ფურცელზე დაყრდნობით. ბიბლიოთეკის შექმნისას ვხვდები, რომ მე ვარ ჩარჩენილი კოდის ციკლში, შედგენა, პროგრამირება და ტესტირება, როდესაც ყველაფერი მუშაობს და შეცდომები არ არის. ხშირად შედგენისა და პროგრამის დრო შეიძლება გაცილებით გრძელი იყოს, ვიდრე კოდის რედაქტირებისათვის საჭირო დრო და ამგვარად განვითარების ამ საფეხურების ამოღების გზა იქნება ძალიან მოსახერხებელი.
მე ასევე ხშირად ვხვდები, რომ მინდა ჩამონტაჟებული მოდულის ინტერფეისი კომპიუტერთან. თუ მოდულს არ აქვს სპეციალურად 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- ის დიზაინის შემუშავებისას მე ვცდილობ შევინახო ყველაფერი რაც შეიძლება მარტივი. როდესაც თქვენ აპირებთ დაფების აშენებას ხელით, მნიშვნელოვანია მხოლოდ კომპონენტების დამატება, როდესაც ისინი ასრულებენ კონკრეტულ მიზანს და იყენებენ რაც შეიძლება მეტ მიკროკონტროლერის შიდა მახასიათებლებს.
ჩემი ელექტრონიკის სასურველ მიმწოდებელს გადავხედე, ვიპოვე ჩიპი, რომელშიც თავს კომფორტულად ვგრძნობდი, რომელსაც ჰქონდა ის თვისებები, რასაც ვეძებდი და იყო გონივრული ღირებულება. ჩიპი, რომელზედაც ჩამოვედი, იყო 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: მზა პროდუქტი
მზა პროდუქტი სავარაუდოდ იქნება გამორჩეული თვისება ჩემს ჩაშენებულ ინსტრუმენტთა ნაკრებში მომდევნო წლების განმავლობაში. უკვე დამეხმარა სხვადასხვა გროვის ეკრანისა და სენსორების კომპონენტების შემუშავებაში. ახლა შემიძლია მივიღო კოდი მთლიანად მიმაგრებული სანამ შევიმუშავებ რაიმე პროგრამულ შედგენას.
მე კოლეგებისთვისაც კი გადავეცი დაფები, რათა მათ ასევე გააუმჯობესონ თავიანთი სამუშაო ნაკადი და ეს ძალიან კარგად მიიღეს.
გმადლობთ, რომ კითხულობთ ჩემს ინსტრუქციას, ვიმედოვნებ, რომ ის თქვენთვის სასარგებლო აღმოჩნდა და ვიმედოვნებ, რომ ის შთააგონებს თქვენ შექმნათ თქვენი საკუთარი ინსტრუმენტები თქვენი პროდუქტიულობის დასაჩქარებლად.
გირჩევთ:
ხმების განყოფილება Scratch ჩამონტაჟებული სათამაშოებისათვის DFplayer Mini MP3 პლეერის გამოყენებით: 4 ნაბიჯი
ხმების განყოფილება Scratch ჩამონტაჟებული სათამაშოებისათვის DFplayer მინი MP3 პლეერის გამოყენებით: კეთილი იყოს თქვენი მობრძანება ჩემს " ible " #35. გსურთ შექმნათ ხმოვანი ერთეული, რომელიც შეგიძლიათ გამოიყენოთ სხვადასხვა გზით, ატვირთოთ თქვენთვის სასურველი ხმები თქვენი ნულიდან სათამაშოებისთვის, რამდენიმე წამში? აქ არის სახელმძღვანელო, რომელიც განმარტავს როგორ გავაკეთოთ ეს D
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push ღილაკების, ჟოლოს Pi და Scratch გამოყენებით: 8 ნაბიჯი (სურათებით)
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push Buttons, Raspberry Pi და Scratch გამოყენებით: მე ვცდილობდი მეპოვა გზა იმის ახსნა, თუ როგორ მუშაობდა PWM ჩემს მოსწავლეებზე, ამიტომ მე დავაყენე საკუთარი თავი ამოცანა ვცდილობდი გავაკონტროლო LED სიკაშკაშე 2 ღილაკის გამოყენებით - ერთი ღილაკი გაზრდის LED- ს სიკაშკაშეს და მეორე აფერხებს მას. წინსვლისთვის
ESP8266 RGB LED STRIP WIFI კონტროლი - NODEMCU როგორც IR დისტანციური მართვის წამყვანი ზოლისთვის, რომელიც კონტროლდება Wifi - RGB LED STRIP სმარტფონის კონტროლი: 4 ნაბიჯი
ESP8266 RGB LED STRIP WIFI კონტროლი | NODEMCU როგორც IR დისტანციური მართვის წამყვანი ზოლები Wifi- ზე კონტროლირებადი | RGB LED STRIP სმარტფონის კონტროლი: გამარჯობა ბიჭებო, ამ სახელმძღვანელოში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ nodemcu ან esp8266 როგორც IR დისტანციური მართვა RGB LED ზოლის გასაკონტროლებლად და Nodemcu კონტროლდება სმარტფონის მიერ wifi– ზე. ასე რომ, ძირითადად თქვენ შეგიძლიათ აკონტროლოთ RGB LED STRIP თქვენი სმარტფონით
RC მანქანის კონტროლი ვებ ინტერფეისის საშუალებით: 6 ნაბიჯი (სურათებით)
RC მანქანის კონტროლი ვებ ინტერფეისის საშუალებით: მეგობრებო, ამ ინსტრუქციურად მე ვასწავლი, რომ გააკეთოთ RC მანქანა ვებ ინტერფეისის საშუალებით. ჩვენ მას უსადენოდ გავაკონტროლებთ ჩვენივე სერვერის საშუალებით. იმ მეთოდის გამოყენებით, რომელსაც მე გაჩვენებთ, ჩვენ არ დაგვჭირდება RC მიმღების გამოყენება. ვებ – მასპინძლობისთვის
ყურსასმენის/ყურსასმენის უნივერსალური ხმის კონტროლი: 8 ნაბიჯი (სურათებით)
უნივერსალური ყურსასმენი/ყურსასმენის ხმის კონტროლი: ასე რომ შევიძინე PMP (პორტატული მედია პლეერი) ჰონგ კონგიდან, რათა შემეძლოს ჩემი NES თამაშების თამაში ბორტ ემულატორთან ერთად, სადაც მოსახერხებელი იყო. გრძელი საგზაო მოგზაურობები, ფრენები, მოსაცდელი ოთახები და ა.შ. ის ადგილებია, სადაც მე მომწონს დროის მოკვლა პორტატულ მედიასთან, მაგრამ