Taula de continguts:

Braç robòtic basat en microcontrolador PIC: 6 passos (amb imatges)
Braç robòtic basat en microcontrolador PIC: 6 passos (amb imatges)

Vídeo: Braç robòtic basat en microcontrolador PIC: 6 passos (amb imatges)

Vídeo: Braç robòtic basat en microcontrolador PIC: 6 passos (amb imatges)
Vídeo: More than Coffee: Golang. Почему Java разработчики учат GO как второй язык. 2024, Desembre
Anonim
Braç robòtic basat en microcontrolador PIC
Braç robòtic basat en microcontrolador PIC

Des de la línia de muntatge de les indústries de fabricació d’automòbils fins als robots de telesurgia a l’espai, Robotic Arms es troba a tot arreu. Els mecanismes d'aquests robots són similars als humans que es poden programar per a funcions similars i capacitats augmentades. Es poden utilitzar per realitzar accions repetides amb més rapidesa i precisió que els humans o es poden utilitzar en entorns durs sense arriscar la vida humana. Ja hem construït un braç robòtic Record and Play amb Arduino que es podria entrenar per fer una tasca en particular i fer-lo repetir per sempre.

En aquest tutorial, utilitzarem el microcontrolador de 8 bits PIC16F877A estàndard de la indústria per controlar el mateix braç robotitzat amb potenciòmetres. El repte d’aquest projecte és que PIC16F877A només té dos pins compatibles amb PWN, però hem de controlar uns 5 servomotors per al nostre robot que requereix 5 pins PWM individuals. Per tant, hem d’utilitzar els pins GPIO i generar senyals PWM als pins GPIO PIC mitjançant les interrupcions del temporitzador. Ara, per descomptat, podríem actualitzar a un microcontrolador millor o utilitzar un IC de multiplexor per facilitar les coses aquí. Però, tot i així, val la pena provar aquest projecte amb l’experiència d’aprenentatge.

L'estructura mecànica del braç robòtic que estic fent servir en aquest projecte es va imprimir completament en 3D per al meu projecte anterior; aquí podeu trobar els fitxers de disseny i el procediment de muntatge complets. Com a alternativa, si no teniu una impressora 3D, també podeu crear un braç robòtic senzill mitjançant cartrons, tal com es mostra a l’enllaç. Suposant que d'alguna manera heu aconseguit el braç robotitzat, podeu continuar amb el projecte.

Pas 1: diagrama del circuit

Esquema de connexions
Esquema de connexions

A continuació es mostra el diagrama de circuits complet d’aquest braç robòtic basat en microcontrolador PIC. Els esquemes es van dibuixar amb EasyEDA.

El diagrama del circuit és força senzill; el projecte complet està alimentat per l'adaptador de 12 V. A continuació, aquest 12V es converteix a + 5V mitjançant dos reguladors de voltatge 7805. Un s’etiqueta com a + 5V i l’altre s’etiqueta com a + 5V (2). La raó per tenir dos reguladors és que quan el servo gira, entra molta corrent, cosa que crea una caiguda de tensió. Aquesta caiguda de tensió obliga el PIC a reiniciar-se, de manera que no podem operar tant el PIC com els servomotors al mateix carril + 5V. Per tant, l’etiquetatge com a + 5V s’utilitza per alimentar el microcontrolador PIC, LCD i potenciòmetres i una sortida de regulador independent que s’etiqueta com a + 5V (2) s’utilitza per alimentar els servomotors.

Els cinc pins de sortida dels potenciòmetres que proporcionen una tensió variable de 0V a 5V estan connectats als pins analògics An0 a AN4 del PIC. Com que tenim previst utilitzar temporitzadors per generar PWM, els servomotors es poden connectar a qualsevol pin GPIO. He seleccionat pins de RD2 a RD6 per als servomotors, però pot ser qualsevol GPIO que trieu.

Com que el programa comporta molta depuració, una pantalla LCD de 16x2 també està connectada al portB del PIC. Es mostrarà el cicle de treball dels servomotors que s'estan controlant. A part d'això, també he ampliat les connexions per a tots els pins GPIO i analògics, per si de cas s'ha de connectar algun sensor en el futur. Finalment, també he connectat el pin H1 del programador per programar directament el PIC amb pickit3 mitjançant l'opció de programació ICSP.

Pas 2: Generació de senyals PWM al pin GPIO per al control del motor servo

"loading =" mandrós ">

Recomanat: