Სარჩევი:

ააშენეთ მანქანა მაყურებელი: 9 ნაბიჯი
ააშენეთ მანქანა მაყურებელი: 9 ნაბიჯი

ვიდეო: ააშენეთ მანქანა მაყურებელი: 9 ნაბიჯი

ვიდეო: ააშენეთ მანქანა მაყურებელი: 9 ნაბიჯი
ვიდეო: როგორ დავაკარგვინე გოგოს ქალიშვილობა- პირადი ისტორია.#2 2024, ივლისი
Anonim
ააშენეთ მანქანების დამკვირვებელი
ააშენეთ მანქანების დამკვირვებელი
ააშენეთ მანქანების დამკვირვებელი
ააშენეთ მანქანების დამკვირვებელი

ამ პროექტის საწყისი წერტილი იყო კონკრეტულ პროექტზე მუშაობა მიკროკონტროლერის დაფების შესახებ რამდენიმე რამის შესასწავლად.

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

მე დავასრულე არქიტექტურა, რომელიც ნაჩვენებია ზემოთ სურათზე. შესრულების სამუშაო პროცესი შეიძლება შეჯამდეს შემდეგნაირად:

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

ნაბიჯი 1: საჭირო ნაწილები

შემდეგი სია აჯამებს ყველა საჭირო ნივთს:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 გაფართოების ფარი (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 XBee S1 მოდული (https://www.adafruit.com/product/128).
  • 1 XBee explorer dongle (https://www.sparkfun.com/products/11697).
  • 2 უწყვეტი servo ძრავა 5VDC დამაგრებითი აქსესუარებით (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC კვების ბლოკი.
  • 3 ები.
  • 3 რეზისტორი 220 Ohm.
  • თერმო მოსახვევი ყდის.
  • 1 დაჭერით ღილაკი.
  • 10KΩ გაიყვანეთ რეზისტორი ამოწევისთვის.
  • 100nF კონდენსატორი.
  • ელექტრო მავთულები.
  • ზოლის დაფა (ღილაკის დასაყენებლად)
  • 5 მმ ხე (50x50 სმ).
  • ხის ჯოხი კვადრატული მონაკვეთი 5x5 მმ (1 მ).
  • მუყაო
  • 10 X ხრახნი 2 მმ დიამეტრით.
  • 4 ხრახნიანი დიამეტრი 5 მმ.
  • ძლიერი მაგნიტი.
  • გარდამტეხი მოდული. მე გამოვიყენე მოციმციმე შუქის შიდა მოძრავი ნაწილი. შეგიძლია დადო რაც გინდა თქვენ უბრალოდ უნდა იზრუნოთ იმაზე, რომ 2 მობილური ნაწილი თავისუფლად მოძრაობდეს ერთმანეთთან შეხების გარეშე.

ნაბიჯი 2: ყუთის მშენებლობა

ყუთის მშენებლობა
ყუთის მშენებლობა

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

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

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

ნაბიჯი 3: Arduino დაყენება

არდუინოს დაყენება
არდუინოს დაყენება

Arduino გაფართოების დაფასთან დაკავშირებული ნივთებია:

  • D2 PIN: დააჭირეთ ღილაკს.
  • D4 PIN: LED, რომ თქვას სისტემა ჩართულია.
  • D5 PIN: LED, რომ ვთქვათ ჩვენ ვასრულებთ ციკლს.
  • D6 PIN: LED იმის მანიშნებელია, რომ მოწყობილობამ მიიღო ახალი შეტყობინება.
  • D9 PIN: PWM პულსის სიგნალი სერვომოტორზე, რომელიც გიროს ამუშავებს.
  • D10 PIN: PWM პულსის სიგნალი დრომოზე მომუშავე სერვომოტორზე.
  • XBee Socket: ერთი ZigBee მოდული.

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

LED- ებისთვის, რეზისტორი და მავთულები პირდაპირ შედუღებულია მასზე (იზრუნეთ პოლარობაზე). შემდეგ ყველაფერი შეფუთულია თერმომობრუნებული ყდის შიგნით.

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

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

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

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

ნაბიჯი 4: პროგრამული უზრუნველყოფა - XCTU

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

როგორც ზემოთ აღვნიშნეთ, ორი XBee მოწყობილობა უნდა იყოს კონფიგურირებული, რომ ერთად ისაუბრონ. ამისათვის თქვენ უნდა გამოიყენოთ გამოყოფილი X-CTU პროგრამული უზრუნველყოფა DIGI– დან. თქვენ უნდა გააკეთოთ ეს კონფიგურაციის ნაბიჯი მხოლოდ ერთხელ. გთხოვთ დაიცვას xbee_configuration.pdf ფაილში აღწერილი პროცედურა.

კონფიგურაციის დასრულების შემდეგ შეგიძლიათ დააკავშიროთ თითოეული მოდული მათ სოკეტზე. ერთი USB/სერიული გადამყვანზე და ერთი Arduino გაფართოების დაფაზე.

USB/სერიული გადამყვანი ავტომატურად უნდა იყოს აღიარებული Windows 10. თუ ეს ასე არ არის, შეიძლება დაგჭირდეთ დრაივერის ხელით დაყენება

Შენიშვნა:

XBee მოდულების გამოყენება ძირითადი სერიული კომუნიკაციისთვის ცოტა ზედმეტია. იმ დროს, როდესაც მე დავიწყე პროექტი, მე ვერ აღმოვაჩინე მარტივი სერიული საკომუნიკაციო მოწყობილობები, ადვილად გამოსაყენებელი Windows 10 -ში (დრაივერის საკითხები). ეს ასევე იყო შესაძლებლობა ვისწავლოთ რამდენიმე რამ https://www.zigbee.org– ის შესახებ

ნაბიჯი 5: პროგრამული უზრუნველყოფა - Arduino Sketch

პროგრამული უზრუნველყოფა - Arduino Sketch
პროგრამული უზრუნველყოფა - Arduino Sketch

Arduino– ს დასაპროგრამებლად ჩვენ ვიყენებთ IDE– ს, რომელიც ხელმისაწვდომია ოფიციალური ვებ – გვერდიდან.

პროგრამის ლოგიკა საკმაოდ მარტივია, ის უბრალოდ უსმენს დაფის ნაგულისხმევ სერიულ პორტს ერთ ასოზე (‘a’, ‘b’,…). თუ მიღებული სიმბოლო ემთხვევა ცნობილ ბრძანებას, მაშინ ქვე-ფუნქცია ასრულებს შესაბამის თანმიმდევრობას.

ორი ძირითადი სასარგებლო ბრძანება არის წარმატების ანიმაცია (‘a’) და შეცდომის ანიმაცია (‘b’).

იმისათვის, რომ შეძლოთ ყუთში ცოტათი თამაში (ან გამართვა) არის დამატებითი ბრძანებები, რომელთა შესრულებაც შესაძლებელია. Ისინი არიან:

  • ‘O’: აიძულეთ ON LED იყოს ჩართული
  • "P": აიძულეთ ჩართული LED იყოს გამორთული
  • "Q": აიძულეთ ახალი შეტყობინების LED იყოს ჩართული
  • ‘R’: აიძულეთ ახალი შეტყობინების LED იყოს გამორთული
  • ‘S’: აიძულეთ Cycle LED იყოს ჩართული
  • 'T': აიძულეთ Cycle LED იყოს გამორთული
  • ‘U’: გააქტიურეთ გიროსკოვის სერვომოტორი
  • "V": დროშის სერვომოტორების გააქტიურება.

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

Arduino ესკიზის კოდი არის ერთ ფაილში bsldevice.ino. შეგიძლიათ პირდაპირ ატვირთოთ IDE– ს გამოყენებით.

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

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

დესკტოპის პროგრამის მიზანია მონიტორინგი გაუწიოს Microsoft Azure DevOps (ადრე VSTS) ვებსაიტს და გამოავლინოს თუ არა Build Definition წარმატებული ან შეცდომაში შესული. მშენებლობის დასრულებისთანავე, დესკტოპის პროგრამა განსაზღვრავს მშენებლობის სტატუსს და აგზავნის შესაბამის ბრძანებას (‘a’ ან ‘b’) სერიულ პორტში (COMx).

პროგრამის გაშვების შემდეგ პირველი მოქმედება არის სწორი კომ პორტის არჩევა, რომელზეც ZigBee მოდული არის დაკავშირებული. პორტის დასადგენად შეგიძლიათ გამოიყენოთ Windows მოწყობილობის მენეჯერი (პორტების ქვეშ (განყოფილება COM & LPT)). Azure DevOps– თან კავშირი ხდება ავტომატურად გაშვებისას, მიმდინარე მომხმარებლის რწმუნებათა სიგელების გამოყენებით. თქვენ ასევე შეგიძლიათ გაგზავნოთ ნებისმიერი წინასწარ განსაზღვრული ბრძანება ხელით კომბინირებული ყუთის გამოყენებით მარჯვნივ.

ყველა წყარო შეიქმნა Visual Studio 2017 პროფესიული გამოცემით. ის მოითხოვს. NET Framework 4.6.1. ჩარჩოს ეს ვერსია სასურველია VSTS ვებსაიტთან დაკავშირების/ავტორიზაციის გასაადვილებლად.

გამოყენება:

  • ჩამოტვირთეთ არქივი bslwatcher_sources.zip.
  • ამოიღეთ იგი თქვენს დისკზე.
  • წაიკითხეთ how_to_build.txt ფაილი დეტალების შესაქმნელად.

ნაბიჯი 7: პირველი დაწყება

ყუთის დაწყებისას ორი ძირითადი პუნქტია გათვალისწინებული:

1- არ არსებობს საშუალება, რომ სისტემამ თვითონ იცოდეს სად არის დროშები. სისტემა ვარაუდობს, რომ გაშვებისას მწვანე დროშა აღმართულია.

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

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

ნაბიჯი 8: დასკვნა

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

ვინაიდან "ინტელექტი" არის დესკტოპის პროგრამაში, შეგიძლიათ გამოიყენოთ ყუთი ნებისმიერი სხვა პროგრამული უზრუნველყოფის ან პროცესის მონიტორინგისთვის (ფოსტა, ტემპერატურის სენსორი …). თქვენ უბრალოდ უნდა გქონდეთ წვდომა სხვა API– ზე და გადაწყვიტოთ რა არის „კარგი“ან რა „ცუდი“. თუ არ იყენებთ წითელ და მწვანე კონვენციის ფერებს, შეგიძლიათ შეცვალოთ "შეტყობინების" მნიშვნელობაც.

გაუმჯობესება შეიძლება ასევე მოხდეს ყუთში:

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

იმედია თქვენთვის საინტერესო აღმოჩნდა ეს პროექტი.

მადლობა რომ აქამდე წაიკითხე.

ნაბიჯი 9: დანართი

ზოგიერთი ბმული, რომელიც გამოიყენება ამ პროექტის შესაქმნელად:

არდუინოს ვებ გვერდი:

DIGI ვებ გვერდი:

XCTU პროგრამული უზრუნველყოფა:

ზოგიერთი ინფორმაცია გამოიყენება სხვებისგან:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (ფრანგულად)

jeromeabel.net/

MSDN ვებ გვერდი ზოგადად:

docs.microsoft.com/en-us/dotnet/framework/…

გირჩევთ: