Სარჩევი:

RC Plane Altimeter (თავსებადია Spektrum Telemetry– თან): 7 ნაბიჯი
RC Plane Altimeter (თავსებადია Spektrum Telemetry– თან): 7 ნაბიჯი

ვიდეო: RC Plane Altimeter (თავსებადია Spektrum Telemetry– თან): 7 ნაბიჯი

ვიდეო: RC Plane Altimeter (თავსებადია Spektrum Telemetry– თან): 7 ნაბიჯი
ვიდეო: Estes Model Rocket Altimeter test in my RC airplane. 2024, ივლისი
Anonim
RC თვითმფრინავის ალტიმეტრი (თავსებადია Spektrum Telemetry– სთან)
RC თვითმფრინავის ალტიმეტრი (თავსებადია Spektrum Telemetry– სთან)

მე გავაკეთე ეს სიმაღლე, რათა მფრინავმა იცოდეს, რომ ისინი აშშ -ში RC თვითმფრინავებზე 400 ფუტიანი ლიმიტის ქვეშ არიან. ჩემი მეგობარი შეშფოთებულია, რადგან მას არ შეუძლია დარწმუნებით თქვას, რომ ის ყოველთვის 400 ფუტის ქვეშ იყო და სურდა დამატებითი გარანტია იმისა, რომ ტელემეტრიული მონაცემების სენსორი მოგვცემდა. დიახ, თქვენ შეგიძლიათ შეიძინოთ სენსორი Spektrum– დან, მაგრამ თქვენ შეგიძლიათ ააწყოთ ეს პროექტი 20 დოლარზე ნაკლებ ფასად დაფის დაფებით (რომლებიც უკვე გაბერილია ფასში). თუ უკვე გყავთ J-link პროგრამისტი, შეგიძლიათ ააწყოთ იგი მორგებულ დაფაზე რამდენიმე დოლარად. რომ აღარაფერი ვთქვათ მას შემდეგ რაც გაიგებთ Xbus პროტოკოლს, შეგიძლიათ გააკეთოთ ნებისმიერი სხვა მხარდაჭერილი სენსორი! მაგრამ მე მხოლოდ ამ სიმაღლეზე ვიფარებ სიმაღლეზე…

ნაწილების სია:

  • მე გამოვიყენე Seeeduino XIAO მიკროკონტროლის დაფა ამ პროექტისთვის, რადგან ის პატარაა, იყენებს M0 პროცესორს, რომელსაც აქვს დიდი ძალა ამ პროექტისთვის, აქვს I2C და SPI მზად არის ყუთიდან გასასვლელად და იყენებს 3.3v ლოგიკას, ასე რომ დონის ცვლა არ ხდება საჭირო.

    https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…

  • ჰაერის წნევის გამოსათვლელად, მე შევიძინე BMP388 გარღვევის დაფა ადაფრუტისგან. დაფას აქვს I2C და SPI გატეხილი და შეუძლია იმუშაოს 3.3v ან 5v ლოგიკით.

    https://www.adafruit.com/product/3966

  • პროტო დაფა მიკროსქემის გაყვანილობისთვის
  • Solder/soldering რკინის
  • მამრობითი/მდედრობითი pin სათაურები, ასე რომ მე შემიძლია ადვილად მოხსნას სენსორი/მიკროკონტროლი.
  • პატარა ღილაკი. ამას ვიყენებ საწყისი სიმაღლის გადატვირთვისთვის.
  • 10k რეზისტორი ღილაკზე დასაწევად.
  • JST-XH 4 პინიანი ქალი კონექტორი Spektrum მიმღების ტელემეტრიული პორტში ჩასართავად
  • SEGGER J-Link EDU პროგრამისტი M0- ის ჩამტვირთავი ჩატვირთვის გარეშე.

    https://www.adafruit.com/product/3571

  • Adafruit SWD 10 პინიანი გარღვევის დაფა

    www.adafruit.com/product/2743

მარაგები

  • მე ასევე 3D დაბეჭდილი პატარა დანართი ჩემი altimeter, მაგრამ ეს არ არის საჭირო.
  • ოსცილოსკოპი- თუ არ გაქვთ ერთი, მე ამას გირჩევთ:

    https://store.digilentinc.com/analog-discovery-2-1…

ნაბიჯი 1: ისწავლეთ Spektrum Telemetry Protocol

ისწავლეთ Spektrum Telemetry Protocol
ისწავლეთ Spektrum Telemetry Protocol
ისწავლეთ Spektrum Telemetry Protocol
ისწავლეთ Spektrum Telemetry Protocol
ისწავლეთ Spektrum Telemetry Protocol
ისწავლეთ Spektrum Telemetry Protocol

ეს უმეტესად ჩემთვის რაიმონდ დომინგომ გააკეთა. მათ უკვე გააკეთეს Spektrum– თან თავსებადი ალტიმეტრი, ამიტომ ამ კოდის დაცვა ნამდვილად დაეხმარა. Spektrum ტელემეტრიის მონაცემთა ცხრილი შეავსო დანარჩენი ხარვეზები. მიმღების მონაცემების დონის გაზომვამ აჩვენა, რომ მე მჭირდება 3.3 ვ ლოგიკა.

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

