Indholdsfortegnelse:

Arduino Servo Tester: 4 trin
Arduino Servo Tester: 4 trin

Video: Arduino Servo Tester: 4 trin

Video: Arduino Servo Tester: 4 trin
Video: Управление 32 серводвигателями с PCA9685 и ESP32 - V4 2024, November
Anonim
Arduino servotester
Arduino servotester
Arduino servotester
Arduino servotester

Her demonstrerer vi, hvordan du styrer en servo fra en Arduino uden en computer. Brugen af denne bærbare grænseflade fremskynder i høj grad prototypeprocessen, når der fastsættes grænser for servorotation. Det er især nyttigt, når du har mange servoer, som vi gør.

Hvis du bruger denne Instructable som en del af Modified InMoov Robot -serien, skal du huske på, at dette er en ufærdig version af kontrolpanelet, der er monteret på bagsiden af robotten. Du kan bruge det som vi gjorde, til at hjælpe med at bestemme dine servo -grænser.

Hvis du bare håber på at styre et par servoer med vores metode til et andet projekt eller bare for sjov, er denne Instructable stadig noget for dig, så lad ikke være med at forlade siden! Bemærk, at nogle billeder har noter på dem, så se på hver enkelt for sig.

Lad os komme igang!

Forbrugsvarer

Ikke alle forbrugsstoffer er angivet her. Læs hele instruktionsbogen igennem

- 1 x Arduino Uno

- 1 x strømmodul, 5A DC-DC step down converter (Vi brugte dette modul, men du kan også bruge noget lignende)

- 1 x I2C LCD (det er det, vi brugte, men enhver seriel LCD eller praktisk talt enhver standard LCD fungerer)

- 1 x 4x4 matrix tastatur (f.eks.)

- Et brødbræt og/ eller et perfbræt. Hvis du bruger perf boardet, skal du bruge header pins som findes her, samt alt nødvendigt udstyr til lodning.

- Mand til mand, mand til kvinde, hun til hun jumpertråde; diverse modstande, lysdioder og brødbrætstråde.

- En slags fodliste. Vi brugte 1/4 gennemsigtig akryl. Du kan bruge ethvert umådeligt, let at bore materiale.

- Hængsler, skruer, møtrikker/bolte, superlim

Trin 1: Baseboard

Baseboard
Baseboard
Baseboard
Baseboard
Baseboard
Baseboard

Du vil gerne lave en robust base til din elektronik. Hvis du laver dette til Modified InMoov Robot, skal det rumme en anden Arduino Uno (måske Mega), en Raspberry Pi3 og flere brødbrætter og/eller perf boards til servo/sensor kontrol. Vores bundpanel var cirka 7x15 . Du kan se ovenstående fotos for det generelle layout af modulerne. Vi opsatte tastaturet og LCD'et på dækslet, så panelet kun skulle åbnes i tilfælde af fejl, prototyper eller vedligeholdelse. Som du kan se, hænges dækslet nedefra og låses fast øverst ved hjælp af en velcro.

Prøv at organisere dine mikrokontrollere på den ene side af brættet. Strømmodulet er ikke stærkt nok til at køre alle dine servoer på den færdige robot. Faktisk kan den ikke engang køre 3 højmomentservoer af den type, der bruges i underarmen, uden at den interne strømafbryder slukker for strømmen. Under alle omstændigheder fungerer den angivne kodeeksempel kun for et servoobjekt, så du kan teste med denne opsætning. Placer dette modul tæt på controllerne, da dette vil være deres effektregulator, samt give strøm til nogle mikroservoer, der dræner irrelevant staldstrøm- men det er til senere …

Opsæt LCD'et og tastaturet på ydersiden af dækslet, som du bruger, eller ud til siden, men tæt på Arduino.

Hvis du gør dette for dig selv, kan du stadig prøve at konfigurere dit board i et lignende layout. Du har muligvis ikke brug for topdækslet, og du skal heller ikke bruge 3 brødbrætter- men komponenter skal lægges på en logisk måde, f.eks. Det sidste foto af et andet projekt, som også bruger et tastatur og LCD. Du kan udskifte kredsløbet til venstre med et brødbræt eller udelade det helt.

Trin 2: Test af I2C LCD og tastatur

Test af I2C LCD og tastatur
Test af I2C LCD og tastatur
Test af I2C LCD og tastatur
Test af I2C LCD og tastatur

Vi vil nu gå videre og teste tastaturet og LCD -skærmen på samme tid. Lav forbindelserne som vist på billedet ovenfor, og kør den vedhæftede kode. Du skal downloade ZIP -bibliotekerne til liquidCrystal_I2C.h, hvis du ikke allerede har det; også skal du importere tastaturet.h og Wire.h bibliotekerne (dette kan gøres i IDE).

Fritzing -filen er også vedhæftet. Du behøver ikke at drive noget fra strømmodulet endnu, selvom du kunne, hvis du ville. Arduinoen har nok strøm fra USB -kablet, som du uploader kode efter.

Når du uploader din kode, skal LCD'en bede dig om at trykke på en tast på tastaturet; når der trykkes på, udskriver LCD'et den tast, der trykkes på. Du skal muligvis ændre layoutet på tastaturmatrixen; se kommentarerne i koden for afklaring.

Trin 3: Styring af servoen

Kontrol af servoen
Kontrol af servoen
Kontrol af servoen
Kontrol af servoen
Kontrol af servoen
Kontrol af servoen

Nu tager vi dette projekt et skridt videre og tilføjer en servo. Du skal tilslutte den til Digital Pin 10, som det er angivet i koden, eller du kan ændre det, så det passer til dine behov. Følg ovenstående Fritzing -diagram; det er det samme som det forrige med undtagelse af servoen, RGB fælles katode LED og summer. De to sidstnævnte bruges til at supplere brugergrænsefladen. Advarsler og status vises på LED'en og gennem summeren. Vi ser ovenfor, hvordan vi bruger den færdige servotester til at sætte grænser for InMoov Robotic Underarm og Hånd.

Download den vedhæftede kode og kør den. Ved at trykke på A vises et infopanel; alt andet burde være selvforklarende.

På dette tidspunkt kan du bruge strømmodulet til at drive servoen separat; især hvis der er stor sandsynlighed for, at servoen når staldstrøm.

Hvis du vil, kan du montere summer og LED på et perf board, som vist ovenfor. Dette er nyttigt, fordi det senere vil fungere som udbrudstavle til servoerne og generelt er pænere.

Prøv at indtaste en værdi større end 180 grader for servoen- se hvad der sker!

Trin 4: Færdiggjort produkt

Færdiggjort produkt
Færdiggjort produkt

Du kan nu styre servoer med denne manuelle grænseflade. Nogle tips er nævnt her.

Fejlfinding:

-LCD virker ikke: Kontroller alle dine forbindelser, og at du har initialiseret LCD'et med det korrekte antal rækker og kolonner

-Tastaturet virker ikke: Kontroller forbindelserne

-Tastatur fungerer, men forkerte tal udskrives: Du har to alternativer her. Du kan enten ommærke matricen i koden (dvs. hvis du udskriver A i stedet for 1, ommærker 'A' til '1'), eller du kan lave om på dine ledninger, idet du skal være særlig opmærksom på at sikre, at alle ledninger går til de rigtige ben på Arduino.

-LED virker ikke: Kontroller, at du bruger en fælles katode (fælles jord) LED. Hvis ikke, kan du invertere alle de signaler, du sender til den (dvs. ændre HIGH til LOW) og slutte den fælles anode til +5V.

Vi sender snart en kort Youtube -video, der viser funktionerne i denne enhed; samt en hel serie om konstruktionen af vores modificerede InMoov -robot. Du kan læse mere om den originale InMoov her. Hvis denne instruktør deltager i en konkurrence, skal du stemme på den! Alt, hvad vi vinder, hjælper os med at fremskynde projektet og dermed yderligere instruktioner om dette emne.

Denne instruks blev sidst redigeret den 5. oktober 2019.

Anbefalede: