İçindekiler:
Video: Dalgıç Araç: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
**************** BU TALİMAT HALA DEVAM EDEN BİR ÇALIŞMADIR ****************
Bu Eğitim Tablosu, Güney Florida Üniversitesi'ndeki (www.makecourse.com) Makecourse'un proje gereksinimini yerine getirmek için oluşturulmuştur.
Bu Eğitilebilir Kitap, Güney Florida Üniversitesi'ndeki Makecourse sınıfım için tasarladığım ve inşa ettiğim dalgıç aracın yaratılmasına ilişkin kısa bir bakış olacaktır. Bu Eğitilebilir Kitapta, bir malzeme listesi, kullandığım Arduino Uno için oluşturduğum kontrol kodu ve denizaltının nasıl monte edileceğine dair bir genel bakış sunacağım.
Adım 1: Malzemeler
Kullanılan elektronikler:
1x Arduino Uno
1x mobius aksiyon kamerası
1x mobius aksiyon kamerası usb-b - A/V kablosu
1x alan görünümü 777 ekran
1x turnigy marine 50A ESC (elektronik hız kontrolü)
1x turnigy deniz programlama kartı
1x T-Motor Navigatörü 400kv
1x YEP 20A BEC (pil eleme devresi)
6x hobi kral HK15139 su geçirmez servolar
2 adet paralel T-bağlantı y kablo demeti
2x 18 inç servo uzatma telleri
6x6 inç servo uzatma telleri
2x 1300mah 3s Lipo piller
2x 2500mah 4s Lipo piller
Hem 5v hem de 12v sabit çıkışlı 1x güç dağıtım panosu
Yapı malzemeleri burada:
1x 3/16 inç kontrplak levha
1x6 inç ID ABS nakliye tüpü
1x silikon tüp
1x esnek conta olabilir
4x makaralı ABS 3D yazıcı filamenti
1x 24 inç çekmece slayt
Isıyla daralan makaron
1x 10 fit scotch marka duraloc cırt cırt
1x JB Kaynaklı plastik epoksi
1x6.2 inç çapında akrilik güvenlik kamerası kubbesi
2x IP68 ethernet geçişi
2x 24 inç cat6 ethernet kablosu
1x 200 ayak cat6 ethernet kablosu
Kullanılan donanım şuydu:
24x 1/2 inç pirinç ağaç vidaları
24x ------ vidalar (servolara dahildir)
Kullanılan araçlar:
Philip's ve Düz başlı tornavidalar
Alyan anahtar seti
Havya
Isı tabancası
3D yazıcı (Monoprice Maker Select Plus kullandım)
Adım 2: Programlama
Denizaltıyı kontrol etmek için oluşturulan kod aşağıdadır. İndirilebilmesi için.ino dosyasını da ekledim.
Bu kod, Arduino derleyicisi kullanılarak Arduino Uno için oluşturulmuştur.
/**********************************************************************************************************************************************************************
Yazar: Jonah Powers Tarih: 9/11/2018 Amaç: Uzaktan Kumandalı Dalgıç Araç için Kontrol Kodu ****************************** ************************************************************ ************************************************************ ************************************/ #include // Servo Kitaplığı Servo roll1 dahil; // roll1'in bir servo Servo roll2 olduğu bildiriliyor; // roll2'nin bir servo Servo elev1 olduğu bildiriliyor; // elev1'in bir servo Servo elev2 olduğu bildiriliyor; // elev2'nin servo Servo yaw1 olarak bildirilmesi; //yaw1'in bir servo Servo yaw2 olduğu bildiriliyor; //yaw2'nin bir servo Servo esc olduğu bildiriliyor; // esc'nin servo olarak bildirilmesi
int pot1 = 0; //pot1 değişkenini bir tamsayı olarak başlatıyoruz ve onu 0'a eşitliyoruz int pot2 = 1; // pot2 değişkenini bir tamsayı olarak başlatma ve onu 2'ye eşitleme int pot3 = 2; //pot3 değişkenini bir tamsayı olarak başlatma ve onu 4'e eşitleme int pot4 = 3; //pot4 değişkenini bir tamsayı olarak başlatma ve onu 5 int val1'e eşitleme; // val1 değişkeni bir tamsayı olarak başlatılıyor int val2; // val2 değişkeni bir tamsayı olarak başlatılıyor int val3; // val3 değişkeni bir tamsayı olarak başlatılıyor int val4; // val4 değişkeni bir tamsayı olarak başlatılıyor int val5; // val5 değişkeni bir tamsayı olarak başlatılıyor int val6; // val6 değişkeni bir tamsayı olarak başlatılıyor int val7; // val7 değişkeni bir tamsayı olarak başlatılıyor int val8; // val8 değişkeni bir tamsayı olarak başlatılıyor int mspeed; //mspeed değişkenini tamsayı olarak başlatma
void setup() { //Arduino başlatma aşaması Serial.begin(9600); //Seri monitör başlatılıyor roll1.attach(2); //Servo roll1'in dijital pin 2'ye eklenmesi roll2.attach(3); //Servo roll2'yi dijital pin 3'e ekleme elev1.attach(5); //Servo elev1'in dijital pin 5'e eklenmesi elev2.attach(6); //Servo elev2'yi dijital pin 6'ya takmak yaw1.attach(8); //yaw1 servosunu dijital pin 8'e takmak yaw2.attach(9); // servo yaw2'yi dijital pin 9'a ekleme esc.attach(11); //Dijital pin 11'e servo esc eklenmesi roll1.write(90); //Servo roll1'i ortalanmış pozisyonuna yazma roll2.write(90); //Servo roll2'yi ortalanmış konumuna yazma elev1.write(90); //Servo elev1 ortalanmış konumuna yazılıyor elev2.write(90); //Servo elev2'yi ortalanmış konumuna yazıyoruz yaw1.write(90); // servo yaw1 ortalanmış konumuna yazılıyor yaw2.write(90); // servo yaw2'yi ortalanmış konumuna yazıyoruz esc.write(180); //Servo esc'yi merkez konum gecikmesine yazıyoruz(2500); //2 saniye bekleniyor esc.write(90); gecikme (5000); }
void loop() { //Main Code sonsuz döngü if(analogRead(pot1)<1 && analogRead(pot2)<1 && analogRead(pot3)<1 && analogRead(pot4)= 485 && val1<= 540{ // "Joystick"in (potansiyometre) ortalanıp ortalanmadığını kontrol etme roll1.write(90); // servo roll1'i merkez konumuna roll2.write(90) yazıyoruz; //Servo roll2'yi orta konuma yazma } else{ //"Joystick" ortalanmamışsa ne yapılmalı val1 = map(val1, 0, 1023, 10, 170); //val1'i 10'dan 170'e eşleme ve val1'e atama roll1.write(val1); //servo roll1'in val1 tarafından tanımlanan konuma yazılması roll2.write(val1); // val1 tarafından tanımlanan konuma servo roll2 yazılıyor }
val2 = analogRead(pot2); //Pot2'yi (analog pin 2) oku ve değeri val2 olarak kaydet if(val2>= 485 && val2<= 540){ //"Joystick"in (potansiyometre) ortalanmış olup olmadığı kontrol ediliyor elev1.write(90); //Servo elev1'i merkez konumuna yazma elev2.write(90); //Servo elev2'yi merkez konumuna yazma } else{ //"Joystick" ortalanmamışsa ne yapmalı val3 = map(val2, 0, 1023, 10, 170); //val2'yi 10'dan 170'e eşleme ve val3'e atama val4 = map(val2, 0, 1023, 170, 10); // val2'yi 170'ten 10'a eşleme ve val4'e atama elev1.write(val3); // val3 elev2.write(val4) tarafından tanımlanan konuma servo elev1 yazılıyor; // val4 tarafından tanımlanan konuma servo elev2 yazılıyor }
val5 = analogRead(pot3); //pot3'ü (analog pin 4) oku ve değeri val5 olarak kaydet if(val5>= 485 && val5<= 540){ //"Joystick"in (potansiyometre) ortalanmış olup olmadığı kontrol ediliyor yaw1.write(90); // servo yaw1 merkez konumuna yazılıyor yaw2.write(90); //Yaw2 servosunu merkez konumuna yazıyoruz } else{ //"Joystick" ortalanmamışsa ne yapmalı val6 = map(val5, 0, 1023, 10, 170); //val5'i 10'dan 170'e eşleme ve val6'ya atama val7 = map(val5, 0, 1023, 170, 10); //val5'i 10'dan 170'e eşleme ve val7'ye atama yaw1.write(val6); // val6 yaw2.write(val7) tarafından tanımlanan konuma servo yaw1 yazılıyor; // val7 ile tanımlanan konuma servo yaw2 yazılıyor }
val8 = analogRead(pot4); //pot4'ü (analog pin 5) oku ve değeri val8 olarak kaydet if(val8 > 470 && val8 80 && val8<80)||(mspeed80)){ //Motorun yön değiştirmek üzere olup olmadığı kontrol ediliyor esc.write(80); gecikme(1000); //1000 milisaniye bekleniyor } esc.write(val8); // val8 mspeed=val8 tarafından tanımlanan hıza servo esc yazılıyor; //Karşılaştırma için mevcut hızın saklanması } } Serial.print("throttle "); //"Throttle" kelimesini göstermek için Seri Baskıyı kullanma Serial.println(val8); //Gazın Serial.print("roll "); //"Rulo" kelimesini göstermek için Seri Baskıyı kullanma Serial.println(val1); //Rulonun Serial.print("pitch "); //"Pitch" kelimesini göstermek için Seri Yazdırmayı kullanma Serial.println(val3); //Pitch1'in Serial.println(val4) olarak ayarlandığı değeri göstermek için Seri Yazdırmayı kullanma; //pitch2'nin Serial.print("yaw "); //"Yaw" kelimesini göstermek için Seri Yazdırmayı kullanma Serial.println(val6); //yaw1'in Serial.println(val7) olarak ayarlandığı değeri göstermek için Seri Yazdırmayı kullanma; //yaw2'nin ayarlandığı değeri göstermek için Seri Yazdırmayı kullanma }
Adım 3: Devre
Ekli, dalgıçtaki devrenin bir fotoğrafıdır.
Kablolamamı basitleştirmek için Arduino için özel bir kalkan oluşturdum. Kalkan için Eagle Schematic & Board dosyalarını yükledim. Tahtayı frezelemek için bir LPKF S63 kullandım. Kontrol rulosunun Arduino'ya takılacağı ön taraftaki Servolar
ekli, denetleyicinin içindeki devrenin bir fotoğrafıdır.
Adım 4: 3D Basılı Parçalar
Tüm bu Dosyaları Monoprice Maker Select Plus cihazıma yazdırdım. Esun ABS 1.75mm Filament kullandım. Baskı ayarlarım, baskı yatağı sıcaklığı için 105 derece C ve ekstrüder sıcaklığı için 255 derece C idi. Ön kanadın 6 kopyasına ihtiyacınız olması dışında her parçadan sadece 1 adet gereklidir. Bu parçaların duvar kalınlığı 1000 mm'ye ayarlanmış olarak basıldığını unutmayın. Bu, parçaların %100 dolgu ile basılması ve böylece negatif yüzer olmaları için yapıldı.
Adım 5: Montaj
********************************* YAKINDA GELECEK *************** *********************
Önerilen:
OMeJI - Team 15 SubBob Squarepants Dalgıç: 37 Adım
OMeJI - Team 15 SubBob Squarepants Dalgıç: Bu 1/2 inçlik Schedule 40 tabanlı PVC dalgıç/uzaktan kumandalı bir araçtır. Çift kancalı, dokuz metrelik bir havuzun dibindeki iki bayrağı toplamak için tasarlandı. Bayraklar, Akademi Lisesi kon
Dalgıç 2017: 95 Adım
Dalgıç 2017: Dalgıç 2017
DIY Dalgıç ROV: 8 Adım (Resimlerle)
DIY Dalgıç ROV: Ne kadar zor olabilir? Suya daldırılabilir bir ROV yapmanın birkaç zorluğu olduğu ortaya çıktı. Ama eğlenceli bir projeydi ve bence oldukça başarılı oldu. Amacım bir servete mal olmaması, sürüşünün kolay olması ve bir kameraya sahip olmaktı
BTS - 33 - Dalgıç: 11 Adım
BTS - 33 - Dalgıç: Bu Eğitim Tablosu size 3 anahtarlı kontrol ile nasıl bir dalgıç yapılacağını öğretecektir
BTS - Team 28 (R2-DTimbs) Dalgıç/Denizaltı: 17 Adım
BTS - Team 28 (R2-DTimbs) Dalgıç/Denizaltı: Yerel hırdavatçıda bulunabilecek malzemelerden bir denizaltı inşa etmek için eğitim. Son dalgıç ileri, geri hareket edebilecek, dönebilecek, yukarı hareket edebilecek ve hareket edebilecek su boyunca aşağı