რობოტის თავიდან აცილების ემოციური დაბრკოლება: 11 ნაბიჯი
რობოტის თავიდან აცილების ემოციური დაბრკოლება: 11 ნაბიჯი
Anonim
ემოციური დაბრკოლება რობოტის თავიდან აცილების მიზნით
ემოციური დაბრკოლება რობოტის თავიდან აცილების მიზნით

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

ნაბიჯი 1: ნაწილები

ნაწილები
ნაწილები

-3,2 ფუტი ნეოპიქსელის ზოლები

-HC-SR04 ულტრაბგერითი სენსორი (ან ნებისმიერი სხვა ულტრაბგერითი სენსორი)

-დახრის გადამრთველი

-3 3.7 ვ ლითიუმის იონური ბატარეა (18650)

-გამაძლიერებელი კონვერტორი (ახსნილია სიმძლავრის საფეხურზე)

-ფოტო რეზისტორი (ნებისმიერი მნიშვნელობა)

-ანალოგური ხმის სენსორი

-2 დკ ძრავები 6 ვ

-l293d (ძრავის მძღოლი)

-პლასტიკური ფურცელი

-მუყაო

-საჭის საჭე

ნაბიჯი 2: ნეოპიქსელები

ნეოპიქსელები
ნეოპიქსელები
ნეოპიქსელები
ნეოპიქსელები

მჭიდრო ბიუჯეტიდან გამომდინარე, ჩემი რობოტების ემოციების გაცოცხლების უმარტივესი და იაფი გზა არის ნეოპიქსელები, მათ აქვთ მხოლოდ 3 შესავალი და გამოსავალი. შეყვანის სამი ქინძისთავები იწერება 5v, DIN (მონაცემები in) და GND (ადგილზე); გამომავალი შეაფასა იგივე, რაც შეყვანა, მაგრამ მონაცემების ნაცვლად მის DO (მონაცემები გარეთ). ამ led- ის დაკავშირების გზა არის ერთმანეთთან პარალელურად დაკავშირება, ასე რომ 5v უკავშირდება 5v სხვა led- ს და GND უკავშირდება სხვა led GND- ს, პირველი led- ის DO უკავშირდება მეორე led- ს და შემდეგ ეს პროცესი გრძელდება მანამ, სანამ არ მიაღწევთ სასურველ led სიგრძის სიგრძეს. ნეოპიქსელების მთელ ზოლს მხოლოდ ერთი ციფრული გამომავალი პინი სჭირდება შესასვლელიდან, ეს იმიტომ ხდება, რომ DO და DIN დაკავშირებულია გრძელ ჯაჭვში, ამიტომ ისინი ყველა იზიარებენ მონაცემებს ერთმანეთთან. ეს აუცილებელია, რადგან ჩვენ გვჭირდება გამორთვა და გამორთვა კონკრეტულ დროს. ამის შესახებ დამხმარე ინსტრუქციაა NEOPIXEL HELP

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

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

წრე ძალიან მარტივია, რადგან რობოტის უმეტესობა დაპროგრამებულია, ძრავები მუშაობს 7 ვ -ის მახლობლად l293d ძრავით, რათა გააკონტროლონ ძრავები უკანა მიმართულებით. სხვა კავშირები არის სენსორები არდუინოსთან. და ეს არის ის!

ნაბიჯი 4: კოდი

პირველი რაც გავაკეთე იყო საჭირო ბიბლიოთეკების გადმოწერა, რომ კოდირება ცოტა გამიადვილებულიყო, ბიბლიოთეკები, რომლებსაც ვიყენებ, არის "FastLED.h" და "NewPing.h". სწრაფი ლიდერი არის led- ებისთვის და ახალი პინგი ულტრაბგერითი სენსორებისთვის. შემდეგი რაც გავაკეთე იყო ყველა განსაზღვრება ჩემს მიერ გამოყენებულ ქინძისთავებისთვის, ამის შემდეგ ბათილი იყო დაყენება, სადაც შევქმენი პინის რეჟიმები და neostrip "FastLED.addLeds (leds, NUM_LEDS);" მე განვსაზღვრე NUM_LEDS, როგორც 56, ვინაიდან მე გამოვიყენე 56 led, კონფიგურაცია leds იქნება ახსნილი სახის ნაბიჯი. შემდეგ მე შევქმენი რამოდენიმე ფუნქცია ჩემი რობოტისათვის წინ და უკან მოძრაობისათვის და ასევე გარკვეული ემოცია, ამის შემდეგ მივდივარ ბათილ მარყუჟამდე, სადაც მე ვიძახებ ჩემს ყველა ფუნქციას გარკვეული თანმიმდევრობით, როგორც მე მინდა, მაგალითად, მე რომ მინდოდა ჩემს რობოტს გაეღიმა, მაშინ ღიმილს დავდებდი ();. თუ მინდოდა გარკვეული led ჩართული ვდებ, leds [45] = CRGB:: მწვანე;, ეს დააყენებს, რომ 45 იყოს მწვანე. როდესაც მე შავ ფერს ვაყენებ, ეს უბრალოდ გამორთვას ნიშნავს. ახლა გახსოვდეთ, რომ ეს არის ჩემი ერთ -ერთი პირველი პროგრამა, ასე რომ აშკარად არ არის სრულყოფილი, მაგრამ მაინც მუშაობდა.

ᲙᲝᲓᲘ

ნაბიჯი 5: სახე

Სახე
Სახე

სახისთვის გამოვიყენე 56 led, რაც თითქმის 3.2 ფუტიანი ნეოპიქსელის ზოლია. მე დავჭრა ზოლები 8 ზოლის 7 ზოლად, მე გამოვიყენე პირველი 3 ზოლი თვალებისთვის და ბოლო 4 პირი. მე შევაერთე ზოლები გველის სახით ერთგვარი კავშირი, დიაგრამაზე უკეთესად გესმით იმედია. როდესაც დავამთავრე სახე, მაშინ დავდე თხელი პლასტმასის ფურცელი (დაახლოებით 2 მმ სისქის) წამყვანი ზოლები.

ნაბიჯი 6: ბედნიერი ფუნქცია

ბედნიერი ფუნქცია
ბედნიერი ფუნქცია

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

ნაბიჯი 7: სევდიანი ფუნქცია

სევდიანი ფუნქცია
სევდიანი ფუნქცია
სევდიანი ფუნქცია
სევდიანი ფუნქცია

იმისათვის, რომ რობოტი სევდიანი ყოფილიყო, მე უნდა მომეფიქრებინა ამ რობოტის პიროვნული თვისება, ამიტომ გადავწყვიტე მისი მოწყენა, როდესაც ის ბნელ გარემოში იმყოფებოდა. ამისათვის მე გამოვიყენე ფოტო რეზისტორი სინათლის აღქმის მიზნით. რაც უფრო ბნელია გარემო მით უფრო მაღალია წინააღმდეგობა და რაც უფრო მსუბუქია გარემო მით უფრო დაბალია წინააღმდეგობა. წრე მუშაობს როგორც ძაბვის გამყოფი, რომელიც არის წრე ორი რეზისტორით, რომლებიც დაკავშირებულია სერიულად +5v და GND– ზე, რეზისტორული კავშირის შუაგულში არის ძაბვა, რომელიც შეიძლება განისაზღვროს ამ განტოლებით: შეყვანის ძაბვა*(R2/R1 +R2). როდესაც Arduino Analog Pin კითხულობს ამ მნიშვნელობას, ის გარდაქმნის ძაბვას დიაპაზონში 0 -დან 1023 -მდე.

ნაბიჯი 8: გაბრაზებული ფუნქცია

გაბრაზებული ფუნქცია
გაბრაზებული ფუნქცია
გაბრაზებული ფუნქცია
გაბრაზებული ფუნქცია

რობოტის გაბრაზების მიზნით, მე გადავწყვიტე მისი გადაბრუნება/დაცემა. ეს მუშაობს დახრის გადამრთველის გამოყენებით და დახრის გადამრთველი ძირითადად ნორმალური გადამრთველია, მაგრამ ღილაკის ან როკერის ნაცვლად გაქვთ ვერცხლისწყლის ბურთი, რომელიც თუ დახრილია გარკვეული კუთხით დააკავშირებს ორ კონტაქტს და ჩართავს; აქედან გამომდინარე, მნიშვნელობა არის 0 ან 1, 0 გამორთვისთვის და 1 გაგრძელებისთვის. როდესაც რობოტი გაბრაზებულია, ის ასევე იგნორირებას უკეთებს დაბრკოლებას, რომელიც არიდებს რეჟიმს და რისხვას აყენებს წინსვლის მიმართულებით, თავისი რისხვის გამო.

ნაბიჯი 9: შეშინებული ფუნქცია

შეშინებული ფუნქცია
შეშინებული ფუნქცია
შეშინებული ფუნქცია
შეშინებული ფუნქცია

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

ნაბიჯი 10: ძალა

Ძალა
Ძალა
Ძალა
Ძალა

ახლა, როდესაც თქვენ ააშენეთ ყველაფერი, რაც გჭირდებათ მის გასაძლიერებლად, მე თავდაპირველად ვცდილობდი ამ ენერგიის მომარაგებას 8 AA ბატარეით, მაგრამ მე ძალიან მოცულობითი და არაპრაქტიკული ვიყავი. შემდეგ გამოვიყენე 3 ლითიუმის იონური ბატარეა, რომელთაგან თითოეული ინახავს 3.5 ვ -ს, მე დავუკავშირე ერთი ბატარეა გამაძლიერებელ კონვერტორთან, რომელიც არის ძაბვის გამაძლიერებელი, ამან გაზარდა ჩემი 3.5 ვ -დან 5 ვ -მდე არდუინოს დასაყენებლად, შემდეგ გამოვიყენე ორი ბატარეა და უშუალოდ დაკავშირებული ეს არის ძრავები და LED- ები, ეს არ არის ისეთი კარგი იდეა, რადგან ძაბვა არ იყო რეგულირებული, მაგრამ მე არ მქონდა ძაბვის რეგულატორი, თუ თქვენ ცდილობთ ამის აშენებას, გირჩევთ გამოიყენოთ ძაბვის რეგულატორი, ვიდრე 5 ვ. დაახლოებით 2-3 ამპერზე, ამის მაგალითია LM78S05. ან შეგიძლიათ გამოიყენოთ LM7805 Arduino– ს გასაძლიერებლად და ამის ნაცვლად მიიღოთ ქვევით გადასაყვანი კონვერტორი ან გადასაყვანი კონვერტორი ძაბვის შესამცირებლად და LED– ებისა და ძრავების შესამცირებლად.

ნაბიჯი 11: გაერთეთ !

ვიმედოვნებ, რომ თქვენ ააშენებთ ამ რობოტს და გაერთობით, ასევე იმედი მაქვს, რომ თქვენ დააბრუნებთ ამ რობოტს და შექმნით საკუთარ ემოციებს, რათა ის ცოცხალი გახადოთ !!!

გირჩევთ: