Სარჩევი:

WiBot: 10 ნაბიჯი (სურათებით)
WiBot: 10 ნაბიჯი (სურათებით)

ვიდეო: WiBot: 10 ნაბიჯი (სურათებით)

ვიდეო: WiBot: 10 ნაბიჯი (სურათებით)
ვიდეო: განსაზღვრული და განუსაზღვრელი არტიკლები / Definite and indefinite articles in Italian [SUB ENG] 2024, სექტემბერი
Anonim
WiBot
WiBot

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

  • 1 ZYBO განვითარების საბჭო
  • 1 უკაბელო როუტერი TL-WR802N
  • 1 ჩრდილის შასი
  • 2 65 მმ ბორბლები
  • 2 140rpm გადაცემათა კოლოფი
  • 2 ბორბლის კოდირება
  • 1 HC-SR04 ულტრაბგერითი სენსორი
  • 1 BSS138 ლოგიკური დონის გადამყვანი
  • 1 L293 H-Bridge საავტომობილო მძღოლი
  • 1 12V 5V DC/DC კონვერტორი
  • 1 2200 mAh LiPo ბატარეა
  • 1 Ethernet კაბელი
  • 1 USB Micro-B კაბელი
  • 1 ქალი XT60 კონექტორი
  • 2 მამაკაცი-ქალი მხტუნავი მავთული
  • 30 კაცი-მამაკაცი მხტუნავი მავთული
  • 2 10kΩ რეზისტორი
  • 1 პურის დაფა

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

  • Xilinx Vivado Design Suite 2018.2
  • დიგილენტი ადეპტი 2.19.2
  • FreeRTOS 10.1.1
  • Java SE განვითარების ნაკრები 8.191

ნაბიჯი 1: შეიკრიბეთ რობოტის შასი

შეიკრიბეთ რობოტი შასი
შეიკრიბეთ რობოტი შასი
შეიკრიბეთ რობოტი შასი
შეიკრიბეთ რობოტი შასი
შეიკრიბეთ რობოტი შასი
შეიკრიბეთ რობოტი შასი

შეიკრიბეთ ჩრდილის შასი და მიამაგრეთ გადაცემათა კოლოფი და კოდირები ქვედა ჩარჩოზე. ZYBO, breadboard და ულტრაბგერითი სენსორი შეიძლება დამონტაჟდეს იმ ნაწილებით, რომლებიც შეიძლება 3D დაბეჭდოთ და დააფიქსიროთ შასის ჩამორჩენისა და ორმხრივი ლენტის გამოყენებით. ბატარეა უნდა იყოს დამონტაჟებული რობოტის უკანა მხარეს და სასურველია ზედა და ზედა ნაწილებს შორის ქვედა ჩარჩოები. დააინსტალირეთ როუტერი ZYBO– სთან ახლოს და DC/DC გადამყვანი პურის დაფასთან ახლოს. ბოლოში მიამაგრეთ ბორბლები გადაცემათა კოლოფზე.

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

მავთულის ელექტრონიკა
მავთულის ელექტრონიკა
მავთულის ელექტრონიკა
მავთულის ელექტრონიკა
მავთულის ელექტრონიკა
მავთულის ელექტრონიკა

შეაერთეთ DC/DC გადამყვანის შემავალი და გამომავალი პურის დაფაზე ორ დენის რელსზე, შესაბამისად. ეს იქნება სისტემისთვის 12V და 5V წყაროები. შეაერთეთ ZYBO 5V რკინიგზაზე, როგორც ეს ნაჩვენებია სურათზე. გამოიყენეთ USB Micro-B მიწოდების კაბელი როუტერის დასაკავშირებლად 5V სარკინიგზო გზასთანაც. XT60 კაბელი უნდა დაერთოს 12V სარკინიგზო მაგისტრალს. არ ჩართოთ ბატარეა სანამ დანარჩენი ელექტრონიკა სწორად არ არის მიერთებული. ულტრაბგერითი სენსორი უნდა იყოს მიერთებული 5V სარკინიგზო ხაზზე. შექმენით 3.3V სარკინიგზო გზა დაფაზე Pmod პორტის JC პინ 6 -ის გამოყენებით ZYBO- ზე. ლოგიკური კონვერტორის მაღალი ძაბვის შეყვანა უნდა იყოს მიერთებული 5V სარკინიგზო მაგისტრალთან, ხოლო ლოგიკური გადამყვანის დაბალი ძაბვის შეყვანა უნდა იყოს დაკავშირებული 3.3V სარკინიგზო ხაზთან. ძრავის კოდირებით 3.3V სარკინიგზო ხაზზე. შეაერთეთ ძრავის მძღოლის VCC1 5V სარკინიგზო ხაზთან და შეაერთეთ VCC2 12V სარკინიგზო ხაზთან. მიამაგრეთ ყველა EN ქინძისთავები 5V– ზე და დაასაბუთეთ ყველა GND ქინძისთავები.

