Სარჩევი:

CanSat - დამწყებთათვის გზამკვლევი: 6 ნაბიჯი
CanSat - დამწყებთათვის გზამკვლევი: 6 ნაბიჯი

ვიდეო: CanSat - დამწყებთათვის გზამკვლევი: 6 ნაბიჯი

ვიდეო: CanSat - დამწყებთათვის გზამკვლევი: 6 ნაბიჯი
ვიდეო: სირბილის თამაში დარტყმის დროს ძალიან სასაცილოა - Slap And Run level ~10 2024, ნოემბერი
Anonim
CanSat - დამწყებთათვის სახელმძღვანელო
CanSat - დამწყებთათვის სახელმძღვანელო
CanSat - დამწყებთათვის სახელმძღვანელო
CanSat - დამწყებთათვის სახელმძღვანელო
CanSat - დამწყებთათვის სახელმძღვანელო
CanSat - დამწყებთათვის სახელმძღვანელო

ამ ინსტრუქციის მთავარი მიზანი არის ნაბიჯ -ნაბიჯ გაზიარება CanSat– ის განვითარების პროცესში. დაწყებამდე, მოდით განვმარტოთ, რა არის CanSat და რა არის მისი ძირითადი ფუნქციები, ასევე შესაძლებლობის გამოყენებისას, ჩვენ გავაცნობთ ჩვენს გუნდს. ეს პროექტი დაიწყო როგორც გაფართოების პროექტი ჩვენს უნივერსიტეტში, Universidade Tecnológica Federal do Paraná (UTFPR), კამპუსი კორნელიო პროკოპიო. ჩვენი მრჩეველის ხელმძღვანელობით, ჩვენ შევიმუშავეთ სამოქმედო გეგმა CanSats– ში მოხვედრის მიზნით, რაც გულისხმობდა მისი ყველა ასპექტისა და მახასიათებლების შესწავლას, რათა შეგვეძლოს იმის გაგება, თუ როგორ მუშაობს იგი, რაც საბოლოოდ გამოიწვევს მშენებლობას CanSat და ამ სახელმძღვანელოს შემუშავება. CanSat კლასიფიცირდება როგორც პიკოსატელიტი, რაც იმას ნიშნავს, რომ მისი წონა შემოიფარგლება 1 კგ -ით, მაგრამ ჩვეულებრივ CanSats იწონის დაახლოებით 350 გრამს, ხოლო მისი სტრუქტურა დაფუძნებულია სოდაში, 6, 1 სმ დიამეტრის ცილინდრში, 11, 65 სმ სიმაღლეზე. ეს მოდელი წარმოდგენილი იყო სატელიტის განვითარების პროცესის გამარტივების მიზნით, რათა შესაძლებელი გამხდარიყო უნივერსიტეტების დაშვება ამ ტექნოლოგიებზე, პოპულარობის მიღწევისთვის იმ კონკურსების გამო, რომლებმაც მიიღეს ეს მოდელი. ზოგადად, CanSats ემყარება 4 სტრუქტურას, ეს არის ენერგეტიკული სისტემა, სენსორული სისტემა, ტელემეტრიული სისტემა და მთავარი სისტემა. მოდით, უფრო ახლოს განვიხილოთ თითოეული სისტემა: - ენერგეტიკული სისტემა: ეს სისტემა პასუხისმგებელია სხვა ენერგიების მიწოდებაზე მისი საჭიროებების შესაბამისად. სხვა სიტყვებით რომ ვთქვათ, ის უნდა მიაწოდოს სისტემებს საჭირო ძაბვას და დენს, მისი ლიმიტების დაცვით. ასევე, მას შეიძლება ჰქონდეს დაცვის კომპონენტები, რათა უზრუნველყოს სხვა სისტემების უსაფრთხოება და სათანადო ქცევა. ჩვეულებრივ ის დაფუძნებულია ბატარეაზე და ძაბვის მარეგულირებელ წრეზე, მაგრამ ბევრი სხვა მახასიათებლის დამატება შეიძლება, როგორიცაა ენერგიის მართვის ტექნიკა და რამდენიმე სახის დაცვა. - ზონდირების სისტემა: ეს სისტემა შედგება ყველა სენსორისა და მოწყობილობისგან, რომლებიც პასუხისმგებელნი არიან საჭირო მონაცემების შეგროვებაზე. ის შეიძლება დაკავშირებულ იქნას ძირითად სისტემასთან რამდენიმე გზით, სერიული პროტოკოლები, პარალელური პროტოკოლები სხვათა შორის, ამიტომაც მართლაც მნიშვნელოვანია ყველა ამ ტექნიკის დაუფლება, რათა შევძლოთ დავადგინოთ ყველაზე მოსახერხებელი. ზოგადად, სერიული პროტოკოლი არის ის, ვინც ხშირად ირჩევა, მათი მცირე რაოდენობის კავშირებისა და მრავალფეროვნების გამო, ყველაზე პოპულარულია SPI, I2C და UART პროტოკოლები. - ტელემეტრიული სისტემა: ეს სისტემა პასუხისმგებელია CanSat- სა და სახმელეთო კონტროლის სადგურს შორის უკაბელო კომუნიკაციის დამყარებას, რომელიც მოიცავს უკაბელო კომუნიკაციის პროტოკოლს და ტექნიკას. - მთავარი სისტემა: ეს სისტემა პასუხისმგებელია ყველა სხვა სისტემის ერთმანეთთან დაკავშირებაზე, ისე რომ ის ასევე აკონტროლებს და სინქრონიზაციას უკეთებს მათი მოქმედების თანმიმდევრობას როგორც ორგანიზმს.

ნაბიჯი 1: ძირითადი სისტემა

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

მრავალი მიზეზის გამო ჩვენ ავირჩიეთ ARM® Cortex®-M4F დაფუძნებული მიკრო კონტროლერი, ეს არის დაბალი სიმძლავრის MCU, რომელიც გთავაზობთ გაცილებით მაღალ გადამამუშავებელ ძალას, პლუს რამდენიმე მახასიათებელს, რომლებიც ჩვეულებრივ არ ჩანს RISK მიკროკონტროლერებში, როგორიცაა DSP ფუნქციები. ეს მახასიათებლები საინტერესოა იმით, რომ მათ შეუძლიათ გაზარდონ CanSat პროგრამების მახასიათებლების სირთულე, მიკროკონტროლერის შეცვლის საჭიროების გარეშე (რა თქმა უნდა, მისი ლიმიტების პატივისცემითაც).

რამდენადაც, პროექტს ჰქონდა რამდენიმე ფინანსური შეზღუდვა, არჩეული მიკროკონტროლი ასევე უნდა იყოს ხელმისაწვდომი, ასე რომ, სპეციფიკაციების დაცვით, ჩვენ დავასრულეთ ARM® Cortex®-M4F დაფუძნებული MCU TM4C123G LaunchPad– ის არჩევა, ეს არის გამშვები პუნქტი, რომელიც უბრალოდ მოერგო ჩვენს პროექტს რა ასევე დოკუმენტაცია (დამამზადებლის მიერ მოწოდებული მონაცემების ფურცლები და მახასიათებლების დოკუმენტაცია) და MCU– ს IDE იყო დადებითი მხარეები, რომლებიც ნამდვილად უნდა ჩაითვალოს, რადგან ისინი მნიშვნელოვნად შეუწყობენ ხელს განვითარების პროცესს.

ამ Cansat– ში ჩვენ გადავწყვიტეთ, რომ გაგვემარტივებინა იგი და უბრალოდ განვავითაროთ იგი launpad– ის გამოყენებით, მაგრამ რა თქმა უნდა, მომავალ პროექტებში, ეს არ იქნება ვარიანტი, იმის გათვალისწინებით, რომ launpad– ში შემავალი რამდენიმე ფუნქცია რეალურად არ არის აუცილებელი ჩვენი პროექტისათვის, პლიუს მისი ფორმატი მნიშვნელოვნად ზღუდავს ჩვენი CanSat- ის სტრუქტურის პროექტს, რამდენადაც CanSat- ის ზომები მინიმალურია.

ამ სისტემისთვის სათანადო "ტვინის" არჩევის შემდეგ, შემდეგი ნაბიჯი იყო მისი პროგრამული უზრუნველყოფის შემუშავება, ასევე მისი მარტივი გასაადვილებლად გადავწყვიტეთ გამოვიყენოთ თანმიმდევრული პროგრამა, რომელიც ასრულებს შემდეგ თანმიმდევრობას 1 ჰც სიხშირით:

სენსორების კითხვა> მონაცემთა შენახვა> მონაცემთა გადაცემა

სენსორების ნაწილი მოგვიანებით იქნება განმარტებული ზონდირების სისტემაში, ასევე მონაცემთა გადაცემა ტელემეტრიის სისტემაში. დაბოლოს, ჩვენ ვისწავლეთ მიკროკონტროლერის დაპროგრამება, ჩვენს შემთხვევაში ჩვენ უნდა ვისწავლოთ MCU, GPIO, I2C მოდულის, UART მოდულის და SPI მოდულის შემდეგი ფუნქციები.

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

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

- SPI პროტოკოლი

- I2C პროტოკოლი

- UART პროტოკოლი

- NRF24L01+ - გადამცემი

ეს ბიბლიოთეკები ასევე ხელმისაწვდომია ქვემოთ, მაგრამ გახსოვდეთ, რომ ჩვენ გამოვიყენეთ Keil uvision 5 IDE, ამიტომ ეს ბიბლიოთეკები არ აპირებენ კოდის შემქმნელის მუშაობას. დაბოლოს, ყველა ბიბლიოთეკის შექმნისა და ყველა საჭირო მასალის შესწავლის შემდეგ, საბოლოო კოდი შედგენილია და როგორც თქვენ წარმოგიდგენიათ, ის ასევე ხელმისაწვდომია ქვემოთ.

ნაბიჯი 2: ზონდირების სისტემა

ზონდირების სისტემა
ზონდირების სისტემა
ზონდირების სისტემა
ზონდირების სისტემა
ზონდირების სისტემა
ზონდირების სისტემა
ზონდირების სისტემა
ზონდირების სისტემა

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

- 3 ღერძიანი ციფრული ამაჩქარებელი - MPU6050

- 3 ღერძიანი ციფრული გიროსკოპი - MPU6050

- 3 ღერძიანი ციფრული მაგნიტომეტრი - HMC5883L

- ციფრული ბარომეტრი - BMP280

- და GPS - Tyco A1035D

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

ასე რომ, პირველი, რაც გამოიკვლია იყო 3 ღერძიანი ციფრული ამაჩქარებელი და გიროსკოპი, სახელწოდებით MPU6050 (მისი პოვნა შესაძლებელია ყველგან, რამდენადაც იგი ფართოდ გამოიყენება ARDUINO პროექტებში), მისი კომუნიკაცია ემყარება I2C პროტოკოლს, პროტოკოლს, რომელშიც თითოეული მონა ფლობს მისამართს, რისი საშუალებითაც შესაძლებელია რამდენიმე მოწყობილობის პარალელურად დაკავშირება, იმის გათვალისწინებით, რომ მისამართი 7 ბიტიანია, დაახლოებით 127 მოწყობილობა შეიძლება იყოს დაკავშირებული იმავე სერიულ ავტობუსში. ეს საკომუნიკაციო ოქმი მუშაობს ორ ავტობუსზე, მონაცემთა ავტობუსზე და საათის ავტობუსზე, ასე რომ ინფორმაციის გაცვლის მიზნით, ოსტატმა უნდა გამოაგზავნოს საათის 8 ციკლი (სხვათა შორის, ინფორმაცია უნდა შეესაბამებოდეს ბაიტს, რამდენადაც ეს კომუნიკაცია ეფუძნება ბაიტის ზომაზე) ან მიმღებში ან გადაცემის ოპერაციაში. MPU6050– ის მისამართია 0b110100X, ხოლო X გამოიყენება გამოძახებისათვის (მიუთითებს) წაკითხვის ან წერის ოპერაციას (0 მიუთითებს წერის ოპერაციას და 1 მიუთითებს კითხვის ოპერაციას), ასე რომ, როდესაც გსურთ სენსორის წაკითხვა, გამოიყენეთ მისი მისამართი 0xD1 და როდესაც გსურთ დაწეროთ, უბრალოდ გამოიყენეთ მისი მისამართი, როგორც 0xD0.

I2C პროტოკოლის შესწავლის შემდეგ, MPU6050 ფაქტობრივად იქნა შესწავლილი, სხვა სიტყვებით რომ ვთქვათ, მისი მონაცემების ფურცელი წაიკითხა, რათა გამოეყენებინა საჭირო ინფორმაცია მისი მუშაობისთვის, ამ სენსორისთვის მხოლოდ სამი რეგისტრის კონფიგურაცია იყო საჭირო, ენერგიის მართვა 1 რეგისტრაცია - მისამართი 0x6B (იმის უზრუნველსაყოფად, რომ სენსორი არ არის ძილის რეჟიმში), გიროსკოპის კონფიგურაციის რეგისტრი - მისამართი 0x1B (გიროსკოპის სრული დიაპაზონის კონფიგურაციის მიზნით) და საბოლოოდ ამაჩქარებლის კონფიგურაციის რეგისტრატორი - მისამართი 0x1C (in აქსელერომეტრის სრული მასშტაბის კონფიგურაციის მიზნით). არსებობს კიდევ რამდენიმე რეგისტრი, რომლის კონფიგურაცია შესაძლებელია, რაც იძლევა სენსორის მუშაობის ოპტიმიზაციის საშუალებას, მაგრამ ამ პროექტისათვის ეს კონფიგურაციები საკმარისია.

ასე რომ, სენსორის სწორად კონფიგურაციის შემდეგ, თქვენ უკვე შეგიძლიათ მისი წაკითხვა. სასურველი ინფორმაცია ხდება რეგისტრ 0x3B და 0x48 რეგისტრს შორის, თითოეული ღერძის მნიშვნელობა შედგება ორი ბაიტისგან, რომლებიც კოდიფიცირებულია მეორის დამატებით, რაც იმას ნიშნავს, რომ წაკითხული მონაცემები უნდა გარდაიქმნას იმისათვის, რომ იყოს მნიშვნელოვანი (ეს ყველაფერი იქნება მოგვიანებით განიხილება).

MPU6050– ის დამთავრების შემდეგ, დრო იყო შევისწავლოთ 3 ღერძიანი ციფრული მაგნიტომეტრი, სახელწოდებით HMC5883L (ის ასევე ადვილად მოიძებნება სადმე, რამდენადაც იგი ფართოდ გამოიყენება ARDUINO პროექტებში) და ისევ მისი კომუნიკაციის პროტოკოლი არის სერიული პროტოკოლი I2C. მისი მისამართია 0b0011110X და X გამოიყენება გამოძახებისთვის (მიუთითებს) წაკითხვის ან წერის ოპერაციას (0 მიუთითებს წერის ოპერაციას და 1 მიუთითებს კითხვის ოპერაციას), ასე რომ, როდესაც გსურთ სენსორის წაკითხვა, გამოიყენეთ მისი მისამართი 0x3D და ნებისმიერ დროს გსურთ დაწეროთ, უბრალოდ გამოიყენეთ მისი მისამართი, როგორც 0x3C.

ამ შემთხვევაში, HMC5883L ინიციალიზაციის მიზნით, საჭიროა სამი რეგისტრის კონფიგურაცია, კონფიგურაციის რეგისტრი A - მისამართი 0x00 (მონაცემთა გამომავალი სიჩქარისა და გაზომვის რეჟიმის კონფიგურაციისათვის), კონფიგურაციის რეგისტრი B - მისამართი 0x01 (სენსორის მომატების კონფიგურაციისთვის) და ბოლოს, მაგრამ არანაკლებ რეჟიმის რეგისტრაციის - მისამართი 0x02 (მოწყობილობის მუშაობის რეჟიმის კონფიგურაციის მიზნით).

ასე რომ, HMC5883L– ის სწორად კონფიგურაციის შემდეგ, მისი წაკითხვა უკვე შესაძლებელია. სასურველი ინფორმაცია ხდება რეგისტრ 0x03 და რეგისტრ 0x08, თითოეული ღერძის მნიშვნელობა შედგება ორი ბაიტისგან, რომლებიც კოდიფიცირებულია მეორის დამატებით, რაც იმას ნიშნავს, რომ წაკითხული მონაცემები უნდა გარდაიქმნას იმისათვის, რომ იყოს მნიშვნელოვანი (ეს ყველაფერი იქნება მოგვიანებით განიხილება). კერძოდ, ამ სენსორისთვის თქვენ უნდა წაიკითხოთ ყველა ინფორმაცია ერთდროულად, წინააღმდეგ შემთხვევაში ის შეიძლება არ იმუშაოს როგორც შემოთავაზებულია, სანამ გამომავალი მონაცემები იწერება მხოლოდ ამ რეგისტრებში, როდესაც ყველა რეგისტრი დაიწერა. ასე რომ დარწმუნდით, რომ წაიკითხეთ ყველა.

დაბოლოს, შესწავლილი იქნა ციფრული ბარომეტრი, სხვა I2C პროტოკოლის სენსორი, რომელსაც ასევე უწოდებენ BMP280 (ის ასევე ადვილად მოიძებნება ყველგან, სანამ ის ფართოდ გამოიყენება ARDUINO პროექტებში). მისი მისამართია b01110110X ასევე X გამოიყენება გამოძახებისათვის (მიუთითებს) წაკითხვის ან წერის ოპერაციას (0 მიუთითებს წერის ოპერაციას და 1 მიუთითებს კითხვის ოპერაციას), ასე რომ, როდესაც გსურთ სენსორის წაკითხვა, გამოიყენეთ მისი მისამართი 0XEA და ნებისმიერ დროს გსურთ დაწეროთ, უბრალოდ გამოიყენეთ მისი მისამართი, როგორც 0XEB. ამ სენსორის შემთხვევაში I2C მისამართი შეიძლება შეიცვალოს ძაბვის დონის შეცვლით SDO პინზე, ასე რომ, თუ GND- ს გამოიყენებთ ამ პინზე, მისამართი იქნება b01110110X და თუ VCC- ს გამოიყენებთ ამ პინზე, მისამართი მიდის იყოს b01110111X, ასევე იმისათვის, რომ ჩართოთ I2C მოდული ამ სენსორში, თქვენ უნდა გამოიყენოთ VCC დონე სენსორის CSB პინზე, წინააღმდეგ შემთხვევაში ის არ იმუშავებს სწორად.

BMP280– ისთვის მხოლოდ ორი რეგისტრატორი უნდა იყოს კონფიგურირებული, რომ ის იმუშაოს, ctrl_meas რეგისტრი - მისამართი 0XF4 (მონაცემთა მოპოვების პარამეტრების დასაყენებლად) და კონფიგურაციის რეესტრი - მისამართი 0XF5 (განაკვეთის დასადგენად, ფილტრი და სენსორის ინტერფეისის პარამეტრები).

კონფიგურაციის პერსონალის დასრულების შემდეგ, დროა რაც ნამდვილად მნიშვნელოვანია, თავად მონაცემები, ამ შემთხვევაში სასურველი ინფორმაცია ხდება 0XF7 და 0XFC რეგისტრებს შორის. როგორც ტემპერატურა, ასევე წნევის მნიშვნელობა შედგება სამი ბაიტისგან, რომლებიც კოდიფიცირებულია მეორის დამატებით, რაც ნიშნავს რომ წაკითხული მონაცემები უნდა გარდაიქმნას იმისათვის, რომ იყოს მნიშვნელოვანი (ეს საკითხები მოგვიანებით იქნება განხილული). ასევე ამ სენსორისთვის, უფრო მაღალი სიზუსტის მისაღებად, არსებობს რამდენიმე შესწორების კოეფიციენტი, რომელიც შეიძლება გამოყენებულ იქნას მონაცემების გადაყვანისას, ისინი განლაგებულია რეგისტრებს შორის 0X88 და 0XA1, დიახ არის შესწორებების კოეფიციენტების 26 ბაიტი, ასე რომ, თუ სიზუსტეა არც ისე მნიშვნელოვანია, უბრალოდ დაივიწყე ისინი, თორემ სხვა გზა არ არსებობს.

და ბოლოს მაინც GPS - Tyco A1035D, ეს ეყრდნობა UART სერიულ პროტოკოლს, კონკრეტულად 4800 kbps სიჩქარით, პარიტეტული ბიტების გარეშე, 8 მონაცემთა ბიტი და 1 გაჩერების ბიტი. UART, ან უნივერსალური ასინქრონული მიმღები/გადამცემი, არის სერიული პროტოკოლი, რომელშიც ინფორმაციის სინქრონიზაცია ხდება პროგრამული უზრუნველყოფის საშუალებით, ამიტომ არის ეს ასინქრონული პროტოკოლი, ასევე ამ მახასიათებლის გამო, ინფორმაციის გადაცემის და მიღების სიჩქარე გაცილებით მცირეა. კონკრეტულად ამ პროტოკოლისთვის პაკეტები უნდა დაიწყოს საწყისი ბიტით, მაგრამ გაჩერების ბიტი არჩევითია და პაკეტების ზომა 8 ბიტიანია.

იმ შემთხვევაში, თუ GPS - Tyco A1035D, ორი კონფიგურაცია იყო საჭირო, ეს იყო setDGPSport (ბრძანება 102) და Query/RateControl (ბრძანება 103), ყველა ეს ინფორმაცია, პლუს მეტი ვარიანტი ხელმისაწვდომია NMEA საცნობარო სახელმძღვანელოში, პროტოკოლში გამოიყენება GPS მოდულების უმეტესობაში. ბრძანება 102 გამოიყენება baud განაკვეთის, მონაცემთა ბიტების რაოდენობის და პარიტეტული ბიტების არსებობისა თუ არა და stop ბიტების დასადგენად. ბრძანება 103 გამოიყენება სტანდარტული NMEA შეტყობინებების GGA, GLL, GSA, GSV, RMC და VTG გამოყვანის გასაკონტროლებლად, ისინი დეტალებით არის აღწერილი საცნობარო სახელმძღვანელოში, მაგრამ ჩვენს შემთხვევაში არჩეული იყო GGA, რომელიც ნიშნავს გლობალს პოზიციონირების სისტემის ფიქსირებული მონაცემები.

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

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

ნაბიჯი 3: ტელემეტრიული სისტემა

ტელემეტრიული სისტემა
ტელემეტრიული სისტემა

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

ბაზარზე ხელმისაწვდომია რადიოს მრავალი ვარიანტი ხელმისაწვდომი ფასებით, ყველა ეს სისტემა გთავაზობთ მოდულაციის სხვადასხვა გზებს სხვადასხვა სიხშირეზე, ამ სისტემისთვის ჩვენი არჩევანი შედგებოდა 2.4GHz RF გადამცემიდან, NRF24L01+, იმის გამო, რომ მას უკვე ჰქონდა კარგად დამკვიდრებული საკომუნიკაციო პროტოკოლი, სანამ შემოწმების სისტემები, როგორიცაა ავტომატური აღიარების და ავტომატური გადაცემის სისტემები. გარდა ამისა, მისი გადაცემის სიჩქარე შეიძლება მიაღწიოს სიჩქარეს 2 Mbps– მდე ენერგიის გონივრული მოხმარებით.

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

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

NRF24L01+ 'ლაპარაკობს' SPI ენაზე, როდესაც საქმე ეხება სერიულ კომუნიკაციას, ასე რომ, როდესაც თქვენ გსურთ წაიკითხოთ ან დაწეროთ ეს გადამცემი, უბრალოდ გააგრძელეთ და გამოიყენეთ SPI პროტოკოლი. SPI არის სერიული პროტოკოლი, როგორც უკვე აღვნიშნეთ, რომელშიც მონების შერჩევა ხდება CHIPSELECT (CS) პინის საშუალებით, რომელიც სრულ დუპლექსთან ერთად (როგორც ბატონს, ასევე მონას შეუძლია გადასცეს და მიიღოს პარალელურად) დამახასიათებელი ამ პროტოკოლის საშუალებით შესაძლებელია მონაცემთა გარიგების გაცილებით მაღალი სიჩქარე.

NRF24L01+ მონაცემთა ცხრილში მოცემულია ამ კომპონენტის წაკითხვის ან ჩაწერის ბრძანებების კომპლექტი, არსებობს სხვადასხვა ბრძანებები შიდა რეგისტრებზე წვდომისათვის, RX და TX დატვირთვა სხვა ოპერაციებს შორის, ასე რომ სასურველი ოპერაციიდან გამომდინარე, შეიძლება საჭირო გახდეს კონკრეტული ბრძანება შეასრულე ის სწორედ ამიტომ, საინტერესო იქნებოდა გადახედო მონაცემთა ცხრილს, რომელშიც არის სია, რომელიც შეიცავს და ხსნის ყველა შესაძლო მოქმედებას გადამცემზე (ჩვენ არ ვაპირებთ მათ ჩამოთვლას აქ, რადგან ეს არ არის ამ ინსტრუქციის მთავარი პუნქტი).

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

იმისათვის, რომ ყველაფერი მარტივი იყოს, გამოყენებული პროტოკოლი (გადამცემისთვის) შედგებოდა 3 ბაიტიანი სათაურისგან, რასაც მოჰყვა სენსორის მონაცემები, სანამ სენსორების ყველა მონაცემი ორი ბაიტისგან შედგებოდა, თითოეულ სენსორულ მონაცემს მიენიჭა საიდენტიფიკაციო ნომერი დაწყებული 0x01– დან და შემდეგ ნახევარმთვარის თანმიმდევრობით, ასე რომ, თითოეულ ორ ბაიტს აქვს საიდენტიფიკაციო ბაიტი, ამრიგად, სათაურის თანმიმდევრობა შემთხვევით ვერ განმეორდება სენსორის კითხვის მიხედვით. მიმღები აღმოჩნდა ისეთივე მარტივი, როგორც გადამცემი, პროტოკოლს უბრალოდ სჭირდებოდა გადამცემის მიერ გაგზავნილი სათაურის ამოცნობა და მას შემდეგ, რაც მან უბრალოდ შეინახა მიღებული ბაიტები, ამ შემთხვევაში ჩვენ გადავწყვიტეთ გამოგვეყენებინა ვექტორი მათი შესანახად.

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

ნაბიჯი 4: ენერგიის სისტემა

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

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

ყველა სისტემის კომპონენტების ყველა მონაცემთა ცხრილის კონსულტაციის შემდეგ, სისტემის მიერ მოხმარებული მთლიანი დენი იყო დაახლოებით 160mAh, 10 საათიანი ავტონომიის გათვალისწინებით, 1600mAh ბატარეა საკმარისი იყო სისტემის სათანადო სამუშაო პირობების გარანტირებისთვის.

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

ნაბიჯი 5: სტრუქტურა

სტრუქტურა მართლაც მნიშვნელოვანია CanSat– ის უსაფრთხოებისათვის, თუმცა ამ პროექტში იგი ცოტა უგულებელყოფილია (რეალურად არ იყო დიდი ინტერესი CanSat– ის მექანიკური ნაწილის შემუშავებაში, იმის გამო, რომ ყველა წევრის კურსები დაკავშირებული იყო ელექტრონიკასთან). სანამ პროექტი ემყარებოდა არსებულ შაბლონს, CanSat- ის ნიმუშს, დიდად არ ფიქრობდა იმაზე, თუ როგორ იქნებოდა მისი გარეგნობა საჭირო, ამიტომ უნდა ჩამოყალიბდეს ცილინდრის ფორმატში, დიამეტრის დაახლოებით 6, 1 სმ და დაახლოებით 11, 65 სმ სიმაღლე (იგივე ზომები სოდა).

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

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

ნაბიჯი 6: დასკვნები და მომავალი აზრები

CanSat– ს ჯერ კიდევ სჭირდება ტესტირება მოქმედებაში, ჩვენ რეალურად ვიღებთ განაცხადს სარაკეტო კონკურსზე (რაც დეკემბერში მოხდება), ასევე მთელი შენობის გავლის შემდეგ (რა თქმა უნდა, ჩვენ ჯერ კიდევ გვჭირდება რაღაცეების დასრულება) და განვითარება პროცესი, გარკვეული პერსპექტივები და შენიშვნები, რომლებიც ჩვენ გვეგონა, რომ საინტერესო იქნებოდა ყველასთვის გაგეზიარებინათ დაკვირვება, ძირითადად ბრძოლის, რჩევების და თუნდაც კარგი გამოცდილების შესახებ, ასე რომ, აქ არის:

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

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

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

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

გირჩევთ: