Delta Robot klockan (8 / 8 steg)
Steg 8: kontroll
Nu när du har din delta robot kommer du att göra det göra något.
Som jag sa tidigare kommer du antagligen har dina egna preferenser om vad microcontroller vill du använda; i mitt fall var det en STM32 Discovery styrelse.
Den bifogade kopplingsschema visar de olika modulerna jag skapade för detta projekt och som kringutrustning som de kontrollerar.
Jag tror att de olika modulerna är ganska self förklarande och förhoppningsvis du hittar dem väl kommenterade om du försöker att följa dem.
Kanske är den mest intressanta modulen den robot control modulen (robot.c). Koden översätter ett X, Y, Z samordna in tre motsvarande servo vinklar.
XYZ-koordinater kan vara
En dator via RS232/USB.
En joystick, Wii controller eller Kinect system (det skulle vara riktigt coolt).
En fast attributsekvens positioner.
En beräknade positionen baserat på någon annan ingång (klocka (mitt fall), kamera).
I koden hittar du ett antal parametrar som används för beräkningarna. Det spelar ingen roll vilken linjär mätning system du använder så länge du är konsekvent. Vinklarna är i radianer.
Nedre armlängd - längden från centrum av servo kontroll horn till mitten av de två bollspel gemensamma dubbar.
Överarmens längd - längden mellan centrerar av de två bollspel gemensamma sockets.
Base offset - avståndet från mitten av basen till en punkt direkt under stadens servo horn.
Slutet manöverdonet offset - avståndet från mitten av slutet manöverdonet i mitten av de två kulleder på varje arm.
XYZ koordinaten definieras som
X avstånd mot servo 1 från mitten av basen.
Y avståndet vinkelrätt mot X i planet av basen.
Z på avstånd ut från planet bildas av tre servo horn resurser.
En sak ytterligare; Det går inte att ange det lägre beväpnar så att den neutrala punkten i varje servo motsvarar exakt till en vinkel på 90 grader. Du kommer att behöva införa en kalibrering parameter för varje servo. I mitt fall jag använde tre trimpots och beräknas en kalibrering vinkel utifrån ADC värdet mäts för var och en.