შეაერთეთ ულტრაბგერითი სენსორის TRIG და ECHO ქინძისთავები შესაბამისად ლოგიკური კონვერტორის HV1 და HV2. LV1 უნდა იყოს მიერთებული JC4– ზე და LV2 უნდა იყოს მიერთებული JC3– ზე. იხილეთ სქემა Pmod pinouts– ისთვის. შეაერთეთ ძრავები ძრავის მძღოლთან. Y1 უნდა იყოს დაკავშირებული მარჯვენა ძრავის პოზიტიურ ტერმინალთან და Y2 უნდა იყოს დაკავშირებული მარჯვენა ძრავის უარყოფით ტერმინალთან. ანალოგიურად, Y3 უნდა იყოს დაკავშირებული მარცხენა ძრავის პოზიტიურ ტერმინალთან და Y4 უნდა იყოს დაკავშირებული მარცხენა ძრავის უარყოფით ტერმინალთან. A1, A2, A3 და A4 უნდა იყოს ასახული შესაბამისად JB2, JB1, JB4 და JB3 შესაბამისად. იხილეთ სქემატური პინ ნომრები. მავთულის JC2 მარჯვნივ კოდირების და JC1 მარცხენა კოდირების. დარწმუნდით, რომ ამწევ სიგნალებს იყენებენ 3.3V სარკინიგზო მაგისტრალზე. დაბოლოს, გამოიყენეთ Ethernet კაბელი ZYBO როუტერთან დასაკავშირებლად.

ნაბიჯი 3: შექმენით ბლოკის დიაგრამა Vivado– ში

შექმენით ბლოკის დიაგრამა Vivado– ში
შექმენით ბლოკის დიაგრამა Vivado– ში

შექმენით ახალი RTL პროექტი Vivado– ში. დარწმუნდით, რომ ამ დროისთვის არ არის მითითებული რაიმე წყარო. მოძებნეთ "xc7z010clg400-1" და დააჭირეთ დასრულებას. ჩამოტვირთეთ encoder_driver.sv და ultrasonic_driver.sv. განათავსეთ ისინი საკუთარ საქაღალდეებში. გახსენით IP პაკეტი "ინსტრუმენტები" და შეარჩიეთ მითითებული დირექტორია. ჩასვით გზა საქაღალდეში, რომელიც შეიცავს კოდირების დრაივერს და დააჭირეთ "შემდეგი". დააჭირეთ "პაკეტის IP" და გაიმეორეთ პროცესები ულტრაბგერითი სენსორის დრაივერისთვის. ამის შემდეგ, გადადით საცავის მენეჯერთან IP ქვეგანყოფილების პარამეტრების მენიუში. დაამატეთ ბილიკები დრაივერის საქაღალდეებში და დააწკაპუნეთ მიმართვაზე, რომ შეიტანოთ ისინი IP ბიბლიოთეკაში.

შექმენით ახალი ბლოკ დიაგრამა და დაამატეთ "ZYNQ7 დამუშავების სისტემა". ორჯერ დააწკაპუნეთ ბლოკზე და შემოიტანეთ მოწოდებული ZYBO_zynq_def.xml ფაილი. "MIO კონფიგურაციის" ქვეშ ჩართეთ ტაიმერი 0 და GPIO MIO. დააჭირეთ ღილაკს "OK" კონფიგურაციის შესანახად. დაამატეთ 3 "AXI GPIO" ბლოკი და 4 "AXI ტაიმერი" ბლოკი. გაუშვით ბლოკის ავტომატიზაცია, რასაც მოჰყვება კავშირის ავტომატიზაცია S_AXI– სთვის. ორჯერ დააწკაპუნეთ GPIO ბლოკებზე მათი კონფიგურაციისთვის. ერთი ბლოკი უნდა იყოს ორმაგი არხი 4 ბიტიანი შეყვანისა და 4 ბიტიანი გამომავალით. გააკეთეთ ეს კავშირები გარეგანი და დაასახელეთ SW შეყვანისთვის და LED გამომავალი. მეორე ბლოკი ასევე უნდა იყოს ორმაგი არხი 2 32 ბიტიანი შესასვლელით. ბოლო GPIO ბლოკი იქნება ერთჯერადი 32 ბიტიანი შეყვანა. გააკეთეთ pwm0 გამომავალი თითოეული ტაიმერის ბლოკიდან გარედან. მონიშნეთ ისინი PWM0, PWM1, PWM2 და PWM3.

დაამატეთ კოდირების დრაივერი ბლოკ დიაგრამაში და დააკავშირეთ CLK FCLK_CLK0- თან. შეაერთეთ OD0 და OD1 მეორე GPIO ბლოკის შესასვლელ არხებთან. გააკეთეთ ENC გარეგანი და გადაარქვით ENC_0 ENC. დაამატეთ ულტრაბგერითი სენსორის ბლოკი და შეაერთეთ CLK FCLK_CLK0- თან. გააკეთეთ TRIG და ECHO გარეგანი და გადაარქვით TRIG_0 TRIG და ECHO_0 ECHO. შეაერთეთ RF მესამე GPIO ბლოკთან. მითითებისათვის იხილეთ მოწოდებული ბლოკ დიაგრამა.

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

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

გადადით "ფაილში", რათა ატვირთოთ ტექნიკა Vivado SDK- ში. დარწმუნდით, რომ ჩართეთ ბიტ სტრიმი. შემოიტანეთ RTOSDemo პროექტი "CORTEX_A9_Zynq_ZC702" - ში. ის განთავსდება FreeRTOS ინსტალაციის დირექტორიაში. შექმენით დაფის მხარდაჭერის ახალი პაკეტი, შეარჩიეთ lwip202 ბიბლიოთეკა. შეცვალეთ მითითებული BSP RTOSDemo პროექტში BSP, რომელიც თქვენ შექმენით*.

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

ნაბიჯი 5: შეცვალეთ დემო პროგრამა

შექმენით ახალი საქაღალდე სახელწოდებით "მძღოლები" RTOSDemo- ს დირექტორიაში "src". დააკოპირეთ მოწოდებული gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h და motor.c ფაილები "მძღოლების" დირექტორიაში.

გახსენით main.c და დააყენეთ mainSELECTED_APPLICATION 2. შეცვალეთ main_lwIP.c ქვეშ "lwIP_Demo" განახლებული ვერსიით. BasicSocketCommandServer.c ქვეშ "lwIP_Demo/apps/BasicSocketCommandServer" ასევე უნდა განახლდეს ახალი ვერსიით. დაბოლოს, გადადით "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" და შეცვალეთ Sample-CLI-commands.c მოწოდებული ვერსიით. შექმენით პროექტი და დარწმუნდით, რომ ყველაფერი წარმატებით შეიკრიბება.

ნაბიჯი 6: Flash Firmware to QSPI

Flash Firmware to QSPI
Flash Firmware to QSPI
Flash Firmware to QSPI
Flash Firmware to QSPI
Flash Firmware to QSPI
Flash Firmware to QSPI

შექმენით ახალი განაცხადის პროექტი სახელწოდებით "FSBL" "Zynq FSBL" შაბლონის გამოყენებით. FSBL პროექტის შედგენის შემდეგ შექმენით RTOSDemo პროექტის ჩატვირთვის სურათი. დარწმუნდით, რომ "FSBL/Debug/FSBL.elf" არჩეულია ჩატვირთვის სახით "ჩატვირთვის სურათის ტიხრები". ხელით დაამატეთ გზა ამ ფაილს, თუ ის არ არის ჩამოთვლილი.

გადაიტანეთ JP5 მხტუნავი ZYBO- ზე "JTAG" - ზე. გამოიყენეთ USB Micro-B კაბელი თქვენი კომპიუტერის ZYBO– ს დასაკავშირებლად. შეაერთეთ ბატარეა და ჩართეთ ZYBO. გაუშვით Adept და დარწმუნდით, რომ ZYBO სწორად არის იდენტიფიცირებული კომპიუტერის მიერ. დააწკაპუნეთ "პროგრამის Flash" Vivado SDK– ში და მიუთითეთ გზები BOOT.bin ფაილში RTOSDemo– ში და FSBL.elf ფაილში FSBL– ში. დარწმუნდით, რომ აირჩიეთ "გადამოწმების შემდეგ flash" სანამ დააჭირეთ "პროგრამას". უყურეთ კონსოლს, რათა დარწმუნდეთ, რომ მოციმციმე ოპერაცია წარმატებით დასრულდა. ამის შემდეგ გამორთეთ ZYBO და გათიშეთ USB კაბელი. გადაიტანეთ JP5 მხტუნავი "QSPI" - ში.

ნაბიჯი 7: უკაბელო წვდომის წერტილის კონფიგურაცია

ბატარეა ჯერ კიდევ ჩართულია, დაუკავშირდით როუტერის Wi-Fi ქსელს. ნაგულისხმევი SSID და პაროლი უნდა იყოს როუტერის ბოლოში. ამის შემდეგ გადადით https://tplinkwifi.net და შედით მომხმარებლის სახელისა და პაროლის "admin" გამოყენებით. გაუშვით სწრაფი დაყენების ოსტატი როუტერის კონფიგურაციისთვის წვდომის წერტილის რეჟიმში DHCP ჩართული. დარწმუნდით, რომ განაახლეთ მოწყობილობის ნაგულისხმევი მომხმარებლის სახელი და პაროლი. როუტერი ავტომატურად უნდა გადატვირთოთ წვდომის წერტილის რეჟიმში დასრულების შემდეგ.

ჩართეთ ZYBO და დაუკავშირდით როუტერს თქვენს მიერ დანიშნული SSID– ის გამოყენებით. სავარაუდოდ, როუტერი გამოჩნდება IP მისამართზე 192.168.0.100 ან 192.160.0.101. ZYBO გადაეცემა როუტერს არა აქვს მისამართი. როუტერის IP მისამართის სწრაფად დასადგენად, შეგიძლიათ გაუშვათ "ipconfig" ბრძანების ფანჯრიდან ფანჯრებში ან "ifconfig" ტერმინალიდან Linux ან MacOS. თუ თქვენ ჯერ კიდევ ჩართული ხართ როუტერთან, ნახავთ მის IP მისამართს, რომელიც გამოჩნდება უკაბელო ინტერფეისის გვერდით. გამოიყენეთ ეს ინფორმაცია ZYBO– ს IP მისამართის დასადგენად. ZYBO– ს IP მისამართის დასადასტურებლად შეგიძლიათ ან დააკონკრეტოთ იგი ბრძანების სტრიქონიდან ან დაუკავშიროთ მას ტელნეტის საშუალებით.

ნაბიჯი 8: გაუშვით Java პროგრამა

გაუშვით Java პროგრამა
გაუშვით Java პროგრამა

ჩამოტვირთეთ RobotClient.java და შეადგინეთ ფაილი ბრძანების გამოყენებით "javac RobotClient.java" ბრძანების სტრიქონიდან. გაუშვით ბრძანება "java RobotClient", სადაც "ip_address" არის ZYBO- ს IP მისამართი. კონტროლის GUI გამოჩნდება თუ წარმატებული კავშირი დამყარდება კომპიუტერსა და ZYBO- ს შორის. ფანჯრის ფოკუსირების შემდეგ, რობოტი უნდა იყოს კონტროლირებადი კლავიატურის ისრის ღილაკების გამოყენებით. დააჭირეთ გაქცევის ღილაკს სესიის დასასრულებლად და რობოტისგან გათიშვის მიზნით.

GUI მონიშნავს დაჭერილ კლავიშებს და აჩვენებს ძრავის გამომუშავებას ზედა მარჯვნივ. მანძილი მეტრი მარცხნივ ავსებს ბარს ყოველ 2 მეტრში მაქსიმუმ 10 მეტრამდე.

ნაბიჯი 9: კალიბრაცია Rangefinder

გადამრთველები ZYBO– ზე შეიძლება გამოყენებულ იქნას საბორტო დიაპაზონის კონფიგურაციისთვის. მინიმალური გამოვლენის მანძილი d მოცემულია გადამრთველის შეყვანის ფუნქციის მიხედვით:

d = 50i + 250

შეყვანის რიცხვი შეიძლება განსხვავდებოდეს 0 -დან 15 -მდე. ეს ითარგმნება მანძილიდან 0.25 მეტრიდან 1 მეტრამდე. მინიმალური მანძილით, პირველი LED დაიწყებს ციმციმებას. აქტიური LED- ების რაოდენობა პროპორციულია ობიექტის სიახლოვეს.

ნაბიჯი 10: ხელმისაწვდომობა

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

გირჩევთ: