Styra servon på FPGA (2 / 6 steg)
Steg 2: Servo bakgrundskunskap
Servon kräver en fyrkantsvåg med olika puls bredder att fungera. Detta kallas Pulse bredd Modulation.
I bilden har jag två PWM signaler. En PWM våg har två viktiga egenskaper.
Det första kännetecknet är frekvensen. Detta är en under perioden T. Perioden är tiden från när signalen ändras från hög till låg, för att nästa gång signalen ändras från hög till låg. Du kan se den period på bilden som T.
Andra kännetecken är puls bredd. Detta är hur länge signalen är hög inom en period. Folk prata brukar om detta som i arbetscykel. Månadskapaciteten är andelen T att signalen är hög. Så om T 10 MS och det är hög 5ms har du 50% intermittens. Standard icke PWM fyrkantsvågor har 50% intermittens.
För servo är kontroll T uppdateringsfrekvensen, eller hur ofta servo behöver se att bo med mångfald höga signalen. Intermittensen definierar vilken vinkel servo kommer att vara på.
Den uppdateringsfrekvens som krävs beror på servo, jag använde 10ms som vanligtvis är ett säkert kort för de flesta servon. Intermittensen motsvarar en vinkel beror på vilka specifika servo du använder. Jag använde två punkter, 0 och 180 grader för att skapa en ekvation av vinkel till plikt cykel. Jag hittade dessa två första punkter via försök och misstag. Om du gör det ändå, var försiktig, inte alla servon har inbyggda skydd om du går över eller under det tillåtna intervallet. Lyckligtvis gjorde den här. Jag upptäckte detta när jag försökte gå över 180 grader.
Du kan se den allmänna idén om hur PWM signalen avser servo position ovan. Om jag har några månadskapacitet ovanför nollpunkten kommer jag få servo att hålla i någon vinkel. Om jag har en större arbetscykel, kommer servo gå några vinkel längre. Exakta detaljer och förhållandet beror på servo.