Სარჩევი:

3D AIR მაუსი - არდუინო + დამუშავება: 5 ნაბიჯი
3D AIR მაუსი - არდუინო + დამუშავება: 5 ნაბიჯი

ვიდეო: 3D AIR მაუსი - არდუინო + დამუშავება: 5 ნაბიჯი

ვიდეო: 3D AIR მაუსი - არდუინო + დამუშავება: 5 ნაბიჯი
ვიდეო: POCO X5 PRO - ყველაზე დეტალური მიმოხილვა და ტესტები 2024, ივლისი
Anonim
3D AIR მაუსი | Arduino + დამუშავება
3D AIR მაუსი | Arduino + დამუშავება

3D AIR მაუსი | არდუინო + დამუშავება რა მყარი სხეულის ბრუნვა ეკრანზე ხდება მაუსის შუა ღილაკის გამოყენებით. ვეძებდი რაღაც უფრო ინტუიციურს. ასე დავასრულე 3D ჰაერის თაგვი, სადაც ობიექტის ფაქტობრივი ბრუნვა ხდება თაგვის შუაგულში ჰაერის გადაადგილებით სამივე ღერძზე - ანალოგიურად თქვენ ბრუნავდით ობიექტს, თუ მას ხელში გეჭირათ. მე გამოვიყენე Arduino, რამოდენიმე სენსორი და დამუშავების ესკიზი. შენიშვნები:- ჯერჯერობით, ეს მხოლოდ კონცეფციის დემონსტრირებაა, რადგან SolidWork– თან სამუშაოდ არ არსებობს ფაქტობრივი დანამატი (მაგრამ რა თქმა უნდა, მოგერიდებათ დაწერე ერთი თუ იცი როგორ:) რაიმე იდეა, თუ გსურთ სცადოთ საკუთარი თავის შექმნა … ისიამოვნეთ… (ეს ჩემი პირველი ინსტრუქციაა) აქ არის დასრულებული პროექტის ვიდეო დემო

ნაბიჯი 1: აპარატურა და მასალები

ტექნიკა და მასალები
ტექნიკა და მასალები
ტექნიკა და მასალები
ტექნიკა და მასალები
ტექნიკა და მასალები
ტექნიკა და მასალები
ტექნიკა და მასალები
ტექნიკა და მასალები

ეს არ არის ყველაზე იაფი ინსტრუქცია, რადგან ის დაფუძნებულია 3 ღერძიანი ამაჩქარებელი + კომპასის სენსორზე. ნივთები, რომლებიც დაგჭირდებათ:* თაგვი - მეორადი უკეთესია (მხოლოდ იმიტომ, რომ ის მეორადია და იაფია), ნებისმიერმა მაუსმა უნდა გააკეთოს. თქვენ გჭირდებათ გარკვეული ადგილი სენსორების და დამატებითი მავთულის დასაყენებლად, ასე რომ ნუ წახვალთ ზედმეტად წვრილ / დამატებით პატარა თაგვებზე.* კომპასის მოდული დახრის კომპენსაციით - HMC634 - ეს არის 3 ღერძიანი სენსორი, შეძენილი SpurkFun– ში $ 149* ლოგიკური დონის კონვერტორი - აუცილებელია! ვინაიდან არდუინო არის 5 ვ, ხოლო 3 ღერძიანი სენსორი არის 3.3 ვ, თქვენ გჭირდებათ ერთ -ერთი მათგანი, რომ გადააკეთოთ 5 ვ 3.3 ვ. მას აქვს დიდი სახელი, მაგრამ მხოლოდ 1.95 $ ღირს SpurkFun– ზე.* დიდი ოპტიკური დეტექტორი / ფოტოტრანსისტორი - ეს არის მარტივი ოპტიკური სენსორი, რომელიც გამოიყენება ამ პროექტში, რათა დადგინდეს, როდესაც თაგვი იხსნება სამუშაო ზედაპირიდან. შეიძინა SpurkFun– ში 2,25 დოლარად * ერთი (1) LED - არაფერ შუაშია ფერი, ულტრა ნათელი უკეთესად იმუშავებს.* 2 რეზისტორი - ერთი (1) x 100Ω და ერთი (1) x 100KΩ (ოპტიკური სენსორისთვის)* Arduino დაფა - DA! მე გამოვიყენე დიეციმილას მოდელი. უფრო ახალი Duemilanove ხელმისაწვდომია SpurkFun– ში დაახლოებით 29,95 დოლარად (ასევე უნდა იმუშაოს) + დაინსტალირებული Arduino პროგრამა.* დაინსტალირებული პროგრამული უზრუნველყოფა.* პროექტის წყაროს კოდი (არ ინერვიულოთ, თქვენ შეძლებთ გადმოწეროთ წამში.) პლუს: ზოგიერთი ცხელი წებო (ნივთების დასაფიქსირებლად) რამდენიმე პატარა ხრახნი. დაახლოებით 10 სმ 6 მმ (დია.) ხის წამყვანი. რამდენიმე დამატებითი მავთული. გამდნარი რკინა. პლასტმასის გასაჭრელად რაღაცას ვიყენებ საჭრელ დანასა და ფაილს (ფორმირებისთვის). ("კარგი, ნუ მეზიზღები ამ ნაბიჯის გამო, ინგლისური არის ჩემი მეორე ენა, თუ ეს არასწორად გავიგე, ბოდიში, დარწმუნებული ვარ მიხვდები რასაც მე ვიღებ წამში, როდესაც ნახავთ სურათებში ")

ნაბიჯი 2: ელექტრონიკა

ელექტრონიკა
ელექტრონიკა
ელექტრონიკა
ელექტრონიკა

ყველაფერი ერთად უნდა იყოს შეკრული … რაღაცნაირად … შენიშვნა: 3 ღერძიანი სენსორი არის ძვირადღირებული პატარა ნივთი, ორმაგად შეამოწმეთ გაყვანილობა ყველაფრის გაშვებამდე … იხილეთ ამ პროექტში გამოყენებული ყველა გაყვანილობის სქემა. მიმაგრებული წყაროს კოდი შეუძლია იმუშაოს მხოლოდ იმ შემთხვევაში, თუ თქვენ იყენებთ იმავე პინის ნომრებს, რაც მე გავაკეთე, მაგრამ თავისუფლად შეცვალეთ ისინი დაკავშირებისას, რამდენადაც თქვენ შეცვლით შესაბამის ნომრებს კოდში. 3 ღერძიანი სენსორის დაკავშირება ლოგიკური დონის გადამყვანთან: სენსორი VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> კონვერტორი TXI (Chan1) კონვერტორი TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2) კონვერტორი TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (მინიმუმ ერთი მათგანი) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 GND (მე ვიყენებ ერთ – ერთ ოპტიკურ სენსორს)+ Arduino PIN 13 – მდე (ეს გაკეთდა ვინაიდან ამ პინს უკვე აქვს ბორტზე არსებული რეზისტორი, თუ სხვას იყენებთ, დარწმუნდით, რომ გამოიყენეთ რეზისტორი ისე, რომ არ დაწვათ LED)

ნაბიჯი 3: თაგვის მომზადება

თაგვის მომზადება
თაგვის მომზადება
თაგვის მომზადება
თაგვის მომზადება
თაგვის მომზადება
თაგვის მომზადება

ეს არის ის, სადაც სენსორები პოულობენ ადგილს მაუსის საცხოვრებელში. იპოვეთ საუკეთესო ადგილი 3 ღერძიანი სენსორის დასაფიქსირებლად. დარწმუნდით, რომ ის არის გათანაბრებული და გაითვალისწინეთ ორიენტაცია (თქვენ გეცოდინებათ, როდის გექნებათ სენსორი ხელში) თქვენ შეგიძლიათ გაასწოროთ ის, როგორც გსურთ, მე გამოვიყენე ხის წამყვანის 2 მოკლე ნაჭერი, გაბურღული 2 პატარა ხრახნის მისაღებად და ცხელი მიმაგრებულია თაგვის მთავარ დაფაზე. ოპტიკური სენსორისთვის თაგვის ქვედა ნაწილში შექმენით მართკუთხა ხვრელი, იდეა ისაა, რომ სენსორი ყოველთვის "ნახულობს" ცხრილს. როდესაც თაგუნა აწეულია და სენსორის მდგომარეობა „ღიაა“(სანახავი არ არის) მაუსი გადადის 3D რეჟიმში (გადის დამუშავების ესკიზი) შექმენით კიდევ ერთი ხვრელი დამატებითი მავთულის გადასატანად (სენსორებიდან არდუინოში) პლასტიკური საცხოვრებელი. ნაღმი მაუსის მარჯვენა მხარეს იყო. აფიქსირეთ LED სად არის ნაჩვენები. ამ პროექტში LED არის 3D რეჟიმის მაჩვენებელი. ჩემსას ვათავსებ სილიკონის თაგვის ბორბლის გვერდით. როდესაც თაგვი აიწია, საჭეს ჰქონდა ლამაზი ლურჯი ელვარება.

ნაბიჯი 4: საწყისი კოდი

Arduino– ს კოდი დაწერა შაჰარ გეიგერმა, ჩემმა მასწავლებელმა და ჩემ მიერ შეიცვალა ამ პროექტისათვის. 3D კუბის კოდი არის ძირითადი კოდი დამუშავების ვებგვერდზე. ცოტა შევცვალე. კოდში ეს ნაწილი ცვლის სენსორიდან მიღებულ ნედლეულ ინფორმაციას (ჩვეულებრივ -180 180 x 10) 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y+1800) / 14; Serial.write (y); Serial.write ('z'); z = (z+1800) / 14; სერიული. დაწერა (z); სენსორისა და არდუინოს ინფორმაცია მიდის დამუშავების ესკიზზე თითოეული ცალკეული ღერძისთვის, მაგრამ წინა ღერძის ასოთი (გამოშვებისთვის X12 Y200 Z130), შემდეგი კოდი ჩამოაგდებს წერილს და ტოვებს მხოლოდ მნიშვნელობებს, რომლებიც უნდა გაიგზავნოს COM- ში პორტი while (port.available () == 0) {} char კითხვა = 0; while (reading! = 'x') {while (port.available () == 0) {} კითხვა = (char) port.read ();} X = port.read (); ხოლო (კითხვა! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = პორტი. წაიკითხე (); ხოლო (კითხულობს! = 'z') {ხოლო (port.available () == 0) {} კითხულობს = (char) port.read ();} Z = port.read (); კოდის ეს ნაწილი ჩამოაგდებს ყველა უარყოფით მნიშვნელობას … თუ ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (-(float) Y/25.0); rotateX ((float) X/25.0); rotateY ((float) Z/25.0); pX = X; pY = Y; pZ = Z;} else {rotateZ (-(float) pY/25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} თანდართული ZIP ფაილი შეიცავს როგორც არდუინოს, ასევე დამუშავების კოდს

ნაბიჯი 5: ვიდეო

ეს არის … ეს არის დასრულებული პროექტი ვიდეოში. არის უმნიშვნელო ხარვეზი (თქვენ ხედავთ, რომ კუბი ზოგჯერ "ხტება" ვიდეოში), ეს არის Z ღერძის გამო, შეიძლება არ მოხდეს თქვენთან …

გირჩევთ: