Spisu treści:
Wideo: Pojazd podwodny: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
**************** TA INSTRUKCJA JEST NADAL W TOKU ****************
Ten Instructable został stworzony w celu spełnienia wymagań projektowych Makecourse na University of South Florida (www.makecourse.com).
Ten Instructable będzie krótkim przeglądem tworzenia pojazdu podwodnego, który zaprojektowałem i zbudowałem na zajęcia Makecourse na Uniwersytecie Południowej Florydy. W tym Instruktażowym przedstawię zestawienie materiałów, kod kontrolny, który stworzyłem dla Arduino Uno, którego użyłem, oraz przegląd sposobu montażu łodzi podwodnej.
Krok 1: Materiały
Zastosowana elektronika gdzie:
1x Arduino Uno
1x kamera akcji mobius
1x kamera sportowa mobius kabel usb-b do A/V
1x ekran wyświetlacza 777 widoku pola;
1x turnigy marine 50A ESC (elektroniczna regulacja prędkości)
1x karta programowania morskiego turnigy;
1x T-Motor Navigator 400kv
1x YEP 20A BEC (obwód eliminacji baterii)
6x wodoodporny król hobby HK15139
2x równoległe trójniki i wiązki
2x18-calowe przedłużacze serwo
Przedłużacze serwo 6x6 cali
2x1300 mah 3s baterie Lipo
2x 2500 mah 4s baterie Lipo
1x tablica rozdzielcza zasilania ze stałymi wyjściami 5V i 12V
Materiały budowlane, w których:
1x3/16 cala arkusz sklejki
1x6 cali ID ABS rura wysyłkowa
1x silikonowa rurka
1x puszka elastycznej uszczelki
4x szpule filamentu do drukarki 3D ABS
1x24 calowa prowadnica szuflady
Rurki termokurczliwe
1x 10 stóp szkockiej marki duraloc na rzep
1x plastikowa żywica epoksydowa JB Weld
1x akrylowa kopuła kamery bezpieczeństwa o średnicy 6,2 cala;
2x przepusty Ethernet IP68
2x24-calowy kabel ethernet cat6;
1x200 stóp kabel ethernet cat6;
Zastosowany sprzęt to:
24x 1/2 cala mosiężne wkręty do drewna
24x ------ śruby (w zestawie z serwomechanizmami)
Użyte narzędzia:
Śrubokręty Filipa i Śrubokręty z płaskim łbem
Zestaw kluczy imbusowych
Lutownica
Opalarka
Drukarka 3D (użyłem Monoprice Maker Select Plus)
Krok 2: Programowanie
Poniżej znajduje się kod, który został stworzony do sterowania łodzią podwodną. Dołączyłem również plik.ino, aby można go było pobrać.
Ten kod został stworzony dla Arduino Uno przy użyciu kompilatora Arduino.
/**********************************************************************************************************************************************************************
Autor: Jonah Powers Data: 11.09.2018 Cel: Kod kontrolny dla zdalnie sterowanego pojazdu podwodnego ****************************** ************************************************** ************************************************** ************************************/ #include //W tym biblioteka serwo Servo roll1; //Deklarowanie roll1 jako serwa Servo roll2; //Deklarowanie roll2 jako serwa Servo elev1; //Deklarowanie elev1 jako serwa Servo elev2; //Deklarowanie elev2 jako serwa Servo yaw1; //Deklarowanie yaw1 jako serwa Servo yaw2; //Deklarowanie yaw2 jako serwa Servo esc; //Deklarowanie esc jako serwa
int pot1 = 0; //Inicjalizacja zmiennej pot1 jako liczby całkowitej i ustawienie jej na 0 int pot2 = 1; //Inicjalizacja zmiennej pot2 jako liczby całkowitej i ustawienie jej na 2 int pot3 = 2; //Inicjalizacja zmiennej pot3 jako liczby całkowitej i ustawienie jej na 4 int pot4 = 3; //Inicjalizacja zmiennej pot4 jako liczby całkowitej i ustawienie jej na 5 int val1; //Inicjalizacja zmiennej wart1 jako liczby całkowitej int wart2; //Inicjalizacja zmiennej wart2 jako liczby całkowitej int wart3; //Inicjalizacja zmiennej wart3 jako liczby całkowitej int wart4; //Inicjalizacja zmiennej wart4 jako liczby całkowitej int wart5; //Inicjalizacja zmiennej wart5 jako liczby całkowitej int wart6; //Inicjalizacja zmiennej val6 jako liczby całkowitej int val7; //Inicjalizacja zmiennej val7 jako liczby całkowitej int val8; //Inicjalizacja zmiennej val8 jako liczby całkowitej int mspeed; //Inicjalizacja zmiennej mspeed jako liczby całkowitej
void setup() { //Etap inicjalizacji Arduino Serial.begin(9600); //Inicjowanie monitora szeregowego roll1.attach(2); //Podłączenie serwomechanizmu roll1 do pinu cyfrowego 2 roll2.attach(3); //Podłączenie serwo roll2 do pinu cyfrowego 3 elev1.attach(5); //Podłączenie serwomechanizmu elev1 do pinu cyfrowego 5 elev2.attach(6); //Podłączenie serwomechanizmu elev2 do cyfrowego pinu 6 yaw1.attach(8); //Podłączenie serwomechanizmu yaw1 do cyfrowego pinu 8 yaw2.attach(9); //Podłączenie serwomechanizmu yaw2 do cyfrowego pinu 9 esc.attach(11); //Podłączenie serwomechanizmu esc do pinu cyfrowego 11 roll1.write(90); //Zapis serwa roll1 do jego wyśrodkowanej pozycji roll2.write(90); //Zapis serwo roll2 do jego wyśrodkowanej pozycji elev1.write(90); //Zapis serwomechanizmu elev1 do jego wyśrodkowanej pozycji elev2.write(90); //Zapis serwomechanizmu elev2 do jego wyśrodkowanej pozycji yaw1.write(90); //Zapis yaw1 serwomechanizmu do jego wyśrodkowanej pozycji yaw2.write(90); //Zapisanie odchylenia serwa2 do jego wyśrodkowanej pozycji esc.write(180); //Zapis serwa esc do jego wyśrodkowanej pozycji delay(2500); //Czekam 2 sekundy esc.write(90); opóźnienie(5000); }
void loop() { //Kod główny do nieskończonej pętli if(analogRead(pot1)<1 && analogRead(pot2)<1 && analogRead(pot3)<1 && analogRead(pot4)= 485 && val1<= 540){ // Sprawdzanie czy "Joystick" (potencjometr) jest wyśrodkowany roll1.write(90); //Zapis serwa roll1 do pozycji środkowej roll2.write(90); //Zapisywanie serwomechanizmu roll2 do pozycji środkowej } else{ //Co zrobić, jeśli "Joystick" nie jest wyśrodkowany val1 = map(val1, 0, 1023, 10, 170); //Mapowanie val1 od 10 do 170 i przypisanie do val1 roll1.write(val1); //Zapis serwa roll1 do pozycji zdefiniowanej przez val1 roll2.write(val1); //Zapis serwo roll2 do pozycji zdefiniowanej przez val1 }
val2 = odczyt analogowy(pot2); //Odczyt pot2 (pin analogowy 2) i zapisz wartość jako val2 if(val2>= 485 && val2<= 540){ //Sprawdzenie, czy "Joystick" (potencjometr) jest wyśrodkowany elev1.write(90); //Zapis serwomechanizmu elev1 do pozycji środkowej elev2.write(90); //Zapis serwa elev2 do pozycji środkowej } else{ //Co zrobić, jeśli "Joystick" nie jest wyśrodkowany val3 = map(val2, 0, 1023, 10, 170); //Mapowanie val2 od 10 do 170 i przypisanie do val3 val4 = map(val2, 0, 1023, 170, 10); //Mapowanie val2 od 170 do 10 i przypisanie do val4 elev1.write(val3); //Zapis serwa elev1 do pozycji zdefiniowanej przez val3 elev2.write(val4); //Zapis serwa elev2 do pozycji zdefiniowanej przez val4 }
val5 = odczyt analogowy(pot3); //Odczyt pot3 (pin analogowy 4) i zapisz wartość jako val5 if(val5>= 485 && val5<= 540){ //Sprawdzenie, czy "Joystick" (potencjometr) jest wyśrodkowany yaw1.write(90); //Zapis serwomechanizmu yaw1 do pozycji środkowej yaw2.write(90); //Zapisywanie odchylenia serwa2 na pozycję środkową } else{ //Co zrobić, jeśli "Joystick" nie jest wyśrodkowany val6 = map(val5, 0, 1023, 10, 170); //Mapowanie val5 od 10 do 170 i przypisanie do val6 val7 = map(val5, 0, 1023, 170, 10); //Mapowanie val5 od 10 do 170 i przypisanie do val7 yaw1.write(val6); //Zapis serwa yaw1 do pozycji zdefiniowanej przez val6 yaw2.write(val7); //Zapis yaw2 serwa do pozycji zdefiniowanej przez val7 }
val8 = odczyt analogowy(pot4); //Odczyt pot4 (pin analogowy 5) i zapisz wartość jako val8 if(val8 > 470 && val8 80 && val8<80)||(mspeed80)){ //Sprawdzenie, czy silnik ma zamiar zmienić kierunek esc.write(80); opóźnienie (1000); //Oczekiwanie 1000 milisekund } esc.write(val8); //Zapis serwa esc do prędkości określonej przez val8 mspeed=val8; //Przechowywanie aktualnej prędkości do porównania } } Serial.print("przepustnica "); //Użycie Serial Print do wyświetlenia słowa „Throttle” Serial.println(val8); //Użycie Serial Print do pokazania wartości, dla której przepustnica jest ustawiona na Serial.print("roll "); //Użycie Serial Print do wyświetlenia słowa „Roll” Serial.println(val1); //Użycie Serial Print, aby wyświetlić wartość, dla której rolka jest ustawiona na Serial.print("podziałka"); //Użycie Serial Print do wyświetlenia słowa „Pitch” Serial.println(val3); //Użycie Serial Print, aby wyświetlić wartość, dla której pitch1 jest ustawiony na Serial.println(val4); //Użycie Serial Print do pokazania wartości, dla której pitch2 jest ustawiony na Serial.print("odchylenie"); //Użycie Serial Print do wyświetlenia słowa "Yaw" Serial.println(val6); //Użycie Serial Print do pokazania wartości, dla której yaw1 jest ustawione na Serial.println(val7); //Korzystanie z wydruku szeregowego do pokazania wartości ustawionej na yaw2 }
Krok 3: Obwody
W załączeniu zdjęcie obwodu na pokładzie łodzi podwodnej.
Stworzyłem niestandardową osłonę dla Arduino, aby uprościć okablowanie. Przesłałem pliki Eagle Schematic & Board dla tarczy. Do wyfrezowania deski użyłem LPKF S63. Serwa z przodu, które sterują rolką, zostaną podłączone do Arduino
w załączeniu zdjęcie układu wewnątrz sterownika.
Krok 4: Części drukowane 3D
Wszystkie te pliki wydrukowałem na moim urządzeniu Monoprice Maker Select Plus. Użyłem filamentu Esun ABS 1,75mm. Moje ustawienia drukowania to 105 stopni C dla temperatury stołu i 255 stopni C dla temperatury ekstrudera. Potrzebna jest tylko 1 z każdej części, z wyjątkiem tego, że będziesz potrzebować 6 kopii przedniego skrzydła. Zauważ, że te części zostały wydrukowane z grubością ścianki ustawioną na 1000 mm. Zrobiono to tak, aby części były drukowane ze 100% wypełnieniem, aby miały ujemną pływalność.
Krok 5: Montaż
********************************* WKRÓTCE *************** ********************
Zalecana:
OMeJI - Zespół 15 SubBob Kanciastoporty podwodny: 37 kroków
OMeJI - Team 15 SubBob Squarepants Submersible: Jest to zatapialny / zdalnie sterowany pojazd z PVC oparty na Harmonogramie o średnicy 1/2 cala. Został zaprojektowany do podnoszenia dwóch flag na dnie dziewięciometrowego basenu za pomocą podwójnych haków. Flagi były częścią konkursu zorganizowanego przez Akademię Liceum Kon
Samojezdny pojazd dla początkujących z funkcją unikania kolizji: 7 kroków
Samojezdny pojazd dla początkujących z funkcją unikania kolizji: Witam! Witaj w mojej przyjaznej dla początkujących instrukcji, jak stworzyć własny samojezdny pojazd zrobotyzowany z unikaniem kolizji i nawigacją GPS. Powyżej znajduje się film na YouTube prezentujący robota. Jest to model pokazujący, jak prawdziwa autonomia
Podwodny dron zdalnego sterowania: 10 kroków (ze zdjęciami)
Podwodny zdalnie sterowany dron: Zdecydowałem się zbudować ten ROV w celu eksploracji i podziwiania podwodnego świata, ponieważ nie ma tam wielu tanich podwodnych dronów. Chociaż zajmuje to dużo czasu, badań i samodydaktyki, jest to zabawny projekt
Podwodny 2017: 95 kroków
Podwodny 2017: Podwodny 2017
BTS - Drużyna 28 (R2-DTimbs) Podwodny/Podwodny: 17 kroków
BTS - Team 28 (R2-DTimbs) Submersible/Submarine: Samouczek dotyczący budowy łodzi podwodnej z materiałów, które można znaleźć w lokalnym sklepie z narzędziami. Ostateczna łódź podwodna będzie mogła poruszać się do przodu, do tyłu, obracać się, poruszać się w górę i poruszać w dół w wodzie