Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Kad sam dobio svoj 3D printer, počeo sam razmišljati što mogu napraviti s njim. Ispisao sam puno stvari, ali htio sam napraviti cijelu konstrukciju pomoću 3D ispisa. Tada sam razmišljao o tome da napravim robota životinjom. Moja prva ideja bila je napraviti psa ili pauka, ali mnogo je ljudi već napravilo pse i pauke. Razmišljao sam o nečem drugom, a onda o zmiji. Dizajnirao sam cijelu zmiju u fusion360 i izgledala je sjajno pa sam naručio potrebne dijelove i napravio je. Mislim da je rezultat odličan. Na gornjem videu možete vidjeti kako sam to napravio ili o tome možete pročitati ispod.
Korak 1: Dijelovi
Evo što će nam trebati:
- 8 Mikro servo motori
- Neki 3D ispisani dijelovi
- Vijci
- 3, 7V li-po baterija
- Neki dijelovi za izradu PCB -a (atmega328 SMD, kondenzator 100nF, kondenzator 470μF, otpornik 1, 2k, neke zlatne iglice). Vrlo je važno napraviti PCB za ovaj projekt jer kad spojite sve na matičnoj ploči, vaša se zmija ne bi mogla pomaknuti.
Korak 2: 3D modeli
Aboove možete vidjeti vizualizaciju ove zmije. Datoteke (.stl) možete preuzeti ovdje ili na mojoj stvari. Nekoliko informacija o postavkama za ispis:
Za ispis segmenata i glave preporučujem dodavanje splavi. Podrška nije potrebna za sve objekte. Ispuna nije toliko važna jer su svi modeli vrlo tanki i postoje gotovo samo perimetri, ali ja koristim 20%.
Trebaš:
8x segment zmije
1x zmijska glava
1x snake_back
Korak 3: PCB
Ispod možete pronaći datoteke eagle (.sch i.brd) samo ih preuzmite otvorite u eagle idite na prikaz ploče kliknite ctrl + p i ispišite ga. Ako ne znate kako napraviti PCB, možete to pročitati ovdje:
www.instructables.com/id/PCB-making-guide/
Na shemi je napisano da je mikrokontroler atmega8 ali je atmega328 ima isti pinout ali nema atmega328 u orlu.
Korak 4: Sklapanje
Nakon ispisa svih dijelova možete ih sastaviti. Postavite servo u jedan od segmenata, pričvrstite ga segmentom s vijkom M2, a zatim pričvrstite sljedeći segment na servo polugu. Ako ne znate kako ga sastaviti, pogledajte video.
Korak 5: Povezivanje
Na gornjoj fotografiji možete vidjeti gdje i što spojiti. Također sam označio gdje je MISO, MOSI i SCK pin koji vam je potreban za snimanje pokretačkog programa. Više o spaljivanju pokretačkog programa možete pročitati na službenoj arduino stranici ovdje:
www.arduino.cc/en/Tutorial/ArduinoToBreadboard
Za snimanje vam je potreban programer ili neki drugi arduino. Nakon snimanja možete ga programirati pomoću USB-UART pretvarača ili istog programatora koji koristite za snimanje pokretačkog programa.
Nakon učitavanja programa možete spojiti servo na ploču. Posljednji servo (na kraju zmije) je servo 1, a servo 8 je najbliži glavi zmije.
Na ploči nema stabilizatora pa je maksimalni napon koji možete spojiti na nju 5V.
Atmega, kao i servo motori radit će s 3, 7V Li-Po i preporučujem ga za ovaj projekt jer je vrlo mali i vrlo moćan. Možete ga pronaći u staroj RC igrački (svoju sam pronašao u starom RC helikopteru).
Na ploču sam dodao pinove RX i TX za programiranje, ali i za buduće proširenje, možete se ovdje spojiti na senzore ili na pr. bluetooth modul.
Korak 6: Program
Program koristi softversku servo biblioteku za upravljanje 8 servo pogona odjednom. To je jednostavno povećanje i smanjivanje servo položaja s malim pomakom za imitaciju vala. Zahvaljujući ovom potezu izgleda kao crv, ali se i kreće učinkovitije.
Ako želite, možete promijeniti kašnjenje na kraju petlje. Ovo kašnjenje kontrolira brzinu zmije. Dakle, ako date manju vrijednost, ona će se kretati brže, veća vrijednost = kretati se sporije. Dao sam 6 jer je ovo najveća brzina kojom se zmija ne prevrće. Ali s tim možete eksperimentirati.
Također možete promijeniti maksimalnu i minimalnu vrijednost kako biste povećali kretnje.
#uključi
SoftverServo servo1, servo2, servo3, servo4, servo5, servo6, servo7, servo8;
int b_pos, c_pos, d_pos, e_pos; Naredba niza; int razlika = 30; int kut1 = 90; int kut2 = 150;
int ser1 = 30;
int ser2 = 70; int ser3 = 110; int ser4 = 150;
int minimum = 40;
int maksimum = 170;
bool prirast_ser1 = točno;
bool prirast_ser2 = točno; bool prirast_ser3 = točno; bool prirast_ser4 = točno;
bool prirast_ser5 = točno;
int ser5 = 90;
bool prirast_ser6 = točno;
int ser6 = 90;
void setup () {
Serial.begin (9600); servo1.priključak (3); servo2.priključak (5); servo3.priključak (6); servo4.priključak (9); servo5.priključak (10); servo6.priključak (11); servo7.priključak (12); servo8.priključak (13);
servo1.pisati (90);
servo2.pisati (130); servo3.pisati (90); servo4.pisati (100); servo5.pisati (90); servo6.pisati (90); servo7.pisati (90); servo8.piši (90);
}
void loop () {{100} {101}
naprijed(); SoftwareServo:: refresh (); }
void forward () {
if (prirast_ser1) {
ser1 ++; } else {ser1--; }
if (maksimalno ser1) {
prirast_ser1 = netočno; }
servo1.write (ser1);
if (prirast_ser2) {
ser2 ++; } else {ser2--; }
if (maks. ser2) {
prirast_ser2 = netočno; }
servo3.write (ser2);
if (prirast_ser3) {
ser3 ++; } else {ser3--; }
if (maksimalno ser3) {
prirast_ser3 = netočno; }
servo5.write (ser3);
if (prirast_ser4) {
ser4 ++; } else {ser4--; }
if (maksimalno ser4) {
prirast_ser4 = netočno; }
servo7.write (ser4);
kašnjenje (6);
}
Korak 7: Zaključak
Mislim da ovaj robot izgleda jako dobro. Htio sam napraviti zmijskog robota, ali konačno sam napravio nešto što izgleda slično crvu. Ali radi jako lijepo. Ako imate pitanja, ostavite komentar ili mi pišite na: [email protected]
o ovom robotu možete pročitati i ovdje na mojoj web stranici (na poljskom):
nikodembartnik.pl/post.php?id=3
Ovaj je robot osvojio prvu nagradu na Robots Festivalu u Chorzówu u kategoriji slobodnog stila.
Druga nagrada na natjecanju iz robotike 2016