Სარჩევი:

ტელეფონის მბრუნავი მთა: 7 ნაბიჯი
ტელეფონის მბრუნავი მთა: 7 ნაბიჯი

ვიდეო: ტელეფონის მბრუნავი მთა: 7 ნაბიჯი

ვიდეო: ტელეფონის მბრუნავი მთა: 7 ნაბიჯი
ვიდეო: Мега макак и змея ► 7 Прохождение Sekiro: Shadows Die Twice 2024, ნოემბერი
Anonim
ტელეფონის მბრუნავი მთა
ტელეფონის მბრუნავი მთა

ეს ინსტრუქცია შეიქმნა სამხრეთ ფლორიდის უნივერსიტეტის მაკიაჟის პროექტის მოთხოვნების შესასრულებლად (www.makecourse.com).

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

ამ პროექტის შესაქმნელად დაგჭირდებათ:

- Arduino მიკროკონტროლი და IDE

- USB კაბელი კოდის ასატვირთად

- პურის დაფა

- მხტუნავ მავთულხლართებს

- LCD ეკრანი

- სერვო

- სვეტი, რომელსაც შეუძლია სერვოზე მიმაგრება

- IR დისტანციური

- IR მიმღები

- 10k ohm რეზისტორი

- კენუს საჰაერო ჩარჩო+ ტელეფონის კლიპი (ან რამე ტელეფონის დასაკავებლად)

- 9 ვ ბატარეა პორტატული სიმძლავრისთვის ან უბრალოდ USB- ით აღჭურვილი Arduino

ნაბიჯი 1: ააშენეთ IR მიმღების წრე

ააშენეთ IR მიმღების წრე
ააშენეთ IR მიმღების წრე
ააშენეთ IR მიმღების წრე
ააშენეთ IR მიმღების წრე

პირველი, გადახვიდეთ GND და +5V არდუინოდან დენის რელსებზე თქვენს დაფაზე. შემდეგ გადადით თქვენი 10k ohm რეზისტორი +5V დენის სარკინიგზოდან თქვენი IR მიმღების ფოტოტრანსისტორის გამომავალ პინზე. შემდეგი, გამოიყენეთ ჯუმბერის მავთული, რომ დაუკავშიროთ Arduino– ს პინ 11 – ს IR მიმღების გამომავალი პინიდან. შემდეგ, გამოიყენეთ ორი ჯუმბერის მავთული, რომ გააგზავნოთ მიწა და +5V IR მიმღების შესაბამის ქინძისთავებზე. RC ფილტრი, რომელიც გამოსახულია ზემოთ სქემატურად, არ არის აუცილებელი. და ბოლოს, მე არ შევადგინე ამ ნაბიჯში ნაჩვენები სქემა, და ამის წყარო მოცემულია სურათზე.

ნაბიჯი 2: შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი

შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი
შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი
შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი
შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი
შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი
შეაერთეთ სერვო, სვეტი და ტელეფონის დამჭერი

ახლა გამოიყენეთ ორი მხტუნავი მავთული მიწიდან გადასასვლელად და +5V პურის დაფის რელსები სერვოს ყავისფერ და წითელ მავთულებში, შესაბამისად. შემდეგ, გამოიყენეთ ერთი ჯუმბერის მავთული, რომ მიამაგროთ პინ 9 არდუინოზე სერვოს ნარინჯისფერ მავთულზე.

შემდეგ, მიამაგრეთ სვეტი სერვოს თავზე, როგორც ნაჩვენებია მეორე სურათზე.

დაბოლოს, მიამაგრეთ რამე ტელეფონის დასაკავებლად სვეტზე, როგორიცაა Kenu Airframe+, როგორც ეს ნაჩვენებია მესამე სურათზე.

ნაბიჯი 3: შეაერთეთ LCD ეკრანი Servo Readout– ისთვის

შეაერთეთ LCD ეკრანი Servo Readout– ისთვის
შეაერთეთ LCD ეკრანი Servo Readout– ისთვის

გადახტომა ადგილზე და +5V თქვენი breadboard დენის რელსებიდან შესაბამის ეკრანზე LCD ეკრანზე. ასევე, გადადით SDA და SCL ქინძისთავები LCD– დან Ardiuno– ზე. Arduino– ს SDA და SCL ქინძისთავები შეიძლება განისაზღვროს Arduino დაფის უკნიდან და არის ორი PIN ზემოთ AREF და Ground ზემოთ PIN 13. SCL pin არის ყველაზე მაღალი. ეს საშუალებას აძლევს LCD ეკრანს წაიკითხოს მიმდინარე სერვო პოზიცია.

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

გამოიყენეთ კოდი და ბიბლიოთეკები, რომლებიც ერთვის არდუინოს პროგრამას
გამოიყენეთ კოდი და ბიბლიოთეკები, რომლებიც ერთვის არდუინოს პროგრამას

ჩამოტვირთეთ RotatingMountCode.zip ფაილი. დააინსტალირეთ Arduino IDE და გადმოტვირთეთ გადმოწერილი ფაილი Documents / Arduino– ში. დარწმუნდით, რომ დააკოპირეთ ჩემი ჩანახატების და ბიბლიოთეკების საქაღალდის ესკიზები და ბიბლიოთეკების საქაღალდეში. გახსენით ServoIRandLCD ესკიზი და ატვირთეთ თქვენს არდუინოში.

იხილეთ კოდის ახსნის შემდგომი ნაბიჯები.

ნაბიჯი 5: შეაერთეთ სასურველი კვების წყარო Arduino– სთან და გამოიყენეთ დისტანციური მთა როტაციისთვის

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

ან დატოვეთ Arduino ჩართული თქვენს კომპიუტერში, ან გამორთეთ კომპიუტერიდან და გამოიყენეთ 9 ვ ბატარეა, რომ უზრუნველყოთ DC ენერგია Arduino– სთვის. დაბოლოს, გამოიყენეთ იაფი IR დისტანციური მართვა, რათა გააკონტროლოთ სერვო და, შესაბამისად, ტელეფონის დამონტაჟების ორიენტაცია!

დისტანციური მართვის პუნქტზე ნომერმა 1 უნდა დააყენოს სერვო პოზიცია 0 გრადუსზე, რიცხვი 2 -დან 90 გრადუსზე და რიცხვი 3 -დან 180 გრადუსზე. იმავდროულად, დისტანციური მართვის ღილაკზე + და - უნდა გაიზარდოს ან შემცირდეს სერვოს კუთხე, შესაბამისად, 1 გრადუსით.

შენიშვნა: თუ თქვენ იყენებთ სხვა IR დისტანციურს, ვიდრე აქ გამოსახული, შესაძლებელია შეიცვალოს სხვადასხვა ღილაკების შესაბამისი IR კოდები. თუ ასეა, შეცვალეთ ServoIRandLCD ესკიზი, რომ გამოიყენოთ ნაცვლად ეს IR კოდები.

ნაბიჯი 6: წაიკითხეთ ეს წყაროს კოდის ახსნისთვის

წაიკითხეთ ეს წყაროს კოდის ახსნისთვის
წაიკითხეთ ეს წყაროს კოდის ახსნისთვის
წაიკითხეთ ეს წყაროს კოდის ახსნისთვის
წაიკითხეთ ეს წყაროს კოდის ახსნისთვის

Arduino ესკიზის საწყისი კოდი შეგიძლიათ იხილოთ ქვემოთ ან ადრე მიმაგრებულ.zip ფაილში. საჭირო ბიბლიოთეკები შეგიძლიათ იხილოთ მხოლოდ ადრე მიმაგრებულ.zip ფაილში, ნაბიჯი 4.

პირველი რასაც კოდი აკეთებს მოიცავს საჭირო ბიბლიოთეკებს, რომლებიც საჭიროა ესკიზის ყველა ფუნქციის გასაშვებად. შემდეგი, ის აცხადებს Arduino– ს პინ 9 – ს, როგორც სერვოს PWM ჩართული სიგნალის პინს. იგი ასევე ამზადებს 11 პუნქტს არდუინოზე, რომელიც გამოიყენება IR მიმღებისთვის. შემდეგი, ის აცხადებს მთელ ცვლადს, რომელიც გამოიყენება სერვოს პოზიციის თვალყურის დევნება გრადუსებში და ადგენს მას 0 გრადუსზე, თავდაპირველად. შემდეგ, ის მყისიერად ასახავს საჭირო ობიექტებს IRrecv ობიექტისთვის, servo ობიექტისთვის და myDisplay LCD ობიექტისთვის (რომელიც ასევე კონფიგურირებულია იმავე ხაზში), რათა შემდგომში ეს ობიექტები გამოვიყენოთ.

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

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

დაბოლოს, სერვოს მიმდინარე კუთხე იგზავნება როგორც სერიულ მონიტორზე, ასევე LCD ეკრანზე myservo.read () ფუნქციის გამოყენებით და ძირითადი მარყუჟები განუსაზღვრელი ვადით იმეორებს.

Საწყისი კოდი:

#მოიცავს // Arduino სტანდარტული ბიბლიოთეკა #მოიცავს // IR ბიბლიოთეკა #მოიცავს "Wire.h" //Wire.h LCD (ზოგჯერ საჭიროა) #მოიცავს "LiquidCrystal_I2C.h" // LCD ბიბლიოთეკა

#განსაზღვრეთ servopin 9 // ეს განსაზღვრავს pin 9- ს, როგორც pin- ს, რომელიც გამოიყენება servo კონტროლის ტყვიისთვის (ნარინჯისფერი)

int RECV_PIN = 11; // IR ფოტო-ტრანზისტორი აგზავნის გამომავალს პინ 11-ზე

int currentAngle = 0; // გამოაცხადე currentAngle მთელი რიცხვითი ცვლადი და დააყენე 0

IRrecv irrecv (RECV_PIN); // IR მიმღების ობიექტის ინსტალაცია decode_results results; // გააქტიურეთ დეკოდი_რეზულტატების ობიექტი. ეს ობიექტი ცალკეა IR მიმღებისგან.

სერვო მისერვო; // დააინსტალირეთ Servo ობიექტი სახელწოდებით 'myservo' // მაქსიმუმ რვა servo ობიექტის შექმნა შესაძლებელია

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // დააინსტალირეთ LCD ობიექტი და დააყენეთ კონფიგურაცია

void setup () {

სერიული.დაწყება (9600); // სერიული პორტის დაწყება

myservo.attach (servopin); // მიმაგრებს servo პინ 9 -ზე servo ობიექტს

irrecv.enableIRIn (); // დაწყება მიმღები

myDisplay.init (); // LCD– ის ინიციალიზაცია

myDisplay.backlight (); // ჩართეთ LCD განათება

}

ბათილი მარყუჟი () {

თუ (irrecv.decode (& შედეგები)) // თუ გადაცემა მიღებულია…

{Serial.print ("მიღებული IR ღირებულება:");

Serial.println (results.value); // მიღებული მნიშვნელობის ჩვენება

// მიღებული ბრძანებების ინტერპრეტაცია… if (results.value == 16724175) // 1 {// left myservo.write (0); }

if (results.value == 16718055) // 2 {// შუა myservo.write (90); }

if (results.value == 16743045) // 3 {// right myservo.write (180); }

if (results.value == 16754775) //+ {// increment currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// შემცირება currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

უკონკურენტო რეზიუმე (); // მიიღეთ შემდეგი მნიშვნელობა

// სერიული მონიტორის ბეჭდვა Serial.print ("ამჟამინდელი servo პოზიცია:");

Serial.println (myservo.read ()); // ეს იღებს სერვო პოზიციას და აგზავნის მას სერიულ მონიტორზე

// LCD ბეჭდვა myDisplay.clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

დაგვიანება (200); // სერვო აქტივაციის სტაბილური გახანგრძლივება

}

ნაბიჯი 7: ნახეთ ჩემი Youtube ვიდეო დახმარებისთვის

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

გირჩევთ: