Სარჩევი:

Servo Squirter - USB წყლის იარაღი: 5 ნაბიჯი
Servo Squirter - USB წყლის იარაღი: 5 ნაბიჯი

ვიდეო: Servo Squirter - USB წყლის იარაღი: 5 ნაბიჯი

ვიდეო: Servo Squirter - USB წყლის იარაღი: 5 ნაბიჯი
ვიდეო: PWM controlled pump 2024, ნოემბერი
Anonim
Servo Squirter - USB წყლის იარაღი
Servo Squirter - USB წყლის იარაღი

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

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

შეაგროვეთ მასალები
შეაგროვეთ მასალები
შეაგროვეთ მასალები
შეაგროვეთ მასალები
შეაგროვეთ მასალები
შეაგროვეთ მასალები

ეს პროექტი დაფუძნებულია მიკროკონტროლერებზე. USB NerdKit- ში შემავალი ATmega168 მიკროკონტროლერის გარდა. ამ პროექტისთვის ჩვენ გამოვიყენეთ შემდეგი: 1 ჰობი სერვო, Hitec HS-501 დაბალი ძაბვის დგუში წყლის ტუმბო 1 მცირე n არხის MOSFET, 2N7000

ნაბიჯი 2: შეიკრიბეთ წრე

შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე

ჩვენი წრედის პირველი ნაწილი მხოლოდ სერვოს უკავშირდება. ეს აქ მარტივია: ერთი მავთული მიკროკონტროლიდან სერვოსკენ. არსებობს რამოდენიმე განსხვავებული ფერის მარკირება მწარმოებლის მიხედვით, ასე რომ შეამოწმეთ სანამ ამას ცდილობთ. NerdKits breadboard– ზე ServoSquirter სქემის სქემატური ფოტო მეორე წრედი მიკროკონტროლერს საშუალებას აძლევს ჩართოს და გამორთოს ტუმბოს ძრავა. ATmega168 ჩიპი თავისთავად მხოლოდ 40mA მაქსიმუმს იძლევა ნებისმიერ პინში ან მის გარეთ, მაგრამ ჩვენი ტუმბო მოითხოვს 1000mA- სთან უფრო ახლოს! ამ დიდი დატვირთვის გასაკონტროლებლად, ჩვენ ავირჩიეთ უფრო დიდი ტრანზისტორი, 2N7000. პირველ რიგში ჩვენ ავუხსნით MOSFET– ების (ლითონის ოქსიდის ნახევარგამტარული ველის ეფექტის ტრანზისტორების) გამოყენების პრინციპებს: გამტარის ძაბვის წყაროზე მაღლა დაყენება, ჩვენ შეგვიძლია დავუშვათ დენის გადინება დრენაჟიდან წყაროზე. 2N7000 მონაცემთა ცხრილიდან ჩვენ ამოვიღეთ სურათი 1, რომელიც აჩვენებს კავშირს გადინების დენსა და დრენაჟის წყაროს ძაბვას შორის კარიბჭის წყაროს ძაბვის სხვადასხვა პარამეტრებისთვის. არსებობს რამდენიმე მნიშვნელოვანი რამ, რაც შეგიძლიათ გაიგოთ ამ გრაფიკიდან: 1. დაახლოებით 3.0 ვოლტის ქვემოთ მყოფი VGS– ისთვის, დენის გადინება არ არის დაშვებული. ეს არის გამორთული მდგომარეობა, რომელსაც ასევე უწოდებენ "გათიშვას". 2. მცირე VDS– სთვის, მრუდი უხეშად გამოიყურება ხაზოვანი წარმოშობის გავლით - რაც იმას ნიშნავს, რომ ის ელექტრულად „ჰგავს“რეზისტორს. ეკვივალენტური წინააღმდეგობა არის მრუდის შებრუნებული დახრილობა. MOSFET ოპერაციის ამ რეგიონს ეწოდება "ტრიოდი". 3. უფრო დიდი VDS– სთვის დენის მაქსიმალური დონე მიღწეულია. ამას ჰქვია "გაჯერება". 4. როგორც ჩვენ ვზრდით VGS- ს, უფრო მეტი დენის დაშვება შესაძლებელია როგორც ტრიოდის, ისე გაჯერების რეჟიმში. ახლა კი თქვენ ფაქტობრივად შეიტყვეთ MOSFET- ის ოპერაციის სამივე რეჟიმის შესახებ: გათიშვა, ტრიოდი და გაჯერება. რადგან ჩვენი კარიბჭის კონტროლი არის ციფრული (+5 ან 0), ჩვენ გვაინტერესებს მხოლოდ ყვითელი ხაზით მონიშნული მრუდი, VGS = 5V. ჩვეულებრივ, MOSFET- ის გადამრთველად გამოყენება ჩვეულებრივ მოიცავს ოპერაციის ტრიოდის რეჟიმს, რადგან MOSFET ხარჯავს ენერგიას PD = ID*VDS, ხოლო კარგმა გადამრთველმა უნდა გაანადგუროს მცირე ენერგია თავად გადამრთველში. ამ შემთხვევაში, ჩვენ საქმე გვაქვს ძრავასთან და ძრავები, როგორც წესი, საჭიროებენ უამრავ დენს (მცირე ძაბვის ვარდნით), როდესაც ისინი პირველად იწყებენ მუშაობას. ასე რომ, პირველი მეორე ან ორი წუთის განმავლობაში, MOSFET იმუშავებს მაღალი VDS– ით და შემოიფარგლება მისი მაქსიმალური დენით - დაახლოებით 800mA წითელი დაშლილი ხაზისგან, რომელიც ჩვენ შევადგინეთ მონაცემთა ფურცელზე. ჩვენ აღმოვაჩინეთ, რომ ეს არ იყო საკმარისი ტუმბოს დასაწყებად, ამიტომ ჩვენ გამოვიყენეთ პატარა ხრიკი და პარალელურად დავაყენეთ ორი MOSFET. ამ გზით, ისინი იზიარებენ მიმდინარეობას და შეუძლიათ ეფექტურად ჩაიძირონ დაახლოებით 1600mA ერთად. ასევე ტუმბოს მაღალი სიმძლავრის მოთხოვნების გამო, ჩვენ გამოვიყენეთ კედლის ტრანსფორმატორი უფრო მაღალი დენის გამომუშავებით. თუ თქვენ გაქვთ კედლის ტრანსფორმატორი 5V- ზე მეტი გამომუშავებით - შესაძლოა 9V ან 12V - მაშინ თქვენ დაახლ

ნაბიჯი 3: დააყენეთ PWM MCU– ზე

დააყენეთ PWM MCU– ზე
დააყენეთ PWM MCU– ზე
დააყენეთ PWM MCU– ზე
დააყენეთ PWM MCU– ზე
დააყენეთ PWM MCU– ზე
დააყენეთ PWM MCU– ზე

PWM რეგისტრები და გამოთვლები ვიდეოში ჩვენ ვსაუბრობთ ქრონომეტრის/მრიცხველის მოდულის მიერ გამოყენებულ ორ დონეზე: ზედა მნიშვნელობაზე და შედარებაზე. ორივე მათგანი მნიშვნელოვანია თქვენთვის სასურველი PWM სიგნალის წარმოქმნაში. მაგრამ თქვენი ATmega168– ის PWM გამომუშავების გასააქტიურებლად, პირველ რიგში, ჩვენ უნდა შევქმნათ რამდენიმე რეგისტრი. პირველ რიგში, ჩვენ ვირჩევთ სწრაფ PWM რეჟიმს OCR1A- ით, როგორც მთავარი მნიშვნელობა, რაც საშუალებას გვაძლევს თვითნებურად დავაყენოთ რამდენად ხშირად უნდა დავიწყოთ ახალი პულსი. შემდეგ, ჩვენ დავაყენეთ საათი 8-ის წინასწარი გაყოფით, რაც იმას ნიშნავს, რომ მრიცხველი გაიზრდება 1 -ით ყოველ 8/(14745600 ჰც) = 542 ნანოწამი. ვინაიდან ამ ტაიმერისთვის გვაქვს 16 ბიტიანი რეგისტრები, ეს ნიშნავს, რომ ჩვენ შეგვიძლია განვათავსოთ ჩვენი საერთო სიგნალის პერიოდი 65536*542ns = 36 მილიწამი. თუ ჩვენ გამოვიყენებთ უფრო დიდ გაყოფის რიცხვს, ჩვენ შეგვიძლია გავზარდოთ ჩვენი პულსი უფრო შორს (რაც არ უწყობს ხელს ამ სიტუაციაში) და ჩვენ დავკარგავთ გარჩევადობას. თუ ჩვენ გამოვიყენებთ უფრო მცირე განყოფილების რიცხვს (მაგალითად 1), ჩვენ ვერ შევძლებთ ჩვენი იმპულსების დაშორებას მინიმუმ 16 მილიწამში, როგორც ამას ჩვენი სერვო მოელის. საბოლოოდ, ჩვენ დავაყენეთ შედარების გამომავალი რეჟიმი "არაინვერსიული" PWM- ისთვის გამომავალი, რომელიც აღწერილია ჩვენს ვიდეოში. ჩვენ ასევე დავაყენეთ pin PB2, როგორც გამომავალი პინი-აქ არ არის ნაჩვენები, მაგრამ ის არის კოდში. დააწკაპუნეთ ამ კადრების გასადიდებლად ATmega168 ცხრილის 132-134 გვერდებიდან, ჩვენი რეგისტრაციის მნიშვნელობის შერჩევით:

ნაბიჯი 4: დაპროგრამეთ მიკროკონტროლერი

ახლა დროა რეალურად დაპროგრამდეს MCU. სრული წყაროს კოდი მოცემულია ჩვენს ვებგვერდზე https://www.nerdkits.com/videos/servosquirter კოდი პირველად ადგენს PWM სერვოს მართვას. კოდი მაშინ უბრალოდ ზის გარკვეული დროის მარყუჟში და ელოდება მომხმარებლის შეყვანას. სიმბოლოები 1 და 0 ჩართეთ ან გამორთეთ MCU პინი, რომელიც დაკავშირებულია ტუმბოს ტრანზისტორთან. ეს ჩართავს და გამორთავს ტუმბოს, რაც მოგვცემს სურვილისამებრ გასროლის შესაძლებლობას. კოდი ასევე პასუხობს '[' და ']' კლავიშებს, ეს გასაღებები გაზრდის ან შეამცირებს PWM პინზე შედარების მნიშვნელობას, რაც გამოიწვევს სერვოს ძრავა პოზიციის შესაცვლელად. ეს გაძლევთ შესაძლებლობას მიზანში ისროლოთ სროლის წინ.

ნაბიჯი 5: სერიული პორტის კომუნიკაციები

სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები
სერიული პორტის კომუნიკაციები

ბოლო ნაბიჯი არის კომპიუტერის დაყენება, ასე რომ თქვენ შეგიძლიათ ბრძანებები გაუგზავნოთ მიკროკონტროლერს. NerdKit– ში ჩვენ ვიყენებთ სერიულ კაბელს ბრძანებების და ინფორმაციის კომპიუტერში გასაგზავნად. შესაძლებელია დაიწეროს მარტივი პროგრამები უმეტეს პროგრამირების ენებზე, რომლებსაც შეუძლიათ სერიული პორტის საშუალებით დაუკავშირდნენ NerdKit- ს. თუმცა გაცილებით ადვილია ტერმინალური პროგრამის გამოყენება ჩვენთვის სერიული კომუნიკაციისთვის. ამ გზით თქვენ შეგიძლიათ უბრალოდ აკრიფოთ კლავიატურაზე და ნახოთ პასუხი NerdKit– დან. Windows თუ იყენებთ Windows XP– ს ან უფრო ადრე, HyperTerminal შედის და უნდა იყოს თქვენს Start მენიუში, „Start -> Programs -> Accessories -> კომუნიკაციები ". როდესაც პირველად გახსენით HyperTerminal, ის მოგთხოვთ შექმნათ კავშირი. გააუქმეთ ისინი, სანამ არ ხართ მთავარ ჰიპერტერმინალურ შუბლზე. თქვენ უნდა შექმნათ HyperTerminal, აირჩიოთ სწორი COM პორტი და დააწესოთ პორტის პარამეტრები სათანადოდ NerdKit– თან მუშაობისთვის. მიჰყევით ქვემოთ მოცემულ ეკრანის სურათებს, რომ მიიღოთ სწორი HyperTerm დაყენება. თუ Windows Vista– ზე ხართ, HyperTerminal აღარ შედის. ამ შემთხვევაში, გადმოწერეთ PuTTY (Windows ინსტალერი). გამოიყენეთ ქვემოთ მოყვანილი კავშირის პარამეტრები Putty– ს დასაყენებლად, შესაბამისი COM პორტის გამოყენებით. Mac OS X ტერმინალის აპლიკაციაში შესვლის შემდეგ აკრიფეთ "screen /dev/tty. PL* 115200" სერიული პორტის საშუალებით კომუნიკაციის დასაწყებად. LinuxUn Linux, ჩვენ ვიყენებთ " minicom "სერიულ პორტთან გასაუბრება. დასაწყებად, გაუშვით "minicom -s" კონსოლზე, რომ შეხვიდეთ minicom– ის დაყენების მენიუში. გადადით "სერიული პორტის დაყენებაზე". დააყენეთ პარამეტრები შემდეგნაირად: Minicom– ის კონფიგურაცია Linux– ზე, შემდეგ დააწკაპუნეთ escape და გამოიყენეთ „Save setup as dfl“პარამეტრების ნაგულისხმევად შესანახად. თქვენ ახლა უნდა შეგეძლოთ დააჭიროთ "გასასვლელს" და გამოიყენოთ მინიკომი NerdKit– თან სასაუბროდ.

გირჩევთ: