Kazalo:
- 1. korak: Materiali
- 2. korak: Programiranje
- 3. korak: Vezje
- 4. korak: 3D natisnjeni deli
- 5. korak: Montaža
Video: Potopno vozilo: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
**************** TO NAVODILO JE ŠE DELO V TEKU ****************
Ta Instructable je nastal v skladu z zahtevami projekta Makecourse na Univerzi v Južni Floridi (www.makecourse.com).
Ta Instructable bo kratek pregled ustvarjanja potopnega vozila, ki sem ga oblikoval in izdelal za moj razred Makecourse na Univerzi v Južni Floridi. V tem navodilu bom predstavil gradivo, kontrolno kodo, ki sem jo ustvaril za Arduino Uno, ki sem jo uporabil, in pregled, kako sestaviti podvodno napravo.
1. korak: Materiali
Elektronika se uporablja pri:
1x Arduino Uno
1x akcijska kamera mobius
1x mobius akcijska kamera usb-b do A/V kabla
1x zaslon 777 s pogledom na polje
1x rečni motor 50A ESC (elektronski nadzor hitrosti)
1x pomorska programska kartica turnir
1x Navigator T-Motor 400kv
1x YEP 20A BEC (vezje za odstranjevanje baterij)
6x vodoodporni servo motorji za hobije king HK15139
2x vzporedni T-priključek y pasov
2x 18 -palčne servo podaljške
6x 6 -palčne servo podaljške
2x 1300mah 3s Lipo baterije
2x 2500mah 4s Lipo baterije
1x razdelilna plošča z fiksnimi izhodi 5v in 12v
Gradbeni materiali, kjer:
1x 3/16 palčni list vezanega lesa
1x 6 -palčna transportna cev ID ABS
1x silikonska cev
1x pločevina fleksibilnega tesnila
4x tuljave ABS 3D tiskalniške niti
1x 24 -palčni predal za predale
Termoskrčljiva cev
1x 10 čevljev duraloc velcro blagovne znamke scotch
1x JB Varilni plastični epoksid
1x akrilna varnostna kamera s premerom 6,2 palca
2x vmesniki Ethernet IP68
2x 24 -palčni ethernetni kabel cat6
1x Ethernet kabel cat6, 200 čevljev
Uporabljena strojna oprema je bila:
24x 1/2 palčni medeninasti vijaki za les
24x ------ vijaki (vključeni s servomotorji)
Uporabljena orodja:
Philipsov in ploski izvijač
Imenovan imbus ključ
Spajkalnik
Toplotna pištola
3D tiskalnik (uporabil sem Monoprice Maker Select Plus)
2. korak: Programiranje
Spodaj je koda, ki je bila ustvarjena za nadzor podvodne naprave. Priložil sem tudi datoteko.ino, da jo lahko prenesete.
Ta koda je bila ustvarjena za Arduino Uno s prevajalnikom Arduino.
/**********************************************************************************************************************************************************************
Avtor: Jonah Powers Datum: 9.11.2018 Namen: Nadzorna koda za daljinsko vodeno potopno vozilo **************************** ************************************************ ************************************************ **********************************/#include // Vključno s servo knjižnico Servo roll1; // razglasitev roll1 za servo servo roll2; // razglasitev roll2 za servo servo elev1; // razglasitev elev1 za servo servo elev2; // razglasitev elev2 za servo servo yaw1; // razglasitev yaw1 kot servo servo yaw2; // razglasitev yaw2 za servo servo esc; // Razglasitev esc za servo
int pot1 = 0; // Inicializiranje spremenljivke pot1 kot celo število in njeno nastavitev na 0 int pot2 = 1; // Inticializiranje spremenljivke pot2 kot celo število in njeno nastavitev na 2 int pot3 = 2; // Inicializiranje spremenljivke pot3 kot celo število in nastavitev na 4 int pot4 = 3; // Inticializiranje spremenljivke pot4 kot celo število in njeno nastavitev na 5 int val1; // Inicializiranje spremenljivke val1 kot celo število int val2; // Inicializiranje spremenljivke val2 kot celo število int val3; // Inicializiranje spremenljivke val3 kot celo število int val4; // Inicializiranje spremenljivke val4 kot celo število int val5; // Inicializiranje spremenljivke val5 kot celo število int val6; // Inicializiranje spremenljivke val6 kot celo število int val7; // Inicializiranje spremenljivke val7 kot celo število int val8; // Inicializiranje spremenljivke val8 kot celo število int mspeed; // Inicializiranje spremenljivke mspeed kot celo število
void setup () {// Faza inicializacije Arduina Serial.begin (9600); // Inicializacija serijskega nadzornika roll1.attach (2); // pritrditev servo zvitka1 na digitalni zatič 2 zvitka2.priključek (3); // pritrditev servo zvitka2 na digitalni zatič 3 elev1.attach (5); // pritrditev servo elev1 na digitalni zatič 5 elev2.attach (6); // pritrditev servo elev2 na digitalni zatič 6 yaw1.attach (8); // pritrditev servo yaw1 na digitalni zatič 8 yaw2.attach (9); // pritrditev servo yaw2 na digitalni pin 9 esc.attach (11); // pritrditev servo esc na digitalni zatič 11 roll1.write (90); // Pisanje servo zvitka1 v centrirano pozicijo roll2.write (90); // Pisanje servo zvitka2 v središčni položaj elev1.write (90); // Pisanje servo elev1 v središčni položaj elev2.write (90); // Pisanje servo elev2 v središčni položaj yaw1.write (90); // Pisanje servo yaw1 v središčni položaj yaw2.write (90); // Pisanje servo yaw2 v njegov centriran položaj esc.write (180); // Zapis servo esc v zakasnitev centriranega položaja (2500); // Čakanje 2 sekundi esc.write (90); zamuda (5000); }
void loop () {// Glavna koda za neskončno zanko if (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Preverjanje, ali je "Joystick" (potenciometer) centriran roll1.write (90); // Pisanje servo zvitka1 v sredinski položaj roll2.write (90); // Zapis servo roll2 v središčni položaj} else {// Kaj storiti, če "Joystick" ni centriran val1 = map (val1, 0, 1023, 10, 170); // preslikava val1 od 10 do 170 in dodelitev val1 roll1.write (val1); // Zapis servo roll1 v položaj, ki ga določa val1 roll2.write (val1); // Zapis servo roll2 v položaj, ki ga določa val1}
val2 = analogRead (pot2); // Odčitavanje pot2 (analogni pin 2) in shranjevanje vrednosti kot val2 if (val2> = 485 && val2 <= 540) {// Preverjanje, ali je "Joystick" (potenciometer) centriran elev1.write (90); // Zapis servo elev1 v sredinski položaj elev2.write (90); // Zapis servo elev2 v središčni položaj} else {// Kaj storiti, če "Joystick" ni centriran val3 = map (val2, 0, 1023, 10, 170); // preslikava val2 od 10 do 170 in dodelitev val3 val4 = map (val2, 0, 1023, 170, 10); // preslikava val2 s 170 na 10 in dodelitev val4 elev1.write (val3); // Zapis servo elev1 v položaj, ki ga določa val3 elev2.write (val4); // Zapis servo elev2 v položaj, ki ga določa val4}
val5 = analogRead (pot3); // Odčitavanje pot3 (analogni pin 4) in shranjevanje vrednosti kot val5 if (val5> = 485 && val5 <= 540) {// Preverjanje, ali je "Joystick" (potenciometer) centriran yaw1.write (90); // Zapis servo yaw1 v sredinski položaj yaw2.write (90); // Zapis servo yaw2 v središčni položaj} else {// Kaj storiti, če "Joystick" ni centriran val6 = map (val5, 0, 1023, 10, 170); // Preslikava val5 od 10 do 170 in dodelitev val6 val7 = map (val5, 0, 1023, 170, 10); // preslikava val5 od 10 do 170 in dodelitev val7 yaw1.write (val6); // Zapis servo yaw1 v položaj, ki ga določa val6 yaw2.write (val7); // Zapis servo yaw2 v položaj, ki ga določa val7}
val8 = analogRead (pot4); // Odčitavanje pot4 (analogni pin 5) in shranjevanje vrednosti kot val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Preverjanje, ali bo motor spremenil smer esc.write (80); zamuda (1000); // Čakanje 1000 milisekund} esc.write (val8); // Zapis servo esc na hitrost, ki jo določa val8 mspeed = val8; // Shranjevanje trenutne hitrosti za primerjavo}} Serial.print ("throttle"); // Uporaba Serial Print za prikaz besede "Throttle" Serial.println (val8); // Uporaba Serial Print za prikaz vrednosti, ki je nastavljena na Serial.print ("roll"); // Uporaba Serial Print za prikaz besede "Roll" Serial.println (val1); // Uporaba Serial Print za prikaz vrednosti, ki je nastavljena na Serial.print ("pitch"); // Uporaba Serial Print za prikaz besede "Pitch" Serial.println (val3); // Uporaba Serial Print za prikaz vrednosti, ki je pitch1 nastavljena na Serial.println (val4); // Uporaba Serial Print za prikaz vrednosti, ki je pitch2 nastavljena na Serial.print ("yaw"); // Uporaba Serial Print za prikaz besede "Yaw" Serial.println (val6); // Uporaba Serial Print za prikaz vrednosti, ki je yaw1 nastavljena na Serial.println (val7); // Uporaba serijskega tiskanja za prikaz vrednosti, ki je nastavljena na yaw2}
3. korak: Vezje
Priložena je fotografija vezja na krovu podvodne naprave.
Ustvaril sem ščit po meri za Arduino, da poenostavim ožičenje. Naložil sem datoteke Eagle Schematic & Board za ščit. Za rezkanje plošče sem uporabil LPKF S63. servomotorji na sprednji strani tega kontrolnega zvitka bodo priključeni na Arduino
priložena je fotografija vezja v krmilniku.
4. korak: 3D natisnjeni deli
Vse te datoteke sem natisnil na Monoprice Maker Select Plus. Uporabil sem Esun ABS 1,75 mm nit. Moje nastavitve tiskanja so bile 105 stopinj C za temperaturo tiskalne plasti in 255 stopinj C za temperaturo ekstruderja. Potreben je le 1 del vsakega dela, razen da potrebujete 6 kopij sprednjega krila. Upoštevajte, da so bili ti deli natisnjeni z debelino stene 1000 mm. To je bilo storjeno tako, da so bili deli natisnjeni s 100% polnitvijo, da bi bili negativno plavajoči.
5. korak: Montaža
********************************* PRIHAJA KMALU *************** *******************
Priporočena:
Super FAST RC Ground Effect vozilo (Ekranoplan): 5 korakov (s slikami)
Super FAST RC Ground Effect Vehicle (Ekranoplan): Veste, kako med dotikom letala nekaj časa lebdijo nekaj metrov nad tlemi, preden njihova kolesa dejansko zadenejo vzletno-pristajalno stezo? To ne samo, da bi potnikom omogočilo nemoten pristanek, ampak je tudi naravni rezultat učinka tal, pri katerem
Igrače, ki se prilagajajo stikalom: dostopno gasilsko vozilo WolVol !: 7 korakov
Switch-Adapt Toys: WolVol Fire Truck Made Accessible !: Prilagajanje igrač odpira nove poti in prilagojene rešitve, ki otrokom z omejenimi motoričnimi sposobnostmi ali motnjami v razvoju omogočajo samostojno interakcijo z igračami. V mnogih primerih otroci, ki potrebujejo prilagojene igrače, ne morejo
Nagibno vozilo RC Model: 21 korakov (s slikami)
Nagibno vozilo z modelom RC: Ta model je vozilo z nagibom 1/10 z dvema sprednjima kolesoma in enim pogonom zadaj; je izhajal iz električnega modela RC Arrma Vortex 1/10, ki je uporabil aluminijasto ohišje in odstranil celoten hrbet, kamor je postavil elektromotor in njegov tr
Kako narediti generator sirene - UM3561 - Policija, reševalno vozilo, gasilsko vozilo: 6 korakov
Kako narediti generator sirene | UM3561 | Policija, reševalno vozilo, gasilsko vozilo: Naučite se, kako narediti DIY elektronski generator sirene, ki lahko proizvaja sireno za policijske avtomobile, sireno za reševalno vozilo v sili & gasilski zvok z uporabo tonskega generatorja sirene IC UM3561a. Vezje zahteva le nekaj komponent in ga je mogoče postaviti skupaj
BTS - 33 - Potopno: 11 korakov
BTS - 33 - Potopni: Ta Instructable vas bo naučil, kako narediti potopno s krmilnikom s tremi stikali