Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
När jag fick min 3D -skrivare började jag fundera på vad jag kan göra med den. Jag skrev ut många saker men jag ville göra en hel konstruktion med 3D -utskrift. Sedan tänkte jag göra robotdjur. Min första idé var att göra en hund eller spindel, men många har redan gjort hundar och spindlar. Jag tänkte på något annat och sedan tänkte jag på orm. Jag designade hela ormen i fusion360, och det såg fantastiskt ut så jag beställde nödvändiga delar och byggde en. Jag tycker att resultatet är jättebra. På videon ovan kan du se hur jag gjorde det eller du kan läsa om det nedan.
Steg 1: Delar
Här är vad vi behöver:
- 8 mikro servomotorer
- Några 3D -tryckta delar
- Skruvar
- 3, 7V li-po batteri
- Vissa delar att göra PCB (atmega328 SMD, kondensator 100nF, kondensator 470μF, motstånd 1, 2k, några guldnålar). Det är mycket viktigt att göra PCB för det här projektet, för när du ansluter allt på brödbrädan skulle din orm inte kunna röra sig.
Steg 2: 3D -modeller
Ovan kan du se visualisering av denna orm. Filer (.stl) kan du ladda ner här eller på min thingiverse. Lite information om inställningar för utskrift:
För utskriftssegment och huvud rekommenderar jag att du lägger till flotte. Stöd är onödigt för alla objekt. Infill är inte så viktigt eftersom alla modeller är väldigt tunna och det finns nästan bara omkrets men jag använder 20%.
Du behöver:
8x ormsegment
1x ormhuvud
1x orm_back
Steg 3: PCB
Nedan hittar du örnfiler (.sch och.brd) bara ladda ner dem öppna i eagle gå till styrelsen, klicka på ctrl + p och skriv ut den. Om du inte vet hur man gör PCB kan du läsa om det här:
www.instructables.com/id/PCB-making-guide/
På schemat står det att mikrokontroller är atmega8 men det är atmega328 den har samma pinout men det finns ingen atmega328 i örn.
Steg 4: Montering
Efter att ha skrivit ut alla delar kan du montera ihop dem. Placera servon i ett av segmenten, skruva upp det till segmentet med M2 -skruv och skruva sedan nästa segment på servoarmen. Om du inte vet hur du monterar det kan du titta på videon.
Steg 5: Anslutning
På bilden ovan kan du se var och vad du ska ansluta. Jag markerade också var är MISO, MOSI och SCK -stift du behöver den här stiftet för att bränna startladdaren. Mer om att bränna bootloader kan du vassa på den officiella arduino -sidan här:
www.arduino.cc/en/Tutorial/ArduinoToBreadboard
Du behöver programmerare eller en annan arduino för att bränna den. Efter bränning kan du programmera den med USB-UART-omvandlare eller samma programmerare som du använder för att bränna bootloader.
Efter att du har laddat upp programmet kan du ansluta servon till kortet. Sista servon (i slutet av ormen) är servo 1 och servo 8 är närmast huvudet på ormen.
Det finns ingen stabilisator på kortet så max spänning som du kan ansluta till den är 5V.
Atmega såväl som servomotorer fungerar med 3, 7V Li-Po och jag rekommenderar att använda den för detta projekt eftersom den är väldigt liten och mycket kraftfull. Du hittar den i gammal RC -leksak (jag hittade min gamla RC -helikopter).
Jag lade till kortstiften RX och TX för programmering men också för framtida expansion, du kan ansluta till här sensorer eller t.ex. Bluetooth -modul.
Steg 6: Programmera
Programmet använder programvaruservobibliotek för att styra 8 servon samtidigt. Det är helt enkelt att öka och minska servopositionen med ett litet skift för att imitera våg. Tack vare detta drag ser det ut som en mask men rör sig också mer effektivt.
Om du vill kan du ändra fördröjning i slutet av slingan. Denna fördröjning styr ormens hastighet. Så om du ger mindre värde kommer det att gå snabbare, högre värde = flytta långsammare. Jag gav 6 eftersom det här är den högsta hastigheten med vilken ormen inte välter. Men du kan experimentera med detta.
Du kan också ändra maximi- och minimivärde för att göra rörelser större.
#omfatta
SoftwareServo servo1, servo2, servo3, servo4, servo5, servo6, servo7, servo8;
int b_pos, c_pos, d_pos, e_pos; Strängkommando; int skillnad = 30; int vinkel1 = 90; int vinkel2 = 150;
int ser1 = 30;
int ser2 = 70; int ser3 = 110; int ser4 = 150;
int minimum = 40;
int maximum = 170;
bool inkrement_ser1 = true;
bool inkrement_ser2 = true; bool inkrement_ser3 = true; bool inkrement_ser4 = true;
bool inkrement_ser5 = true;
int ser5 = 90;
bool inkrement_ser6 = true;
int ser6 = 90;
void setup () {
Serial.begin (9600); servo1. bifoga (3); servo2. bifoga (5); servo3. bifoga (6); servo4. fäst (9); servo5. fäst (10); servo6. bifoga (11); servo7. bifoga (12); servo8. bifoga (13);
servo1.write (90);
servo2.write (130); servo3.write (90); servo4.write (100); servo5.write (90); servo6.write (90); servo7.write (90); servo8.write (90);
}
void loop () {
fram(); SoftwareServo:: refresh (); }
ogiltig framåt () {
if (inkrement_ser1) {
ser1 ++; } annat {ser1--; }
if (max ser1) {
inkrement_ser1 = false; }
servo1.write (ser1);
if (inkrement_ser2) {
ser2 ++; } annat {ser2--; }
if (ser2 max) {
inkrement_ser2 = false; }
servo3.write (ser2);
if (inkrement_ser3) {
ser3 ++; } annat {ser3--; }
om (ser3 max) {
inkrement_ser3 = false; }
servo5.write (ser3);
if (inkrement_ser4) {
ser4 ++; } annat {ser4--; }
om (ser4 max) {
inkrement_ser4 = false; }
servo7.write (ser4);
fördröjning (6);
}
Steg 7: Slutsats
Jag tycker att den här roboten ser väldigt bra ut. Jag ville göra en ormrobot men till slut gjorde jag något som liknar mask. Men det fungerar väldigt bra. Om du har några frågor lämna en kommentar eller skriv till mig: [email protected]
du kan också läsa om denna robot här på min webbplats (på polska):
nikodembartnik.pl/post.php?id=3
Denna robot vann förstapriset på Robots Festival i Chorzów i kategorin freestyle.
Andra pris i Robotics Contest 2016