måndag 5 oktober 2015

Porsche 911 FPV "Servo programmering" Del 18

Jag har byggt upp mod i flera dagar för att ha tålamod att sätta mig ner och försöka lära mig hur man programmerar Picaxe. Det är en form av Basic men med lite Picaxe egenheter som inte finns i vanliga fall. Personligen har jag inte haft någon erfarenhet av Basic sedan 80-talet då familjen hade en Comendore 64, men på den tiden gjorde jag inte mycket programmering precis. Mitt mål är att använda Picaxe till att modifiera servo signalen så att servot bara kan röra sig åt ett håll. Jag ska använda microservon till simulerade hastighetsmätare och varvmätare i instrumentbrädan och då vill jag inte att mätarna ska gå baklänges när jag backar.

Och problemen började direkt! Jag installerade Picaxe editorn på datorn för att kunna skriva och ladda upp koden till Picaxe "project board". så långt inga problem, men sen behövde även USB-kabeln drivrutiner för att kunna hittas av programmet och där höll jag på att gå bet. Antagligen lite svårare än nödvändigt eftersom jag precis uppdaterat datorn till Windows 10. Men efter 3timmars frustration så fungerade det plötsligt och jag kunde tillsist börja med det som jag trodde skulle vara det svåra!


Jag har spenderat mycket tid med att hitta kod som jag skulle kunna använda, och även för att försöka förstå och lära mig hur koden fungerar. Resultatet blev följande:

SETFREQ m8

SYMBOL pulse  = w1 
SYMBOL in_pin = 3
SYMBOL outpin = 2
SYMBOL center = 1500/5 

DO
PULSIN in_pin, 1, pulse
IF pulse < center THEN 
pulse = center  
ENDIF
PULSOUT outpin, pulse
LOOP


Pin 3 kopplar jag in signal sladden ifrån en RC mottagare, ifrån Gas kanalen som  jag tänkt använda. 
Pin 2 är signal kabeln från Picaxe till servot.
Nu när jag testat så har jag använt samma strömkälla, men det har jag inte tänkt göra i bilen.
Koden gör att servot stannar i centrumposition om den får ett negativt värde. Men rör sig som vanligt om den får ett positivt värde. Jag blev lite förvånad att det fungerade och blev lika förvånade när andra saker jag provade inte fungerade som jag trodde...Jag hade tänkt använda servots hela rörelse istället för att utgå ifrån mitten, men jag har inte listat ut den delen än... Jag har även funderingar på om jag skulle kunna ha en servosekvens som simulerar en varvräknares rörelse när man växlar. När gasspaken når når tröskelvärdet 40% så rör sig varvräknarservot snabbt tillbaka till startpunkten och om mer gas ges så rör sig servot mot mitten tills gasspaken når 60% och servot börjar om igen osv. Det är dock långt över min kunskapsnivå just nu, men jag är väldigt nöjd med mina resultat så här långt. Även om hjärnan värker av all ny information så känns det också spännande att ge sig in i något för mig helt nytt och okänt.

Inga kommentarer:

Skicka en kommentar