Სარჩევი:
- ნაბიჯი 1: მასალები
- ნაბიჯი 2: პროგრამირება
- ნაბიჯი 3: წრე
- ნაბიჯი 4: 3D ნაბეჭდი ნაწილები
- ნაბიჯი 5: შეკრება
ვიდეო: წყალქვეშა მანქანა: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
**************** ეს ინსტრუქცია ჯერ კიდევ სამუშაო პროცესშია ****************
ეს ინსტრუქცია შეიქმნა სამხრეთ ფლორიდის უნივერსიტეტის Makecourse– ის საპროექტო მოთხოვნების შესასრულებლად (www.makecourse.com).
ეს ინსტრუქცია იქნება მოკლე მიმოხილვა იმ წყალქვეშა მანქანის შექმნის შესახებ, რომელიც მე შევიმუშავე და ავაშენე ჩემი სამხრეთი ფლორიდის უნივერსიტეტის მაკიაჟის კლასისთვის. ამ ინსტრუქციებში მე მოგაწვდით მასალებს, საკონტროლო კოდს, რომელიც მე გამოვიყენე Arduino Uno– სთვის, და მიმოხილვა, თუ როგორ უნდა შევიკრიბოთ წყალქვეშა.
ნაბიჯი 1: მასალები
ელექტრონიკა გამოიყენება იქ:
1x Arduino Uno
1x მობილურის სამოქმედო კამერა
1x mobius სამოქმედო კამერა usb-b to A/V კაბელი
1x საველე ხედი 777 ჩვენების ეკრანი
1x turnigy marine 50A ESC (ელექტრონული სიჩქარის კონტროლი)
1x turnigy საზღვაო პროგრამირების ბარათი
1x T-Motor Navigator 400 კვ
1x YEP 20A BEC (ბატარეის აღმოფხვრის წრე)
6x ჰობი მეფე HK15139 წყალგაუმტარი სერვისი
2x პარალელური T- კონექტორი y აღკაზმულობა
2 x 18 ინჩიანი servo გაფართოების მავთულები
6x6 ინჩიანი servo გაფართოების მავთულები
2x 1300mah 3s Lipo ბატარეები
2x 2500mah 4s Lipo ბატარეები
1x დენის გამანაწილებელი დაფა, როგორც 5 ვ, ასევე 12 ვ ფიქსირებული გამოსვლით
სამშენებლო მასალები, სადაც:
პლაივუდის 1x 3/16 დიუმიანი ფურცელი
1x 6 დიუმიანი ID ABS გადაზიდვის მილი
1x სილიკონის მილი
მოქნილი ბეჭდის 1 ქილა
4x კოჭა ABS 3D პრინტერის ძაფით
უჯრის 1x24 დიუმიანი სლაიდი
სითბოს შემცირების მილი
1x 10 ფუტი შოტლანდიური ბრენდის duraloc velcro
1x JB Weld პლასტიკური ეპოქსია
1x 6.2 ინჩი დიამეტრის აკრილის უსაფრთხოების კამერის გუმბათი
2x IP68 Ethernet პასტა
2x 24 დიუმიანი cat6 Ethernet კაბელი
1x 200 ფუტი cat6 Ethernet კაბელი
გამოყენებული ტექნიკა იყო:
24x 1/2 დიუმიანი სპილენძის ხის ხრახნები
24x ------ ხრახნები (მოყვება სერვოები)
გამოყენებული ინსტრუმენტები:
ფილიპეს და ბრტყელი თავის ხრახნიანი დრაივერები
ალენის გასაღების ნაკრები
გასაყიდი რკინა
სითბოს იარაღი
3D პრინტერი (მე გამოვიყენე Monoprice Maker Select Plus)
ნაბიჯი 2: პროგრამირება
ქვემოთ მოცემულია კოდი, რომელიც შეიქმნა წყალქვეშა ნავის გასაკონტროლებლად. მე ასევე მიმაგრებულია.ino ფაილი ისე, რომ მისი ჩამოტვირთვა შესაძლებელია.
ეს კოდი შეიქმნა Arduino Uno– სთვის Arduino შემდგენლის გამოყენებით.
/**********************************************************************************************************************************************************************
ავტორი: იონა პაუერსი თარიღი: 11/9/2018 მიზანი: დისტანციური მართვის წყალქვეშა ავტომობილის კონტროლის კოდი **************************** *********************************************** *********************************************** ********************************** # #მოიცავს // სერვო ბიბლიოთეკის ჩათვლით Servo roll1; // გამოაცხადოს roll1, როგორც servo Servo roll2; // გამოცხადება roll2 servo Servo lift1; // გამოცხადება lift1 სერვო Servo lift2; // გამოცხადება lift2 იყოს servo Servo yaw1; // yaw1- ის სერვო სერვო yaw2 გამოცხადება; // yaw2- ის გამოცხადება servo Servo esc; // esc- ის სერვოებად გამოცხადება
int pot1 = 0; // ცვლადის pot1 მთლიანი რიცხვის ინიციალიზაცია და მისი 0 ტოლი ტოლი pot2 = 1; // ცვლადი pot2 მთელი რიცხვის ინიციალიზაცია და მისი ტოლი 2 int pot3 = 2; // ცვლადი pot3 მთელი რიცხვის ინიციალიზაცია და მისი ტოლი 4 int pot4 = 3; // ცვლადის pot4 ინტიციალიზაცია მთელი რიცხვის სახით და მისი დადგენა 5 int val1– ის ტოლი; // ცვლადის ინტიციალიზაცია, როგორც მთელი რიცხვი int val2; // ცვლადის val2, როგორც მთელი რიცხვი int val3; // ცვლადის ინტიციალიზაცია, როგორც მთელი რიცხვი int val4; // ცვლადის ინიციალიზაცია, როგორც მთელი რიცხვი int val5; // ცვლადის ინტიციალიზაცია, როგორც მთელი რიცხვი int val6; // ცვლადის ინტიციალიზაცია, როგორც მთელი რიცხვი int val7; // ცვლადის ინტიციალიზაცია, როგორც მთელი რიცხვი int val8; // ცვლადის ინიციალიზაცია, როგორც მთელი რიცხვი int mspeed; // ცვლადი mspeed ინტილიზაცია მთელი რიცხვის სახით
void setup () {// არდუინოს ინიციალიზაციის ეტაპი Serial.begin (9600); // სერიული მონიტორის roll1.attach (2) ინიციალიზაცია; // servo roll1 ციფრული პინზე 2 roll2.attach (3) მიმაგრება; // servo roll2 ციფრული პინზე 3 lift1.attach (5) მიმაგრება; // servo lift1 ციფრული პინზე 5 lift2.attach (6) მიმაგრება; // servo lift2 ციფრული პინზე 6 yaw1.attach (8) მიმაგრება; // servo yaw1 ციფრული პინზე 8 yaw2.attach (9) მიმაგრება; // servo yaw2 ციფრული პინ 9 esc.attach (11) მიმაგრება; // ციფრული პინზე servo esc- ის მიმაგრება 11 roll1.write (90); // servo roll1- ის ჩაწერა მის ცენტრალურ პოზიციაზე roll2.write (90); // servo roll2- ის ჩაწერა მის ცენტრალურ პოზიციაზე lift1.write (90); // servo lift1- ის ჩაწერა მის ცენტრალურ პოზიციაზე lift2.write (90); // servo lift2 ჩაწერა ცენტრალურ პოზიციაზე yaw1.write (90); // servo yaw1- ის ჩაწერა მის ცენტრალურ პოზიციაზე yaw2.write (90); // servo yaw2 ჩაწერა მისი ორიენტირებული პოზიციის esc.write (180); // servo esc- ის წერა მისი ცენტრირებული პოზიციის დაყოვნებამდე (2500); // ელოდება 2 წამს esc.write (90); დაგვიანება (5000); }
void loop () {// მთავარი კოდი უსასრულოდ მარყუჟში თუ (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// შემოწმება თუ არა "ჯოისტიკი" (პოტენომეტრი) არის ორიენტირებული roll1.write (90); // servo roll1 ჩაწერა ცენტრალურ პოზიციაზე roll2.write (90); // servo roll2 ჩაწერა ცენტრალურ პოზიციაზე} სხვა {{რა უნდა გააკეთოს, თუ "ჯოისტიკი" არ არის ცენტრში val1 = რუკა (val1, 0, 1023, 10, 170); // val1- ის ასახვა 10 -დან 170 -მდე და val1 roll1.write- ის მინიჭება (val1); // წერა servo roll1 პოზიტიონზე განსაზღვრული val1 roll2.write (val1); // წერა servo roll2 პოზიტიონზე განსაზღვრული val1}
val2 = analogRead (pot2); // კითხულობს pot2 (ანალოგიურ პინ 2) და შეინახავს მნიშვნელობას, როგორც val2, თუ (val2> = 485 && val2 <= 540) {// შემოწმება იმის დასადგენად, არის თუ არა "ჯოისტიკი" (პოტენომეტრი) ორიენტირებული lift1.write (90); // servo lift1 ჩაწერა ცენტრალურ პოზიციაზე lift2.write (90); // servo lift2 ჩაწერა ცენტრალურ პოზიციაზე} სხვა {{რა უნდა გააკეთოს, თუ "ჯოისტიკი" არ არის ცენტრში val3 = რუკა (val2, 0, 1023, 10, 170); // val2 10 – დან 170 – მდე დანიშვნა val3 val4 = რუკა (val2, 0, 1023, 170, 10); // val2 170 – დან 10 – მდე დანიშვნა და val4 lift1.write (val3); // წერა servo lift1 პოზიტიონზე განსაზღვრული val3 lift2.write (val4); // წერა servo lift2 to poziton განსაზღვრული val4}
val5 = analogRead (pot3); // კითხულობს pot3 (ანალოგიურ პინ 4) და შეინახავს მნიშვნელობას val5, თუ (val5> = 485 && val5 <= 540) {// შემოწმება იმის დასადგენად, არის თუ არა "ჯოისტიკი" (პოტენომეტრი) ცენტრირებული yaw1.write (90); // წერა servo yaw1 ცენტრალურ პოზიციაზე yaw2.write (90); // servo yaw2 ჩაწერა ცენტრალურ პოზიციაზე} სხვა {{რა უნდა გააკეთოს, თუ "ჯოისტიკი" არ არის ცენტრში val6 = რუკა (val5, 0, 1023, 10, 170); // val5- ის ასახვა 10 -დან 170 -მდე და მინიჭება val6 val7 = რუკა (val5, 0, 1023, 170, 10); // val5- ის ასახვა 10 -დან 170 -მდე და მინიჭება val7 yaw1.write (val6); // წერა servo yaw1 პოზიტიონზე განსაზღვრული val6 yaw2.write (val7); // წერა servo yaw2 პოზიტიონზე განსაზღვრული val7}
val8 = analogRead (pot4); // კითხულობს pot4 (ანალოგიურ პინ 5) და შეინახავს მნიშვნელობას, როგორც val8, თუ (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// შემოწმება თუ არა ძრავა მიმართულების შეცვლისას esc.write (80); დაგვიანება (1000); // ელოდება 1000 მილიწამს} esc.write (val8); // წერა servo esc სიჩქარით განსაზღვრული val8 mspeed = val8; // შედარებისთვის მიმდინარე სიჩქარის შენახვა}} Serial.print ("throttle"); // სერიული ბეჭდვის გამოყენება სიტყვა "Throttle" Serial.println (val8); // სერიული ბეჭდვის გამოყენება იმ მნიშვნელობის საჩვენებლად, რომლის დროსაც დაყენებულია გორაკი Serial.print ("როლი"); // სერიული ბეჭდვის გამოყენებით სიტყვა "როლი" საჩვენებლად Serial.println (val1); // სერიული ბეჭდვის გამოყენება იმ მნიშვნელობის საჩვენებლად, რომელსაც როლი აქვს დაყენებული Serial.print ("მოედანზე"); // სერიული ბეჭდვის გამოყენება სიტყვის "Pitch" Serial.println (val3); // სერიული ბეჭდვის გამოყენება იმ მნიშვნელობის საჩვენებლად, რომელიც pitch1 არის მითითებული Serial.println (val4); // სერიული ბეჭდვის გამოყენება მნიშვნელობის საჩვენებლად, რომელსაც pitch2 არის დაყენებული Serial.print ("yaw"); // სერიული ბეჭდვის გამოყენებით სიტყვა "Yaw" Serial.println (val6) საჩვენებლად; // სერიული ბეჭდვის გამოყენება იმ მნიშვნელობის საჩვენებლად, რაც yaw1 არის მითითებული Serial.println (val7); // სერიული ბეჭდვის გამოყენება იმ მნიშვნელობის საჩვენებლად, რასაც yaw2 არის მითითებული}
ნაბიჯი 3: წრე
მიმაგრებულია წყალქვეშა ნავის ბორტზე არსებული მიკროსქემის ფოტო.
მე შევქმენი საბაჟო ფარი არდუინოსთვის, რომ გაემართლებინა ჩემი გაყვანილობა. მე ავტვირთე Eagle Schematic & Board ფაილები ფარისთვის. მე გამოვიყენე LPKF S63 დაფის დასაფქვავად. Servos წინა, რომ კონტროლის roll იქნება ჩართული Arduino
მიმაგრებულია კონტროლერის შიგნით ჩართვის ფოტო.
ნაბიჯი 4: 3D ნაბეჭდი ნაწილები
მე დავბეჭდე ყველა ეს ფაილი ჩემს Monoprice Maker Select Plus- ში. მე გამოვიყენე Esun ABS 1.75 მმ ბოჭკო. ჩემი ბეჭდვის პარამეტრები იყო 105 გრადუსი C დასაბეჭდი საწოლის ტემპერატურისთვის და 255 გრადუსი ცელექტრული ტემპერატურისთვის. თითოეული ნაწილიდან მხოლოდ 1 არის საჭირო, გარდა იმისა, რომ თქვენ დაგჭირდებათ წინა ფრთის 6 ეგზემპლარი. გაითვალისწინეთ, რომ ეს ნაწილები დაბეჭდილია კედლის სისქით 1000 მმ. ეს გაკეთდა ისე, რომ ნაწილები 100% -ით იბეჭდებოდეს, ასე რომ ისინი უარყოფითად მოძრაობდნენ.
ნაბიჯი 5: შეკრება
********************************* ᲛᲐᲚᲔ *************** *******************
გირჩევთ:
ნებისმიერი სატრანსპორტო/სატრანსპორტო მანქანის Bluetooth პროგრამად გადაქცევა კონტროლის მანქანა/მანქანა: 9 ნაბიჯი
ნებისმიერი სატრანსპორტო საშუალების გადაყვანა Bluetooth– ის აპლიკაციის მართვის რ/კ მანქანაში: ეს პროექტი აჩვენებს ნაბიჯებს ჩვეულებრივი დისტანციური მართვის მანქანის Bluetooth (BLE) საკონტროლო მანქანაზე Wombatics SAM01 რობოტების დაფით, ბლინკის აპლიკაციითა და MIT აპლიკაციის გამომგონებლით. არის ბევრი დაბალი ღირებულების RC მანქანა, რომელსაც აქვს მრავალი მახასიათებელი, როგორიცაა LED ფარები და
როგორ გავაკეთოთ სირენის გენერატორი - UM3561 - პოლიცია, სასწრაფო დახმარების მანქანა, სახანძრო მანქანა: 6 ნაბიჯი
როგორ გავაკეთოთ სირენის გენერატორი | UM3561 | პოლიცია, სასწრაფო დახმარების მანქანა, სახანძრო მანქანა: ისწავლეთ როგორ გააკეთოთ DIY ელექტრონული სირენის გენერატორის წრე, რომელსაც შეუძლია აწარმოოს პოლიციის მანქანის სირენა, სასწრაფო დახმარების სირენა & სახანძრო ბრიგადის ხმა IC UM3561a სირენის ტონის გენერატორის გამოყენებით. წრე მოითხოვს მხოლოდ რამდენიმე კომპონენტს და მისი გადართვა შესაძლებელია
როგორ გააკეთოთ დისტანციური მართვის მანქანა სახლში მარტივი გზით - წვრილმანი უკაბელო RC მანქანა: 7 ნაბიჯი
როგორ გააკეთოთ დისტანციური მართვის მანქანა სახლში მარტივად - წვრილმანი უკაბელო RC CAR: გამარჯობა მეგობრებო ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ დისტანციური მართვის rc მანქანა მარტივი გზით გთხოვთ განაგრძოთ კითხვა …… ეს მართლაც მაგარი პროექტია, ასე რომ გთხოვთ სცადოთ მისი აშენება
BTS - გუნდი 28 (R2 -DTimbs) წყალქვეშა/წყალქვეშა: 17 ნაბიჯი
BTS - გუნდი 28 (R2 -DTimbs) წყალქვეშა/წყალქვეშა: გაკვეთილი წყალქვეშა მასალის ასაშენებლად, რომელიც შეგიძლიათ ნახოთ ადგილობრივ ტექნიკის მაღაზიაში. საბოლოო წყალქვეშა ნავს შეეძლება წინსვლა, უკან, შემობრუნება, გადაადგილება და გადაადგილება ქვემოთ მთელ წყალში
R/C მანქანა/სატვირთო მანქანა შოკი ტექნიკური მომსახურება: 10 ნაბიჯი
R/C მანქანა/სატვირთო ავტომობილის შოკის შენარჩუნება: ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ უნდა განახორციელოთ რუტინული რემონტი თქვენს რ/კ მანქანაზე ან სატვირთო მანქანებზე, რაც თქვენ დაგჭირდებათ: -შოკის ზეთი (მე 30 ვატი გამოვიყენე) duhhh =))-ქაღალდის პირსახოცები-ფანქრები <-იმედია სწორად დავწერე