God dag til alle! Denne artikkelen vil bli viet til elskere av elektronikk, robotikk, samt mennesker med et ikke-standard utseende på de omkringliggende tingene!
Så nå vil jeg prøve å beskrive prosessen med opprettelse, montering så tydelig som mulig roboten med elektronisk stuffing, nemlig på Arduino! La oss gå!
Hva vi trenger:
Tretrådsløyfe (3 stk). Det anbefales å ta mer autentisk.
Vanlige ledninger
potentiometers
motstander (220 ohm)
knapp
Batterirom
Labkort
Vel, selvfølgelig arduinka
Og også et utvidelseskort til det - noe sånt MultiservoShieldå kontrollere et stort antall servoer
Og noe mer designer, som vil være grunnlaget for roboten vår, så det tilrådes å velge "sterk"
Fra verktøyene du trenger:
Et sett med skrutrekkere, nøkler osv.
Samt loddejern, lodde og flux
La oss komme i gang!
Trinn 1. Fremstilling av hovedrammen
For å starte, samle de "to bokstavene H" Det ser slik ut:
Så litt konstruksjon som vår roboten vil stå. Det er slett ikke nødvendig som på bildet - etter eget skjønn. Det viste seg slik:
Vi installerer vår "N" på støtten
Nedenfra strammer vi boltene
På den andre "H" fikser vi den første servoen, som er ansvarlig for å vri hodene til vår fremtidige robot
Det viser seg noe som følgende:
Nesten rammen er klar! Det gjenstår å feste disse to strukturene med metallplater og gi roboten høyde!
Trinn 2: Lage en ramme for fremtidige robotører
For å gjøre dette, må vi sette sammen to lignende strukturer og fikse servoer på dem, som vist på figuren:
Deretter bruker du bolter og muttere til hovedrammen. Det vil vise seg følgende:
Topp utsikt:
Vel, en viss prototype av roboten er nesten klar! Gå videre ..
Trinn 3. Å lage øyne og hele hodet til roboten vår!
For dette brukte jeg det gamle håndsettet fra intercom. Personlig minner hun meg om et ansikt! Se mer ..
Vi lager to hull og fest vippa for servoen til røret
Vi limer umiddelbart lysdiodene på sidene og lodder ledningene til dem
Jeg brukte tynne:
Trinn 4 Å lage ører
Vi vil bruke vanlige lokker fra små bokser
Fest også gyngestolene til serv
Nå fikser vi frimodig delene av robotens kropp på serverne
Liker dette:
Topp utsikt:
bak:
I prinsippet kan du glede deg over roboten nå, men vi vil komplisere oppgaven .. Vi vil snu øynene og ørene på roboten ved hjelp av potensiometre og arduinkaene våre
Trinn 5 Elektronikk
Ved å kombinere arduino med multiserviceskjoldet setter vi inn en tretrådssløyfe fra hver servo til pinnene 9, 10, 11 (Venstre øre, høyre øre, Cent, hvis du legger roboten mot oss)
Så på brødbordet installerer vi et potensiometer, en knapp, motstander. Det vil se slik ut, stygt selvfølgelig, men det viktigste fungerer)
Flere detaljer!
Slik installerer du knappen:
Der den hvite ledningen er strøm, er rød den digitale inngangen til mikrokontroller nr. 6, og motstanden går i bakken (gul ledning)
Slik installerer du et potensiometer:
Rød ledning - strøm, gul - jord, hvit - analog inngang til mikrokontroller nr. 0 (vi kobler til et annet potensiometer på samme måte, bare analog inngang til kontroller nr. 1)
Vi installerer også motstander for LED på brettet:
strøm vil bli levert fra 3 og 5 pinner på arduino, og vil komme gjennom de gule og svarte ledningene og gjennom motstandene gå til bakken (kontroller GND)
Vel, i utgangspunktet alt, er vi ferdige med elektronikk! Det gjenstår bare å laste ned det neste skisse og leke med roboten !!
#include
#include
Multiservo myservo1;
Multiservo myservo2;
Multiservo myservo3;
int b, k1, p1, p2;
int A = 0;
int i = 0;
usignert lang m2 = 0;
usignert lang m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
int h1 = 0;
int h = 0;
ugyldig oppsett ()
{
myservo1.attach (9); // venstre øre
myservo2.attach (10); // høyre øre
myservo3.attach (11); // øyne
pinMode (6, INPUT); // knapp
pinMode (3, UTGANG); // øynene lyser PWM
pinMode (5, UTGANG);
}
void loop ()
{
mens (A == 0) // robot manuell kontrollsløyfe
{
b = digitallesning (6);
hvis (! b) k1 = 1;
if (b == 1 && k1 == 1)
{
forsinkelse (10);
b = digitallesning (6);
if (b == 1 && k1 == 1)
{
A er 1;
k1 = 0;
}
}
p1 = int (analogRead (A0) / 6);
p2 = int (analogRead (A1) / 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 ();
hvis (i> 250) h1 = 1;
}
if (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
hvis (i == 0) h1 = 0;
}
}
mens (A == 1) // robot autonom arbeidsyklus
{
digitalWrite (13.0);
b = digitallesning (6);
hvis (! b) k1 = 1;
if (b == 1 && k1 == 1)
{
forsinkelse (10);
b = digitallesning (6);
if (b == 1 && k1 == 1)
{
A er 0;
k1 = 0;
}
}
analogWrite (3, i);
analogWrite (5, i);
if (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
hvis (i> 250) h1 = 1;
}
if (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
hvis (i == 0) h1 = 0;
}
if (millis ()> = m2 + 15 && h == 0)
{
myservo1.write (r1);
myservo2.write (r2);
myservo3.write (r3);
r1 = r1 + 1;
r2 = r2-1;
r3 = r3 + 1;
hvis (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;
hvis (r1 == 70) h = 0;
m2 = millis ();
}
}
}
Koden er ganske stor, men tro meg at den er verdt det!
Kort hva gjør dette programmet:
Vi har en knapp som er ansvarlig for 2 tilstander i systemet: enten styrer vi roboten manuelt, eller så utfører de bevegelsene som allerede er registrert på forhånd. Når du trykker på en knapp, endres tilstandene for oss, og i koden endres 2 sykluser seg imellom, hvor de tilsvarende kommandoene er registrert. Øynene til roboten vår lyser gradvis opp, blir lysere og lysere og blekner deretter ut. Derfor har vi kalt lysdiodene til pinnene som støtter PWM - pulsbreddemodulasjon.
Bilder av roboten:
liten videoopptak, hvordan og hva som snurrer til slutt:
Avslutningsvis vil jeg si at selvfølgelig kan denne roboten tas i tankene i lang tid, men dette er smaken til enhver person. Gjør det! Oppfinne! Vokse! Lykke til alle sammen!