Dec 06, 2018 Laat een bericht achter

Ontwerp van motorbesturingssysteem voor het manipuleren van de robot

2 systeem software ontwerp

2.1μC / OS-II-architectuur

μC / OS-II is een draagbare, implanteerbare ROM, croppable, preventieve realtime multitasking-besturingssysteem-kernel met hoge uitvoeringsefficiëntie, kleine footprint, goede realtime prestaties en schaalbaarheid. Functies, de kleinste kernel kan worden gecompileerd tot 2KB. μC / OS-II is geschreven in C en assembler. Het grootste deel van de code is geschreven in C. Slechts enkele code die nauw verwant is met de processor, wordt in de assembleertaal geschreven. μC / OS-II bevat alleen basisfuncties zoals taakplanning, taakbeheer, tijdbeheer, geheugenbeheer, communicatie tussen taken en synchronisatie.

Toewijzing van taken onder 2.2μC / OS-II-systeem

Nadat het μC / OS-II-systeem met succes is overgezet naar de STM32F107, wordt de op μC / OS-II gebaseerde programmering gedaan door een grote toepassing in relatief onafhankelijke taken te verdelen. De prioriteit van elke taak wordt gedefinieerd en de μC / OS-II-kernel plant en beheert deze taken.

Het idee van het softwareontwerp is om de motorsnelheid en de stuurpositie van de stuurinrichting door de seriële poort te geven overeenkomstig de werkelijke werking van de robot. De snelheid van de motor wordt vergeleken met de ingestelde waarde van de incrementele encoder en de closed loop-regeling wordt geïmplementeerd door het snelheids-PID-algoritme. De positie van de stuurinrichting is voornamelijk dat de absolute waarde-encoder de huidige positie teruggeeft en dat de snelheid van de stuurinrichting wordt aangepast aan de actietijd. De functies die door de motorbesturingssysteemsoftware van deze bedieningsrobot moeten worden gerealiseerd, zijn als volgt:

◆ De bovenste machine geeft de motorsnelheid, stuurhoek en actietijd;

◆ Vereist constante aanpassing van het motortoerental en goede statische en dynamische prestaties. De snelheid wordt niet meegeteld door het PI-algoritme.

◆ Vereist dat de stuurinrichting de gespecificeerde hoek snel bereikt en dat de positieterugkoppeling wordt gebruikt als de afstelling van de gegeven snelheid van de stuurinrichting;

◆ Heeft een bepaalde foutbeschermingsfunctie. Als de motor geblokkeerd is, de stroom te groot is en de stuurinrichting de eindschakelaar raakt, moet de aandrijfmodule stoppen.

Om de bovenstaande functies te implementeren, kan het applicatieontwerp worden onderverdeeld in de volgende taken:

1 Start de taak. Initialiseer het systeem, maak een initiële motorstatus, verwijder vervolgens zichzelf en start de slaaptaak.

2 motor- en stuurbeveiligingswerkzaamheden. Het wordt gebruikt om te reageren op een externe interrupt wanneer de overstroom- of limietschakelaar is geactiveerd. Wanneer de interruptstatus wordt ingevoerd, wordt de taak-semafoor verzonden. Het taakprogramma detecteert dat de semafoor geldig is en reageert op de taak en stopt met uitvoeren. De taakprioriteit is ingesteld op niveau 0.

3 hostcomputer gegeven taken. Het wordt gebruikt voor de bovenste machine om de motor en de stuurinrichting te regelen, en de taakprioriteit is ingesteld op niveau 1. Wanneer het host-computer-gegevensinvoerregister wordt gegenereerd, zal een interrupt worden gegenereerd, die de ontvangen byte naar de buffer en laat de semafoor vrij van de gegeven taak van de hostcomputer; wanneer de semafoor wordt gedetecteerd, zal de taak beginnen met uitvoeren en zal de bijbehorende byte worden uitgevoerd. De informatie wordt geparseerd in de corresponderende motorsnelheid en stuurwielpositie-informatie om waarden toe te kennen aan de overeenkomstige variabelen.

4 motortoerentalstuuropdracht. Voor geregelde regeling van de motor met gesloten lus wordt de taakprioriteit ingesteld op niveau 2.

5 besturingstaken. Het wordt gebruikt om de stuurinrichting te regelen om de opgegeven positie binnen de opgegeven tijd te bereiken, en de taakprioriteit is ingesteld op niveau 3.

2.3 Start de taak

In het hoofdprogramma, voordat u andere taken van μC / OS-II oproept, roept u eerst de systeeminitialisatiefunctie OSInit () aan om alle variabelen en gegevensstructuren van μC / OS-II te initialiseren; tegelijkertijd de niet-actieve taak vaststellen OS_TaskIdle (), deze taak bevindt zich altijd in de status Gereed; de functie OSTaskCreate () aanroepen om de opstarttaak te starten; roep OSStart () aan, breng de controle over naar de μC / OS-II-kernel, start met multitasking.

De opstarttaak wordt gemaakt in het hoofdprogramma, dat drie hoofdfuncties heeft:

1 voor systeeminitialisatie (PWM-uitgangsmodule, seriële poort, ADC-module, ingangsniveau-onderbrekingsfunctie, timer).

2 Bepaal de hoeveelheid signaal die door het systeem wordt gebruikt.

3 stel andere taken van het systeem vast.

Bel tot slot OSTaskDel (OS_PRIO_SELF) om zichzelf te verwijderen en de slaaptaak te starten. De belangrijkste taakstroom van het programma wordt getoond in Figuur 4.

2.4 motortoerentalstuuropdracht

Telkens wanneer de incrementele encoder een externe interrupt genereert, wordt de taak-semafoor uitgegeven in de interrupt-status. Het taakprogramma detecteert dat de semafoor geldig is en reageert op de taak. De taak realiseert gesloten-lusbesturing door het meten van de huidige motorsnelheid en de gegeven snelheidsvergelijking. De taakstroom voor de motortoerentalregeling wordt getoond in Figuur 5.

2.5 stuurbeheersingstaak

De servobesturing genereert een referentietijd met een timer, verzendt elke semafoor een semafoor en de taak wordt eenmaal uitgevoerd. De servobesturingstaak vergelijkt de positie gemeten door de absolute encoder met de gegeven positie en past de snelheid van de servo aan volgens de resterende tijd. De taaksturing van de servosturing wordt getoond in Figuur 6.

3 systeem elektromechanische interface

De stuurinrichting van de robot bestaat uit een reductiemiddel 30: 1 dat op de DC-motor is aangesloten. De absolute positie-encoder is verbonden met de stuurinrichting en verzendt het hoeksignaal van de stuurinrichting naar de stuurkaart van de omvormer. De twee assen van het voorwiel van de robot zijn verbonden door een transmissiestaaf. Eén van de assen is verbonden met het stuurwiel door een transmissieband, zodat wanneer het stuurwiel draait, de transmissieband de transmissiestang aandrijft om te zorgen dat de twee voorwielen synchroon kunnen roteren. De achterwielaangedreven motor is een gelijkstroommotor die rechtstreeks is aangesloten op de incrementele encoder. Nadat de reductieverhouding is verlaagd met een reductiekast van 25: 1, wordt het achterwiel aangedreven door het mechanische differentieel. De signalen van de incrementele encoder worden ook verzonden naar het stuurkaart van de omvormer. De structuur van het elektromechanische systeem is weergegeven in figuur 7.

Conclusie

In dit artikel wordt het ontwerp van de motor- en servobesturingshardware van de handlingrobot gerealiseerd. Het real-time besturingssysteem μC / OS-II is met succes ingesloten op de STM32F107 en het experiment met gesloten terugkoppeling van de motor en de stuurinrichting is voltooid. Gebruikmakend van de kenmerken van multi-task real-time prestaties van Cortex-M3 core controller en μC / OS-II systeem, biedt het een basis voor software en hardware voor de daaropvolgende robot beeldregistratie en navigatie tracering. Als het bestaande PI-algoritme wordt verbeterd en de snelheid van de motor en de huidige dubbele regeling met gesloten lus kunnen worden gerealiseerd, zullen de kenmerken van de robotmotor beter zijn en zal het toepassingsperspectief van de robot groter zijn.



Aanvraag sturen

whatsapp

teams

E-mail

Onderzoek