Სარჩევი:

არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი: 6 ნაბიჯი
არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი: 6 ნაბიჯი

ვიდეო: არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი: 6 ნაბიჯი

ვიდეო: არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი: 6 ნაბიჯი
ვიდეო: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, დეკემბერი
Anonim
არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი
არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი
არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი
არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი

ეს არის მარტივი სერიული კონტროლერი მრავალი სერვისისთვის Arduino– ზე დაფუძნებული. (ჩემი პირველი სასწავლოც:))

ამ სამუშაოს უმეტესი ნაწილი წარმოიშვა პროგრამული უზრუნველყოფის არდუინოსთან საუბარში და მონაცემების გადაცემის პროტოკოლის შედგენაში. რაც შეეხება აპარატურულ ასპექტს, ყველაფერი რაც მე გამოვიყენე იყო ორი სერვე (აქ Parallax standard servo აქ.) Sparkfun Arduino ProtoShield და Arduino Duemilanove ATMEGA328– ით, მაგრამ ამ ნაწილების უმეტესობა შეიძლება შეიცვალოს მსგავსი ნივთებით. მე მოვიფიქრე ეს პროექტი, როგორც RC სისტემის ნაწილი, მაგრამ კომუნიკაციის დამყარებას ბევრი დრო დასჭირდა. თუ ვინმეს აქვს რაიმე გაუმჯობესება, იდეა ან ხარვეზი, გთხოვთ მოგერიდოთ კომენტარის გაკეთება. რედაქტირება: მე დავწერე ეს ცოტა ხნის წინ, ახლახანს დავიწყე მისი გამოქვეყნება.

ნაბიჯი 1: ის, რაც შეიძლება დაგჭირდეთ…

ნივთები, რომლებიც შეიძლება დაგჭირდეთ…
ნივთები, რომლებიც შეიძლება დაგჭირდეთ…
ის რაც შეიძლება დაგჭირდეს…
ის რაც შეიძლება დაგჭირდეს…

ზოგიერთი რამ დაგჭირდებათ ამის ასაშენებლად. 1. Arduino დაფა (თქვენ ირჩევთ) 2. ორი (ან ერთი) სერვისი 3. ჯუმბერის მავთულები 4. Visual Studio 2008 Express - ბმული (სურვილისამებრ) 5. Arduino IDE - ბმული ბოდიში Linux და Apple თაყვანისმცემლებისთვის, ჩემი პროგრამა მუშაობს მხოლოდ Windows ახლა, მაგრამ მაინც შეგიძლიათ ხელით გაუგზავნოთ arduino– ს სერიული ბრძანებები კოდის შეცვლის გარეშე.

ნაბიჯი 2: დააკავშირეთ აპარატურა

შეაერთეთ აპარატურა
შეაერთეთ აპარატურა

არაფერია რთული ამ საფეხურზე. უბრალოდ შეაერთეთ ერთი სერვერი პინ 9 -ზე და მეორე პინ 10 -ზე.

ნაბიჯი 3: პროგრამირება Arduino

პროგრამირება Arduino
პროგრამირება Arduino

ახლა თქვენ შეგიძლიათ ატვირთოთ ესკიზი არდუინოზე.

აქ მოცემულია კოდის მარტივი გარჩევა: #მოიცავს Servo myservo; // servo ობიექტის შექმნა servo servo myservo1 გასაკონტროლებლად; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // შემომავალი სერიული მონაცემების ჩარ მონაცემებისთვის [10]; const char გადამოწმება [8] = "ma11hew"; char ბრძანება [3]; void setup () {myservo.attach (9); myservo1.attach (10); სერიული.დაწყება (38400); // ხსნის სერიულ პორტს, ადგენს მონაცემთა სიჩქარეს Serial.println ("Hi Arduino Here!"); // დაემატა სერიული პორტის იდენტიფიცირებისათვის ეს მხოლოდ ადგენს სერიულ პორტს და სერვისებს. int i; for (i = 0; i <180; i ++) {myservo.write (i); დაგვიანება (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); დაგვიანება (15); } myservo1.write (5); } მარტივი გადასაადგილებელი მოძრაობა სერვოების სწორად მუშაობის შესამოწმებლად. void loop () {ready = 0; მრიცხველი = 0; ხოლო (1 == 1) {if (Serial.read ()! = გადამოწმება [counter]) {შესვენება; } if (counter == 6) {დაგვიანებით (20); ბრძანება [0] = Serial.read (); ბრძანება [1] = Serial.read (); // if (Serial.read () == ((command [1] * 12) % 8)) // {ready = 1; //} Serial.println ("შენახული ბრძანება"); } მრიცხველი ++; დაგვიანება (2); } ეს ამოწმებს სერიულ ბუფერს სწორი ავტორიზაციის სტრიქონისთვის და იღებს ორ ბაიტს ბრძანებისთვის. კომენტირებული თუ განცხადება იძლევა დროებითი შემოწმების ჯამს, მაგრამ გაართულებს ხელით ურთიერთობას. მზადაა დაყენებული 0 -ზე, რათა ბრძანებები არ გაანალიზდეს, როგორიცაა დაზიანებული მონაცემების შემთხვევაში. // ბრძანებების ძიება if (მზად == 1) {if (ბრძანება [0] == 'T') {ბრძანება [0] = 0; Serial.print ("სარქველის კონტროლი პინ 9 -ზე:"); Serial.println (რუკა (ბრძანება [1], 32, 126, 2, 180), საოლქო საარჩევნო კომისია); myservo.write (რუკა (ბრძანება [1], 32, 126, 2, 180)); } if (ბრძანება [0] == 'S') {ბრძანება [0] = 0; Serial.print ("სარქველის კონტროლი პინ 10 -ზე:"); Serial.println (რუკა (ბრძანება [1], 32, 126, 2, 180), საოლქო საარჩევნო კომისია); myservo1.write (რუკა (ბრძანება [1], 32, 126, 2, 180)); }}} კოდის დანარჩენი ნაწილი არის ბრძანების მოძიება მოქმედი ბრძანებებისათვის (T ან S.), თუ რომელიმე მათგანი ემთხვევა შემდეგ ბაიტს და აგზავნის სერვოზე. მეტი რუქაზე (ბრძანება [1], 32, 126, 2, 180) მოგვიანებით… აქ კოდი შეიძლება გაფართოვდეს იმისთვის, რაც შეიძლება დაგჭირდეთ (მაგ. განათება, ძრავა, IR და ა.შ.) ეს კოდი კარგად უნდა მუშაობდეს არა მოდიფიკაციები.

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

დააინსტალირეთ პროგრამული უზრუნველყოფა
დააინსტალირეთ პროგრამული უზრუნველყოფა

მე მაქვს ორი გზა ამ … nsis ინსტალერის დასაყენებლად: ჩამოტვირთეთ ქვემოთ მოყვანილი თვითმომპოვებელი ინსტალატორი და გაუშვით. თქვენ გექნებათ შესაძლებლობა დააინსტალიროთ წყაროები ინსტალაციის დროს. ინსტალერის ორობითი პაკეტი აყენებს ძირითად c ++ dll- ებს, ასე რომ მისი გაშვება შესაძლებელია კომპიუტერზე ვიზუალური c ++ დაინსტალირებული უკვე. ინსტალერის დასრულების შემდეგ შეგიძლიათ გაუშვათ ის დესკტოპიდან ან დაწყების მენიუდან. zip way (გადაუმოწმებელი): გადმოწერეთ და გაუშვით, უნდა იმუშაოს. შესაძლოა. (Zip არქივს აქვს იგივე საქაღალდის სტრუქტურა, რომელიც შექმნილია ინსტალერის მიერ, წყაროების გარეშე. მე არ მაქვს მანქანა ვიზუალური სტუდიის გარეშე, რომ შევამოწმო, რათა არ იმუშაოს.)

ნაბიჯი 5: გამოიყენეთ ინტერფეისის პროგრამა

გამოიყენეთ ინტერფეისის პროგრამა
გამოიყენეთ ინტერფეისის პროგრამა
გამოიყენეთ ინტერფეისის პროგრამა
გამოიყენეთ ინტერფეისის პროგრამა

პროგრამის გამოსაყენებლად ჯერ შეარჩიეთ არუდინოს ესკიზში განსაზღვრული ბოდის მაჩვენებელი. უცვლელი ესკიზი ნაგულისხმევია 38400 ბაუდზე, მაგრამ ის შეიძლება შეიცვალოს თქვენი საჭიროებების შესაბამისად, როგორც ნელი რადიოს ბმული. შენიშვნა: 38400 -ზე მაღალი ბაუდის მაჩვენებლები არ იყო ძალიან სტაბილური, მე ვფიქრობ, რომ ეს იმიტომ ხდება, რომ მუწუკები ივსება მონაცემების დამუშავებამდე. შემდეგი, აირჩიეთ COM პორტი გამოსაყენებლად. პროგრამა ნაგულისხმევია COM4– ზე, რა თქმა უნდა შეცვალეთ იგი, წინააღმდეგ შემთხვევაში პროგრამა დაიშლება. და ბოლოს, დააწკაპუნეთ გახსნაზე. თუ ყველაფერი კარგად წარიმართა, პროგრამა გახსნის არჩეულ სერიულ პორტს არჩეული სიჩქარით. თუ არა, პროგრამა ალბათ ჩავარდება გაუმართავი გამონაკლისით. დარწმუნდით, რომ პორტი სწორია და სცადეთ ხელახლა. გამოიყენეთ ტექსტური ყუთები არდუინოს პირდაპირი ბრძანებების წარსადგენად. "რუქა (ბრძანება [1], 32, 126, 2, 180)" აფასებს ყველა 94 შესაძლო ბრძანებას, * სივრცე * ~ - მდე, იკითხება arduino– ს მიერ ASCII– ში, 2 – დან 180 – მდე სერვოსთვის. ნებისმიერი ბაიტი ASCII 32 -ზე ნაკლები (სივრცე) ან 126 (~) ზემოთ ნაგულისხმევი 63 (?) ბილიკის ზოლები უზრუნველყოფს eaiser ინტერფეისს პირდაპირი ბრძანებებისათვის. თითოეული ნაბიჯი თანდათანობით აგზავნის სერიულ ბრძანებას arduino– ს.

ნაბიჯი 6: გახდი შემოქმედებითი

გახდი შემოქმედებითი!
გახდი შემოქმედებითი!
გახდი შემოქმედებითი!
გახდი შემოქმედებითი!

იფიქრეთ მაგარი რამეებით ამის გასაკეთებლად. ზოგიერთი იდეა: 1. დისტანციური გასროლა მანქანისთვის. 2. 3D კამერის სამაგრი 3. წყალქვეშა როვერი გაერთეთ !!

გირჩევთ: