Tartalomjegyzék:

Merülő jármű: 5 lépés
Merülő jármű: 5 lépés

Videó: Merülő jármű: 5 lépés

Videó: Merülő jármű: 5 lépés
Videó: Simonyák Zoltán oktató - Műszaki ellenőrzés vizsgán (B kat.) 2024, December
Anonim
Merülő jármű
Merülő jármű
Merülő jármű
Merülő jármű

**************** EZ AZ UTASÍTÁS MÉG FOLYAMATOS MUNKA ****************

Ez az oktatható a Dél -Floridai Egyetem Makecourse (www.makecourse.com) projektkövetelményének teljesítésével jött létre.

Ez az Instructable rövid áttekintést nyújt a merülő jármű létrehozásáról, amelyet a Dél -Floridai Egyetem Makecourse osztályához terveztem és építettem. Ebben az utasításban egy anyagjegyzéket, az általam használt Arduino Uno -hoz létrehozott vezérlőkódot és a merülőberendezés összeállításának áttekintését adom meg.

1. lépés: Anyagok

Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
Anyagok

A használt elektronika, ahol:

1x Arduino Uno

1x mobius akció kamera

1x mobius akció kamera usb-b-A/V kábel

1x mező nézet 777 kijelző

1x turnigy marine 50A ESC (elektronikus sebességszabályozó)

1x turnigy tengeri programozókártya

1x T-Motor Navigator 400kv

1x YEP 20A BEC (akkumulátor -eltávolító áramkör)

6x hobby king HK15139 vízálló szervó

2x párhuzamos T-csatlakozó és kábelköteg

2x 18 hüvelykes szervo hosszabbító vezeték

6x 6 hüvelykes szervo hosszabbító vezeték

2x 1300mah 3s Lipo akkumulátor

2x 2500mah 4s Lipo akkumulátor

1x tápegység 5v és 12v fix kimenettel

Az építőanyagok, ahol:

1x 3/16 hüvelykes rétegelt lemez

1x 6 hüvelykes ID ABS szállítócső

1x szilikon cső

1x doboz flex tömítés

4x orsó ABS 3D nyomtatószál

1x 24 hüvelykes fiókos toló

Hőzsugorító cső

1x 10 láb skót márkájú duraloc tépőzár

1x JB Hegeszthető műanyag epoxi

1x 6,2 hüvelyk átmérőjű akril biztonsági kamera kupola

2x IP68 ethernet áthaladás

2x 24 hüvelykes cat6 ethernet kábel

1x 200 lábas cat6 ethernet kábel

A felhasznált hardver a következő volt:

24x 1/2 hüvelykes sárgaréz fa csavarok

24x ------ csavarok (szervókhoz mellékelve)

A használt eszközök:

Fülöp és laposfejű csavarhúzók

Imbuszkulcs készlet

Forrasztópáka

Hőfegyver

3D nyomtató (Monoprice Maker Select Plus -t használtam)

2. lépés: Programozás

Programozás
Programozás
Programozás
Programozás
Programozás
Programozás
Programozás
Programozás

Az alábbiakban bemutatjuk a kódot, amelyet a merülőmotor vezérlésére hoztak létre. Az.ino fájlt is letöltöttem, hogy letölthető legyen.

Ezt a kódot az Arduino Uno számára hozták létre az Arduino fordító használatával.

/**********************************************************************************************************************************************************************

Szerző: Jonah Powers Dátum: 2018.11.9. ************************************************** ************************************************** ************************************/#include // A szervokönyvtár szervo roll1 -ét is beleértve; // A tekercs1 szervo tekercsnek nyilvánítása2; // A roll2 deklarálása szervo szervó elev1; // Az elev1 szervo szervová nyilvánítása Servo elev2; // Az elev2 szervo yaw -nak nyilvánítása1; // Az yaw1 szervóvá nyilvánítása Servo yaw2; // yaw2 szervo szervóvá nyilvánítása Servo esc; // Az esc szervónak nyilvánítása

int pot1 = 0; // A pot1 változó inicializálása egész számként, és 0 -ra való beállítása int pot2 = 1; // A pot2 változó inicializálása egész számként és beállítása 2 int pot3 = 2; // A pot3 változó inicializálása egész számként és beállítása 4 int pot4 = 3; // A pot4 változó inicializálása egész számként, és 5 int val1 értékre állítása; // A val1 változó inicializálása egész számként int val2; // A val2 változó inicializálása egész számként int val3; // A val3 változó inicializálása egész számként int val4; // A val4 változó inicializálása egész számként int val5; // A val5 változó inicializálása egész számként int val6; // A val6 változó inicializálása egész számként int val7; // A val7 változó inicializálása egész számként int val8; // A val8 változó inicializálása egész számként int mspeed; // Az mspeed változó inicializálása egész számként

void setup () {// Arduino inicializációs szakasz Serial.begin (9600); // A soros figyelő inicializálása roll1.attach (2); // Szervohenger1 rögzítése a 2. digitális csaphoz roll2.attach (3); // Szervohenger2 rögzítése a 3. digitális tüskéhez elev1.attach (5); // szervo elev1 csatlakoztatása az 5. digitális tűhöz elev2.attach (6); // A szervo elev2 csatlakoztatása a 6 -os digitális csaphoz yaw1.attach (8); // A szervo yaw1 csatlakoztatása a 8 -as digitális csaphoz yaw2.attach (9); // A szervo yaw2 csatlakoztatása a 9 -es digitális csaphoz, pl. Csat. (11); // Szervo esc csatlakoztatása a 11 -es digitális csaphoz roll1.write (90); // Szervo tekercs1 írása a középpontjába roll2.write (90); // Szervo tekercs2 írása középpontjába elev1.write (90); // Szervo elev1 írása középső helyzetébe elev2.write (90); // A szervo elev2 írása középre, yaw1.write (90); // A szervo yaw1 írása a középpontjába yaw2.write (90); // A servo yaw2 írása középső helyzetébe esc.write (180); // Szervo esc írása a középső pozíció késleltetésére (2500); // Várakozás 2 másodperc esc.write (90); késleltetés (5000); }

void loop () {// A fő kód a végtelen ciklushoz, ha (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Annak ellenőrzése, hogy a "Joystick" (potenciométer) középen van -e roll1.write (90); // Szervohenger1 írása a középső pozícióba roll2.write (90); // A szervo roll2 írása középhelyzetbe} else {// Mi a teendő, ha a "Joystick" nincs középen val1 = map (val1, 0, 1023, 10, 170); // A val1 leképezése 10 -ről 170 -re, és hozzárendelése a val1 -hez roll1.write (val1); // Servo roll1 írása a val1 roll2.write (val1) által meghatározott pozícióba; // A szervo roll2 írása a val1 által meghatározott pozícióba

val2 = analogRead (pot2); // A pot2 olvasása (analóg pin 2), és az érték mentése val2 -ként, ha (val2> = 485 && val2 <= 540) {// Annak ellenőrzése, hogy a "Joystick" (potenciométer) középre van -e állítva elev1.write (90); // szervo elev1 írása középhelyzetbe elev2.write (90); // Szervo elev2 írása középső pozícióba} else {// Mi a teendő, ha a "Joystick" nincs középen val3 = map (val2, 0, 1023, 10, 170); // A val2 leképezése 10 -ről 170 -re és hozzárendelése a val3 -hoz val4 = map (val2, 0, 1023, 170, 10); // A val2 leképezése 170 -ről 10 -re, és hozzárendelése a val4 -hez elev1.write (val3); // Servo elev1 írása a val3 által definiált pozícióba elev2.write (val4); // Servo elev2 írása a val4 által meghatározott pozícióba

val5 = analogRead (pot3); // A pot3 olvasása (analóg 4 -es érintkező), és az érték mentése val5 -ként, ha (val5> = 485 && val5 <= 540) {// Annak ellenőrzése, hogy a "Joystick" (potenciométer) középre van -e irányítva.write (90); // Servo yaw1 írása yaw2.write középső pozícióba (90); // A szervo yaw2 írása a középső pozícióba} else {// Mi a teendő, ha a "Joystick" nincs középen val6 = map (val5, 0, 1023, 10, 170); // A val5 leképezése 10 -ről 170 -re és hozzárendelése a val6 -hoz val7 = map (val5, 0, 1023, 170, 10); // A val5 leképezése 10 -ről 170 -re, és hozzárendelése a val7 -hez yaw1.write (val6); // Servo yaw1 írása a val6 által meghatározott positonba yaw2.write (val7); // A servo yaw2 írása a val7 által meghatározott pozícióba}

val8 = analogRead (pot4); // Pot4 olvasása (analóg 5 -ös tű) és az érték mentése val8 -ként, ha (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Annak ellenőrzése, hogy a motor nem változtat -e irányt esc.write (80); késleltetés (1000); // Várakozás 1000 ezredmásodperc} esc.write (val8); // Szervo esc írása a val8 által meghatározott sebességre mspeed = val8; // Az aktuális sebesség tárolása összehasonlítás céljából}} Serial.print ("fojtószelep"); // Soros nyomtatás használatával a "Throttle" szó megjelenítése Serial.println (val8); // Soros nyomtatás használata a fojtószelep Serial.print ("roll") értékének megjelenítésére; // Soros nyomtatás használata a "Roll" szó megjelenítésére Serial.println (val1); // Soros nyomtatás használata annak megjelenítésére, hogy a tekercs Serial.print ("pitch") értékre van állítva; // Soros nyomtatás használatával a "Pitch" szó megjelenítése Serial.println (val3); // Soros nyomtatás használata annak az értéknek a megjelenítésére, hogy a pitch1 értéke Serial.println (val4); // Soros nyomtatás használata annak az értéknek a megjelenítésére, hogy a pitch2 Serial.print ("yaw"); // Soros nyomtatás használata a "Yaw" szó megjelenítésére Serial.println (val6); // A Soros nyomtatás használatával megmutatja az yaw1 értékét Serial.println (val7); // Soros nyomtatás használata az yaw2 értékének megjelenítésére}

3. lépés: Áramkörök

A mellékelt fotó a merülőberendezés fedélzetén lévő áramkörről.

Egyedi pajzsot készítettem az Arduino számára, hogy egyszerűsítsem a vezetékezést. Feltöltöttem az Eagle Schematic & Board fájljait a pajzshoz. A tábla marásához LPKF S63 -at használtam. a vezérlőtekercs elülső szervóit az Arduino -hoz csatlakoztatják

csatolva egy fénykép a vezérlőn belüli áramkörről.

4. lépés: 3D nyomtatott alkatrészek

Mindezeket a fájlokat kinyomtattam a Monoprice Maker Select Plus készüléken. Esun ABS 1.75mm szálat használtam. A nyomtatási beállítások 105 ° C voltak a nyomtatóágy hőmérsékletén és 255 ° C az extruder hőmérsékletén. Minden részből csak 1 szükséges, kivéve, hogy 6 példányra lesz szüksége az első szárnyra. Megjegyezzük, hogy ezeket az alkatrészeket 1000 mm falvastagsággal nyomtattuk. Ezt úgy tették, hogy az alkatrészeket 100% -os kitöltéssel nyomtatják, így negatívan lebegnek.

5. lépés: Összeszerelés

********************************* HAMAROSAN *************** *******************

Ajánlott: