Inhoudsopgave:

Op PIC microcontroller gebaseerde robotarm - Ajarnpa
Op PIC microcontroller gebaseerde robotarm - Ajarnpa

Video: Op PIC microcontroller gebaseerde robotarm - Ajarnpa

Video: Op PIC microcontroller gebaseerde robotarm - Ajarnpa
Video: 3D vision and binpicking ENG Webinar by KUKA Nordic 2024, November
Anonim
PIC op microcontroller gebaseerde robotarm
PIC op microcontroller gebaseerde robotarm

Van de lopende band van de auto-industrie tot de telechirurgische robots in de ruimte, robotarmen zijn overal te vinden. De mechanismen van deze robots zijn vergelijkbaar met die van een mens en kunnen worden geprogrammeerd voor vergelijkbare functies en verhoogde mogelijkheden. Ze kunnen worden gebruikt om herhaalde acties sneller en nauwkeuriger uit te voeren dan mensen of kunnen worden gebruikt in ruwe omgevingen zonder mensenlevens te riskeren. We hebben al een Record and Play-robotarm gebouwd met Arduino die kan worden getraind om een bepaalde taak uit te voeren en voor altijd te herhalen.

In deze tutorial zullen we de industriestandaard PIC16F877A 8-bit Microcontroller gebruiken om dezelfde robotarm te besturen met potentiometers. De uitdaging met dit project is dat PIC16F877A slechts twee PWN-compatibele pinnen heeft, maar we moeten ongeveer 5 servomotoren aansturen voor onze robot, waarvoor 5 individuele PWM-pinnen nodig zijn. We moeten dus de GPIO-pinnen gebruiken en PWM-signalen genereren op PIC GPIO-pinnen met behulp van de timer-interrupts. Nu kunnen we natuurlijk upgraden naar een betere microcontroller of een de-multiplexer-IC gebruiken om het hier een stuk eenvoudiger te maken. Maar toch is het de moeite waard om dit project eens te proberen voor de leerervaring.

De mechanische structuur van de robotarm die ik in dit project gebruik, is volledig 3D-geprint voor mijn vorige project; de volledige ontwerpbestanden en montageprocedure vindt u hier. Als alternatief, als je geen 3D-printer hebt, kun je ook een eenvoudige robotarm bouwen met behulp van karton, zoals weergegeven in de link. Ervan uitgaande dat je op de een of andere manier je robotarm te pakken hebt gekregen, gaan we verder met het project.

Stap 1: Schakelschema

Schakelschema
Schakelschema

Het complete schakelschema voor deze op PIC Microcontroller gebaseerde robotarm wordt hieronder weergegeven. Het schema is getekend met EasyEDA.

Het schakelschema is vrij eenvoudig; het volledige project wordt gevoed door de 12V-adapter. Deze 12V wordt vervolgens omgezet naar +5V met behulp van twee 7805 Spanningsregelaars. De ene is gelabeld als +5V en de andere is gelabeld als +5V(2). De reden voor het hebben van twee regelaars is dat wanneer de servo draait, deze veel stroom trekt, wat een spanningsval veroorzaakt. Deze spanningsval dwingt de PIC om zichzelf opnieuw op te starten, daarom kunnen we niet zowel de PIC als de servomotoren op dezelfde +5V-rail laten werken. Dus degene die is gelabeld als +5V wordt gebruikt om de PIC-microcontroller, LCD en potentiometers van stroom te voorzien en een aparte regelaaruitgang die is gelabeld als +5V(2) wordt gebruikt om de servomotoren van stroom te voorzien.

De vijf uitgangspinnen van de potentiometers die een variabele spanning van 0V tot 5V leveren, zijn verbonden met de analoge pinnen An0 tot AN4 van de PIC. Omdat we van plan zijn timers te gebruiken om PWM te genereren, kunnen de servomotoren op elke GPIO-pin worden aangesloten. Ik heb pinnen van RD2 tot RD6 geselecteerd voor de servomotoren, maar het kan elke GPIO naar keuze zijn.

Omdat het programma veel debuggen omvat, is er ook een 16x2 LCD-scherm aangesloten op poort B van de PIC. Dit geeft de duty-cycle weer van de servomotoren die worden aangestuurd. Afgezien hiervan heb ik ook uitgebreide verbindingen voor alle GPIO- en analoge pinnen, voor het geval er in de toekomst sensoren moeten worden aangesloten. Als laatste heb ik ook de programmer pin H1 aangesloten om de PIC direct met pickit3 te programmeren met behulp van de ICSP programmeer optie.

Stap 2: PWM-signalen genereren op GPIO-pin voor servomotorbesturing

"loading="lui">

Aanbevolen: