Inhoudsopgave:

Ball Balancer en PID Fiddler - Ajarnpa
Ball Balancer en PID Fiddler - Ajarnpa

Video: Ball Balancer en PID Fiddler - Ajarnpa

Video: Ball Balancer en PID Fiddler - Ajarnpa
Video: Balancer - plate balancing a ball with PID controller, resistive panel and servos, arduino 2024, Juli-
Anonim
Ball Balancer en PID Fiddler
Ball Balancer en PID Fiddler
Ball Balancer en PID Fiddler
Ball Balancer en PID Fiddler

Dit project is bedoeld voor mensen die ervaring hebben met het gebruik van een Arduino. Voorkennis van het gebruik van servo's, OLED-displays, potten, knoppen, solderen is handig. Dit project maakt gebruik van 3D-geprinte onderdelen.

Ball Balancer is een PID-testopstelling om te experimenteren met PID-tuning. PID Fiddler is een afstandsbediening voor het aanpassen van de PID-afstemming.

Een PID wordt gebruikt wanneer u meer controle over beweging nodig heeft. Een goed voorbeeld is een balanceerrobot. De robot moet kleine aanpassingen maken om het evenwicht te bewaren en snel reageren om zichzelf op te vangen als hij een stoot of duw tegenkomt. Een PID kan worden gebruikt om de reactie van de wielmotoren af te stemmen om het evenwicht te behouden.

Een PID vereist feedback van een sensor. Een balancerende robot gebruikt gyroscopen en versnellingsmeters om de absolute hoek van de robot te meten. De uitgang van de sensor wordt door de PID gebruikt om de motoren te regelen om het evenwicht te bewaren.

Dus waarom heb ik een saaie ball balancer gemaakt? Natuurlijk is het cool, maar balancerende robots kantelen als ze niet correct zijn afgesteld. Balanceerrobots zijn niet het beste apparaat om te experimenteren met PID-tuning. De ballbalancer is veel stabieler en is een goed visueel hulpmiddel om de effecten van PID-tuning te zien. De kennis die is opgedaan bij het afstemmen van de balbalancer kan worden toegepast bij het afstemmen van een balanceerrobot.

De Ball Balancer is een rail op een draaipunt. Op de rail zit een bal die heen en weer beweegt op de rail als de rail wordt gekanteld. De rail wordt getipt met een servo. Aan het uiteinde van de rail zit een sensor die de afstand van de bal tot de sensor meet. De invoer voor de PID is de afstand van de bal tot de sensor en de uitvoer van de PID is de servo die de rail kantelt en de bal beweegt.

Ik gebruik de Arduino PID-bibliotheek.

De PID Fiddler is wat ik gebruik om de PID-waarden af te stemmen. Je hebt er geen nodig, maar het helpt wel. De PID Fiddler bevindt zich op afstand van de Ball Balancer, kan worden aangesloten met slechts twee draden en kan worden aangesloten en losgekoppeld terwijl de Ball Balancer draait. Zodra u de beste waarden hebt gevonden, kunnen de waarden hard worden gecodeerd in uw projectschets.

De extra inspanning van het maken van de PID Fiddler werpt zijn vruchten af in de tijd die nodig is om afstemmingswijzigingen in de PID aan te brengen. U kunt snel de resultaten van uw wijzigingen zien. En het kan opnieuw worden gebruikt voor toekomstige projecten die PID's gebruiken. Om nog maar te zwijgen van het is leuk om te bouwen, en ziet er cool uit!

Stap 1: Balbalancer - Onderdelen

Balbalancer - Onderdelen
Balbalancer - Onderdelen
Balbalancer - Onderdelen
Balbalancer - Onderdelen
Balbalancer - Onderdelen
Balbalancer - Onderdelen

3D-geprinte onderdelen hier te vinden:

(Montage-instructies zijn te vinden in de instructies voor na het afdrukken in de bovenstaande link)

1 - 1 "x 1/8" aluminium hoek, gesneden tot 500 mm lengte.

1 - Adafruit VL53L0X Vluchttijdsensor:

1 - Hobby Servo met bedieningshoorn

1 - Stijve draad voor koppeling (ongeveer 7 mm)

- Diversen Montage schroeven

1- Arduino Uno

2 - LED's (rood, groen)

3 - 330 Ohm weerstanden

- Diversen Jumperdraden en Breadboard

- Platte zwarte spuitverf

1 - Witte pingpongbal

Stap 2: Ball Balancer - Montage

Balbalancer - Montage
Balbalancer - Montage

Montage-instructies voor de Ball Balancer vindt u hier:

Enkele aanvullende tips:

Spuit de binnenkant van de rail plat zwart om fouten van de sensor te verminderen.

Koppeling (getoond in afbeelding hierboven):

- Gebruik een stijve draad van ongeveer 7 mm lang voor de verbinding tussen de servobesturingshoorn en de sensorbeugel.

- Stel de rail waterpas, plaats de stuurhoorn horizontaal in het midden van de servobeweging (servowaarde 90).

- Buig een kleine lus in de bovenkant van de draad en een z-vormige bocht aan de onderkant van de draad.

- Steek het z-uiteinde in de bedieningshoorn, markeer het punt in het midden van de lus op de sensorbeugel.

- Boor een klein gaatje en gebruik een kleine schroef om de draad aan de sensorbeugel te bevestigen.

Stap 3: Ball Balancer-bedrading & Arduino Sketch

Ball Balancer Bedrading & Arduino Sketch
Ball Balancer Bedrading & Arduino Sketch

Raadpleeg de afbeelding hierboven voor de bedrading.

Gebruik een aparte voeding voor de servo. Dit kan een bankvoeding zijn of een batterijpakket. Ik gebruik een bankvoeding die is ingesteld op 5V.

De PID Fiddler wordt bevestigd met twee draden, één op Pin 1 (Seriële RX) en één op aarde.

De schets is aanwezig.

Schetsnotities: De instelwaarde verandert elke 15 seconden van 200 mm naar 300 mm. Het is handig om de seriële monitor op de Arduino IDE te gebruiken om de sensoruitvoer te zien.

Stap 4: PID Fiddler 2 - Onderdelen

PID Fiddler 2 - Onderdelen
PID Fiddler 2 - Onderdelen

3D-geprint schild en knoppen zijn hier te vinden:

4 - 10 Kohm-potten

1- Kortstondige contactknoppen:

1- Adafruit Monochroom 128x32 I2C OLED grafisch display:

1- Arduino Uno

- diversen header ping (.1 in), klemmenblokken, draad aansluiten

Stap 5: Pid Fiddler 2 - bedrading, montage en Arduino Sketch

Pid Fiddler 2 - Bedrading, montage en Arduino Sketch
Pid Fiddler 2 - Bedrading, montage en Arduino Sketch
Pid Fiddler 2 - Bedrading, montage en Arduino Sketch
Pid Fiddler 2 - Bedrading, montage en Arduino Sketch

Gebruik het bedradingsschema voor het bedraden van de afscherming.

Montagetips:

-Voor tips over het maken van aangepaste printplaten, zie mijn instructable:

- Superlijmkoppen op het 3D-geprinte schild.

- Ik gebruik draadwikkeldraad.

- Gebruik potten met vierkante bodem en snij de montagelipjes af, lijm ze heet op hun plaats.

- Componenten zijn gesoldeerd. Gebruik een vrouwelijke header voor de OLED en de OLED kan eenvoudig worden losgekoppeld en verwijderd voor gebruik in andere projecten.

Schetsnotities:

- Sluit een draad van het aansluitblok (bedraad op pin 2, TX) aan op pin 1 (seriële RX) van de Ball Balancer Arduino. Sluit een draad aan tussen het aansluitblok (aarde) en de aarde van de Ball Balancer Arduino.

- Houd de knop ingedrukt, pas de knoppen aan om de PID-instellingen aan te passen, laat de knop los om de waarden naar de Ball Balancer te sturen.

Stap 6: Ball Balancer en PID Fiddler gebruiken

Het enige dat overblijft is om ermee te gaan spelen!

- Plaats de bal op de rail.

- Houd de knop op de PID Fiddler ingedrukt, zet P, I en D op nul, ST op 200 om te starten.

- De servo reageert niet meer.

- Begin nu te experimenteren met verschillende P-, I- en D-waarden om te zien hoe dit de respons en beweging van de bal beïnvloedt.

- Probeer de waarden voor Sample Time (ST) te wijzigen. De bemonsteringstijd is de tijd in milliseconden dat de invoer wordt verzameld. De waarden worden gemiddeld over de monstertijd. De sensoroutput van een stilstaand doel zal met een kleine hoeveelheid variëren. Als de sampletijd te klein is, zal de output van de PID "jitteren". De PID probeert de ruis in de sensormetingen te corrigeren. Als u langere sampletijden gebruikt, wordt de ruis afgevlakt, maar wordt de uitvoer van de PID schokkerig.

Stap 7:

Niet gebruikt

Aanbevolen: