Სარჩევი:
- ნაბიჯი 1: ის, რაც შეიძლება დაგჭირდეთ…
- ნაბიჯი 2: დააკავშირეთ აპარატურა
- ნაბიჯი 3: პროგრამირება Arduino
- ნაბიჯი 4: დააინსტალირეთ პროგრამული უზრუნველყოფა
- ნაბიჯი 5: გამოიყენეთ ინტერფეისის პროგრამა
- ნაბიჯი 6: გახდი შემოქმედებითი
ვიდეო: არდუინოზე დაფუძნებული სერიული სერვო კონტროლერი: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:22
ეს არის მარტივი სერიული კონტროლერი მრავალი სერვისისთვის 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
ახლა თქვენ შეგიძლიათ ატვირთოთ ესკიზი არდუინოზე.
აქ მოცემულია კოდის მარტივი გარჩევა: #მოიცავს 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. წყალქვეშა როვერი გაერთეთ !!
გირჩევთ:
არდუინოზე დაფუძნებული მხატვრობის რობოტი: 11 ნაბიჯი (სურათებით)
არდუინოს მხატვრობის რობოტი: გიფიქრიათ ოდესმე, შეძლებდა თუ არა რობოტს მომხიბლავი ნახატებისა და ხელოვნების გაკეთება? ამ პროექტში მე ვცდილობ, რომ ეს რეალობად აქციოს არდუინოს მართვადი ფერწერის რობოტთან ერთად. მიზანი არის რობოტმა შეძლოს ნახატების დამოუკიდებლად გაკეთება და რეფერალური
ქათმის თანამშრომლობის კარი - არდუინოზე დაფუძნებული: 5 ნაბიჯი (სურათებით)
Chicken Coop Door - Arduino დაფუძნებული: უპირველეს ყოვლისა, ჩემი მშობლიური ენა ჰოლანდიურია, ამიტომ ბოდიში შესაძლო ორთოგრაფიული შეცდომებისთვის. თუ რამე არ არის გასაგები, უბრალოდ დატოვეთ შეტყობინება კომენტარებში. ეს არის ჩემი პირველი არდუინოს პროექტი. რადგან ჩემი ცოლი დაიღალა ყოველ დღე ხელით გახსნის კუპეს
Arduino დაფუძნებული წვრილმანი თამაშის კონტროლერი - Arduino PS2 თამაშის კონტროლერი - თამაში Tekken With DIY Arduino Gamepad: 7 ნაბიჯი
Arduino დაფუძნებული წვრილმანი თამაშის კონტროლერი | Arduino PS2 თამაშის კონტროლერი | თამაში Tekken With DIY Arduino Gamepad: გამარჯობა ბიჭებო, თამაშების თამაში ყოველთვის სახალისოა, მაგრამ საკუთარი წვრილმანი თამაშით თამაში უფრო სახალისოა. ასე რომ, ჩვენ გავაკეთებთ თამაშის კონტროლერს arduino pro micro- ს ამ ინსტრუქციებში
არდუინოზე დაფუძნებული ჰუმანოიდი რობოტი სერვო მოტორსის გამოყენებით: 7 ნაბიჯი (სურათებით)
არდუინოზე დაფუძნებული ჰუმანოიდი რობოტი Servo Motors- ის გამოყენებით: გამარჯობა ყველას, ეს არის ჩემი პირველი ჰუმანოიდი რობოტი, დამზადებულია PVC ქაფის ფურცლისგან. ის ხელმისაწვდომია სხვადასხვა სისქეში. აქ მე გამოვიყენე 0.5 მმ. ახლა ამ რობოტს შეუძლია სიარული, როდესაც მე ჩართული ვარ. ახლა მე ვმუშაობ Arduino– ს და Mobile– ის Bluetooth– ით დაკავშირებაზე
ნაბიჯი სერვო ძრავის სერიული კონტროლით არდუინოს საშუალებით 3D პრინტერის გამოყენებით - Pt4: 8 ნაბიჯი
მოიცავს საფეხურზე მომუშავე ძრავას სერიული კონტროლით Arduino– ს გამოყენებით 3D პრინტერის გამოყენებით - Pt4: Motor Step სერიის ამ მეოთხე ვიდეოში ჩვენ გამოვიყენებთ იმას, რაც ადრე ვისწავლეთ სტეპერ სერვო ძრავის აგება სერიული კომუნიკაციისა და რეალური კონტროლის საშუალებით. პოზიციის უკუკავშირი რეზისტენტული კოდირების გამოყენებით, რომელსაც აკონტროლებს არდუინო