God dag till alla! Den här artikeln kommer att ägnas åt älskare av elektronik, robotik och människor med en icke-standardiserad titt på de omgivande sakerna!
Så nu kommer jag att försöka beskriva skapelsesprocessen, montering så tydligt som möjligt roboten med elektronisk stoppning, nämligen på Arduino! Låt oss gå!
Vad vi behöver:
Tretrådig slinga (3 stycken). Det är lämpligt att ta mer autentiska.
Vanliga ledningar
potentiometrar
motstånd (220 ohm)
knapp
Batterifack
prototyper ombord
Tja, självklart arduinka
Och också en utvidgningskort till det - något liknande MultiservoShieldför att kontrollera ett stort antal servon
Och mer designer, som kommer att ligga till grund för vår robot, så det är tillrådligt att välja "stark"
Från de verktyg du behöver:
En uppsättning skruvmejslar, nycklar etc.
Förutom lödkolv, lod och flussmedel
Låt oss komma igång!
Steg 1. Tillverkning av huvudramen
För att börja, samla de "två bokstäverna H" Det ser ut så här:
Sedan lite konstruktion som vår roboten kommer att stå. Det är inte alls nödvändigt som på bilden - efter eget gottfinnande .. Det visade sig så här:
Vi installerar vår "N" på supporten
Underifrån drar vi åt bultarna
På den andra "H" fixar vi den första servon, som är ansvarig för att vrida huvuden på vår framtida robot
Det visar sig något som följande:
Nästan är ramen klar! Det återstår att fästa dessa två strukturer med metallplattor och ge roboten höjd!
Steg 2: Skapa en ram för framtida robotöron
För att göra detta måste vi sätta ihop två liknande strukturer och fixera servos på dem, som visas på figuren:
Anslut sedan med bultar och muttrar till huvudramen. Det kommer att visa sig följande:
Ovanifrån:
Nåväl, en viss prototyp av roboten är nästan klar! Gå vidare ...
Steg 3. Gör ögonen och hela robotens huvud!
För detta använde jag den gamla handenheten från intercom. Personligen påminner hon mig om ett ansikte! Se mer ..
Vi gör två hål och fäster vippan för servon i röret
Vi limmar omedelbart lysdioderna på sidorna och löd trådarna på dem
Jag använde tunna:
Steg 4 Att göra öron
Vi kommer att använda vanliga mössor från små lådor
Fäst också gungstolarna för serv
Nu fixar vi djärvt delarna av robotens kropp på servrarna
Gilla detta:
Ovanifrån:
bak:
I princip kan du njuta av roboten nu, men vi kommer att komplicera uppgiften ... Vi kommer att vända robotens ögon och öron med hjälp av potentiometrar och våra arduinka
Steg # 5 Elektronik
Genom att kombinera arduino med multiserviceskölden sätter vi in en tretrådsslinga från varje servo till stiften 9, 10, 11 (vänster örat, höger örat, cent, om du sätter roboten mot oss)
Sedan på brädan installerar vi en potentiometer, en knapp, motstånd ... Det kommer att se ut så här, ful förstås, men det viktigaste fungerar)
Mer information!
Så här installerar du knappen:
Där den vita kabeln är ström är Röd den digitala ingången till mikrokontroller nr 6, och motståndet går till marken (gul tråd)
Hur man installerar en potentiometer:
Röd tråd - kraft, gul - jord, vit - analog ingång från mikrokontroller nr 0 (vi ansluter en annan potentiometer på samma sätt, endast analog ingång till styrenhet nr 1)
Vi installerar också motstånd för lysdioder på kortet:
ström kommer att levereras från 3 och 5 stift i arduino, och kommer genom de gula och svarta ledningarna och genom motstånden går till marken (styrenhet GND)
Tja, i princip allt, vi är klara med elektronik! Det återstår bara att ladda ner nästa skiss och lek med roboten !!
#include
#include
Multiservo myservo1;
Multiservo myservo2;
Multiservo myservo3;
int b, kl, pl, p2;
int A = 0;
int i = 0;
osignerad lång m2 = 0;
osignerad lång m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
int H1 = 0;
int h = 0;
ogiltig installation ()
{
myservo1.attach (9); // vänster örat
myservo2.attach (10); // höger öra
myservo3.attach (11); // ögon
pinMode (6, INPUT); // knapp
pinMode (3, OUTPUT); // ögonljus PWM
pinMode (5, OUTPUT);
}
void loop ()
{
medan (A == 0) // robot manuell styrslinga
{
b = digitalläsning (6);
om (! b) k1 = 1;
if (b == 1 && k1 == 1)
{
fördröjning (10);
b = digitalläsning (6);
if (b == 1 && k1 == 1)
{
A är 1;
kl = 0;
}
}
pl = int (analogRead (A0) / 6);
p2 = int (analogRead (Al) / 6);
myservo1.write (p1);
myservo2.write (p1);
myservo3.write (p2);
analogWrite (3, i);
analogWrite (5, i);
if (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
om (i> 250) h1 = 1;
}
if (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
om (i == 0) h1 = 0;
}
}
medan (A == 1) // robot autonom arbetscykel
{
digitalWrite (13,0);
b = digitalläsning (6);
om (! b) k1 = 1;
if (b == 1 && k1 == 1)
{
fördröjning (10);
b = digitalläsning (6);
if (b == 1 && k1 == 1)
{
A är 0;
kl = 0;
}
}
analogWrite (3, i);
analogWrite (5, i);
if (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
om (i> 250) h1 = 1;
}
if (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
om (i == 0) h1 = 0;
}
if (millis ()> = m2 + 15 && h == 0)
{
myservo1.write (r1);
myservo2.write (r2);
myservo3.write (r3);
rl = rl + 1;
r2 = r2-1;
r3 = r3 + 1;
om (r1 == 110) h = 1;
m2 = millis ();
}
if (millis ()> = m2 + 15 && h == 1)
{
myservo1.write (r1); // 110
myservo2.write (r2); // 70
myservo3.write (r3); // 110
r1 = r1-1;
r2 = r2 + 1;
r3 = r3-1;
om (r1 == 70) h = 0;
m2 = millis ();
}
}
}
Koden är ganska stor, men tro mig att det är värt det!
Kortfattat, vad gör detta program:
Vi har en knapp som är ansvarig för två tillstånd i systemet: antingen kontrollerar vi roboten manuellt, eller så utförs de rörelser som redan är registrerade i förväg. När man trycker på en knapp förändras tillstånden för oss, och i koden ändras 2 cykler varandra, där motsvarande kommandon är registrerade. Våra roboters ögon tänds gradvis, blir ljusare och ljusare och bleknar sedan ut. det är därför vi har dubblat lysdioderna till stiften som stöder PWM - pulsbreddmodulering.
Foton av roboten:
liten videoinspelning, hur och vad som snurrar till slut:
Sammanfattningsvis vill jag säga att denna robot naturligtvis kan komma i åtanke under en lång tid, men det är smaken hos varje person. Gör det! Uppfinna! Växa! Lycka till alla!