Spektrum მონაცემთა ცხრილი:

www.spektrumrc.com/ProdInfo/Files/SPM_Tele…

რაიმონდ დომინგოს პროექტი:

www.aerobtec.com/download/altisSpektrumInte…

ნაბიჯი 2: აირჩიეთ აპარატურა

აირჩიეთ აპარატურა
აირჩიეთ აპარატურა
აირჩიეთ აპარატურა
აირჩიეთ აპარატურა
აირჩიეთ აპარატურა
აირჩიეთ აპარატურა

მე გამოვიყენე BMP388 ბრეაკოუტ დაფა ადაფრუტიდან წნევის საგრძნობად. გარღვევა უზრუნველყოფს I2C და SPI გარღვევებს და მუშაობს 3.3v ან 5v ლოგიკით. ადაფრუტი ყოველთვის აკეთებს გასაოცარ საქმეს მათი გარღვევის დაფებით, ამიტომ შევიძინე. მე გამოვიყენე DFRobot Gravity BMP388 დაფა მის მშენებლობაში, რადგან ჩემი Adafruit დაფა უკვე გამოიყენებოდა.

იმის გათვალისწინებით, რომ მასპინძელი I2C მოწყობილობა იყენებს 3.3 ვ ლოგიკას, მე მჭირდებოდა 3.3 ვ მიკროკონტროლერი და მინდოდა ის პატარა ყოფილიყო. მე ვაპირებდი Adafruit Trinket M0– ს გამოყენებას, მაგრამ ისინი შედარებით ძვირია და არ აქვთ ძალიან ბევრი ქინძისთავები გატეხილი. შემდეგ ვიპოვე Seeeduino XIAO დაფა. ეს არის M0 დაფა ორივე I2C და SPI მზად არის წასასვლელად, USB-C კონექტორით. გარდა ამისა, ის მართლაც პატარაა! საერთო ჯამში მე ნამდვილად მომწონს ეს დაფა (მიუხედავად იმისა, რომ ნელი გაშვების კრისტალმა სამუდამოდ გამიტაცა).

Spektrum იყენებს JST-XH ზომის 4 პინიან მამაკაცურ კონექტორს მიმღებზე "Xbus" პორტისთვის, რომელსაც ჩვენ შევეხებით. მე გამოვიყენე 4 პინიანი JST-XH ქალი დანამატი სიმაღლეზე და ის მშვენივრად მუშაობდა.

ნაბიჯი 3: დაწერეთ პროგრამული უზრუნველყოფა

მე გამოვიყენე Arduino IDE ყველა კოდის დასაწერად. მე გადავაკოპირე Spektrum ტელემეტრიული პროტოკოლი მათ მონაცემთა ცხრილში და დავამატე ჩემს არდუინოს ბიბლიოთეკაში. მას შემდეგ, რაც ადაფრუტს ყოველთვის აქვს კარგი ბიბლიოთეკები მათი გარღვევისთვის, მე გამოვიყენე მათი BMP3XX ბიბლიოთეკა BMP388 სენსორისთვის.

ჩემი დიზაინის ძირითადი მახასიათებლებია:

  • დააყენეთ I2C ისე, რომ მოიქცეს როგორც კლიენტის მოწყობილობა და უპასუხოს Spektrum სიმაღლეზე (0x12).
  • წაიკითხეთ BMP388 ბარომეტრი SPI საშუალებით.
  • შეინახეთ სიმაღლის მონაცემები ორ განსხვავებულ ბუფერში ისე, რომ მიმღებიდან I2C მოთხოვნა არ გააფუჭოს მონაცემები და მონაცვლეობით ორ ბუფერს შორის მონაცემების მოპოვებისას. ეს დარწმუნებულია, რომ მიმღებისთვის გაგზავნილი მონაცემები ყოველთვის სრულყოფილია.
  • იყენებს ღილაკს ალტიმეტრის ნულამდე.

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

ნაბიჯი 4: ჩართეთ წრე

Wire Circuit
Wire Circuit
Wire Circuit
Wire Circuit
Wire Circuit
Wire Circuit
Wire Circuit
Wire Circuit

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

JST-XH კონექტორი დავუკავშირე XIAO- ს I2C ქინძისთავებს. მას შემდეგ, რაც მიმღები 5 ვოლტს გამოყოფს ტელემეტრიულ ავტობუსში, ავტობუსიდან დადებითი მიდის XIAO– ს VCC პინზე. ამ გზით, ბორტზე 3.3 ვ რეგულატორი გამოიყენება BMP388 სენსორის გასაძლიერებლად.

ნაბიჯი 5: შეადგინეთ ჩატვირთვის გარეშე

შეადგინეთ ჩატვირთვის გარეშე
შეადგინეთ ჩატვირთვის გარეშე
შეადგინეთ ჩატვირთვის გარეშე
შეადგინეთ ჩატვირთვის გარეშე
  1. იპოვეთ თქვენი boards.txt ფაილი (ნებისმიერი დაფისთვის, რომელსაც იყენებთ).

    ჩემს შემთხვევაში, ის აქ იყო: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / boards.txt

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

    • ძველი: seeed_XIAO_m0
    • ახალი: seeed_XIAO_m0_nbl
  3. შეცვალეთ.name მნიშვნელობა:

    • ძველი: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
    • ახალი: seeed_XIAO_m0_nbl.name = Seeeduino XIAO ჩამტვირთავი არ არის
  4. შეცვალეთ ბმული ჩამტვირთავი ჩამტვირთველის გარეშე მშენებელი ld სკრიპტის შეცვლით:

    • ძველი: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
    • ახალი: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with out _bootloader.ld
  5. გადატვირთეთ Arduino IDE.
  6. შეარჩიეთ ახალი "Seeeduino XIAO No Bootloader" დაფა დაფების მენიუდან.
  7. აირჩიეთ "ექსპორტი შედგენილი ორობითი"
  8. შედგენის შემდეგ.bin ფაილი იქნება თქვენს Arduino პროექტის საქაღალდეში.

ნაბიჯი 6: Flash MCU J-Link- ით

Flash MCU J-Link– ით
Flash MCU J-Link– ით
Flash MCU J-Link– ით
Flash MCU J-Link– ით
Flash MCU J-Link– ით
Flash MCU J-Link– ით

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

learn.adafruit.com/how-to-program-samd-boo…

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

ადაფრუტის სახელმძღვანელო არის ძალიან საფუძვლიანი, მაგრამ ეს არის ძირითადი ნაბიჯები:

  1. Solder jumper ხაზები უკანა მხარეს XIAO ფორუმში.

    • ადაფრუტის სახელმძღვანელოში არ ნათქვამია, რომ RX პინი 2x5 ბრეაკოუტ დაფაზე უნდა იყოს დაკავშირებული ადაფრუტის დაფების გადატვირთვის პინთან. მაგრამ XIAO– სთვის, მე მჭირდებოდა დაფის უკანა მხარეს მდებარე ოთხივე ბალიშის დაკავშირება.
    • VREF პინი უნდა იყოს დაკავშირებული XIAO 3.3v პინთან. ეს ეუბნება debugger- ს, რომ მოწყობილობის ლოგიკა არის 3.3v. ამის გარეშე, თუ თქვენ აირჩევთ არასწორ ვარიანტს, თქვენ შეიძლება დააზიანოთ მიკროკონტროლერი.
  2. შეაერთეთ ჯუმბერის მავთულები J-Link- თან.
  3. ჩართეთ XIAO დაფა USB კაბელით.
  4. გახსენით Atmel Studio.
  5. აირჩიეთ Tools Device Programming
  6. აირჩიეთ თქვენი M0 დაფა. ამ შემთხვევაში, ATSAMD21G18A
  7. აირჩიეთ SWD.
  8. წაიკითხეთ კონფიგურაცია სამიზნედან.
  9. თუ თქვენ იყენებთ EDU J-Link- ს, დაეთანხმეთ გამოყენების პირობებს (თუ თქვენ იცავთ გამოყენების პირობებს).
  10. დარწმუნდით, რომ ძაბვის კითხვა სწორია ზედა მარჯვენა კუთხეში. თუ ის არ არის 3.3 ვ, შეგიძლიათ გატეხოთ დაფა!
  11. გაასუფთავეთ ჩატვირთვის დაცვის დაუკრა (დააყენეთ ჩამტვირთველის ზომა 0 ბაიტზე) და შემდეგ შეარჩიეთ პროგრამა.
  12. მოგონებების განყოფილებაში აირჩიეთ თქვენი შედგენილი.bin ან. Hex ფაილი და შეარჩიეთ პროგრამა.

Დიაგნოსტიკა:

როდესაც კითხულობთ მოწყობილობის კონფიგურაციას, თუ თქვენ მიიღებთ ძაბვას დიაპაზონის მიღმა, დარწმუნდით, რომ MCU ჩართულია ელექტროენერგიაში და რომ J-Link VREF პინი უკავშირდება 3.3 ვოლტს

ნაბიჯი 7: ხელახალი შედგენა გარე ბროლის გარეშე

ხელახლა შედგენა გარე ბროლის გარეშე
ხელახლა შედგენა გარე ბროლის გარეშე

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

  1. იპოვეთ boards.txt ფაილი, რომელიც თქვენ ადრე შეცვალეთ (დიახ, მე შემეძლო თქვენ გადაგარჩენათ ეს ნაბიჯი ადრე, მაგრამ ეს იყო სწავლის პროცესი ჩემთვის)
  2. დაამატეთ "-DCRYSTALLESS" sawed_XIAO_m0_nbl.build.extra_flags სტრიქონს. ეს შეატყობინებს შემდგენელს გამოიყენოს შიდა ოსცილატორი.
  3. ხელახლა შეადგინეთ კოდი.
  4. ხელახლა გაუშვით MCU.
  5. დარწმუნდით, რომ გაშვების დრო საკმაოდ სწრაფია ოსცილოსკოპის გამოყენებით.

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

გირჩევთ: