- Components necessaris per al controlador de motor Raspberry Pi HAT
- IC controlador de motor L293D
- Diagrama de circuits per al controlador de motor Raspberry Pi HAT
- Fabricació de PCB per al controlador de motor Raspberry Pi HAT
- Comanda de PCB a PCBWay
- Muntatge del
- Configuració de Raspberry Pi
- Explicació del codi del controlador del motor Raspberry Pi
- Prova del controlador de motor Raspberry Pi HAT
Un Raspberry Pi HAT és un complement per a Raspberry Pi amb les mateixes dimensions que Pi. Pot cabre directament a la part superior de Raspberry Pi i no requereix cap connexió addicional. Hi ha molts HAT Raspberry Pi disponibles al mercat. En aquest tutorial, crearem un controlador de motor Raspberry Pi HAT per conduir motors CC i pas a pas. Aquest controlador de motor HAT consta d’un circuit controlador de motor L293D, mòdul de pantalla LCD de 16 * 2, quatre botons i pins addicionals per al mòdul SIM800 amb regulador de 3,3 V. Aquest Raspberry Pi HAT serà molt útil mentre es construeix un projecte robotitzat.
Aquí hem utilitzat PCBWay per proporcionar les plaques de PCB d’aquest projecte. A les seccions següents de l'article, hem tractat el procediment complet per dissenyar, ordenar i muntar les plaques de PCB per a Raspberry pi Motor Driver HAT. També hem creat Raspberry Pi Hat per a 16x2 LCD i Raspberry Pi LoRa HAT en els nostres projectes anteriors.
Components necessaris per al controlador de motor Raspberry Pi HAT
- Raspberry Pi
- L293D IC
- 4 × Botons de pressió
- Resistències SMD (1 × 10K, 12 × 1K)
- Potenciòmetre 1 × 10K
- 4 × LEDs SMD
- Regulador de tensió LM317
- 2 × terminals de cargol
- Mòdul LCD de 16 * 2
IC controlador de motor L293D
El L293D és un popular IC de controlador de motor de 16 pins. Com el seu nom indica, s’utilitza per controlar motors pas a pas unipolars, bipolars, motors de CC o fins i tot servomotors. Un únic IC L293D pot accionar dos motors de corrent continu alhora. A més, la velocitat i la direcció d’aquests dos motors es poden controlar independentment. Aquest CI ve amb dos pins d'entrada d'alimentació, és a dir, 'Vcc1' i 'Vcc2'. Vcc1 s’utilitza per alimentar els circuits lògics interns que haurien de ser de 5V, i el pin Vcc2 serveix per alimentar motors que poden ser de 4.5V a 36V.

Especificacions L293D:
- Tensió del motor Vcc2 (Vs): 4,5V a 36V
- Corrent màxim del motor màxim: 1,2A
- Corrent continu del motor màxim: 600 mA
- Voltatge de subministrament a Vcc1 (VSS): 4,5V a 7V
- Temps de transició: 300ns (a 5V i 24V)
- Hi ha disponible una parada tèrmica automàtica
Diagrama de circuits per al controlador de motor Raspberry Pi HAT
El diagrama esquemàtic complet del controlador de motor L293D amb Raspberry Pi es mostra a la imatge que es mostra a continuació. L’esquema es va dibuixar amb EasyEDA.

Aquest HAT consta de l’IC del controlador de motor L293D, un mòdul de pantalla LCD de 16 * 2 i quatre botons. També hem proporcionat pins per al mòdul SIM800 amb un regulador de 3,3V dissenyat amb el regulador variable LM317 per a futurs projectes. El controlador de motor Raspberry Pi HAT se situarà directament a sobre de Raspberry Pi, facilitant el control dels robots mitjançant Raspberry Pi.
Fabricació de PCB per al controlador de motor Raspberry Pi HAT
Un cop fet l'esquema, podem procedir a l'establiment del PCB. Podeu dissenyar el PCB mitjançant qualsevol programari de PCB que trieu. Hem utilitzat EasyEDA per fabricar PCB per a aquest projecte. Podeu veure qualsevol capa (superior, inferior, topsilk, seda inferior, etc.) del PCB seleccionant la capa a la finestra "Capes". A part d'això, també es proporciona una vista del model 3D del PCB sobre com apareixeria després de la fabricació. A continuació es mostren les vistes del model 3D de la capa superior i inferior de la placa de controlador de motor Pi Motor HAT.

El disseny de PCB del circuit anterior també està disponible per descarregar-lo com a Gerber des de l’enllaç següent:
- Fitxer Gerber per a Raspberry Pi Motor Driver HAT
Comanda de PCB a PCBWay
Després de finalitzar el disseny, podeu continuar amb la comanda del PCB:
Pas 1: accediu a https://www.pcbway.com/, registreu-vos si és la primera vegada. A continuació, a la pestanya Prototip de PCB, introduïu les dimensions del PCB, el nombre de capes i el nombre de PCB que necessiteu.

Pas 2: continueu fent clic al botó "Cita ara". Se us dirigirà a una pàgina on definireu uns quants paràmetres addicionals, com ara el tipus de tauler, capes, material per a PCB, gruix i molt més. La majoria es seleccionen per defecte, però si opteu per algun paràmetre específic, podeu seleccionar-los aquí.

Pas 3: l'últim pas és carregar el fitxer Gerber i procedir al pagament. Per assegurar-se que el procés és fluix, PCBWAY verifica si el fitxer Gerber és vàlid abans de procedir al pagament. D'aquesta manera, podeu assegurar-vos que el vostre PCB és fabricant i que us arribarà com a compromès.

Muntatge del
Al cap de pocs dies, vam rebre el nostre PCB en un bon paquet i la qualitat del PCB va ser bona com sempre. A continuació es mostren la capa superior i la capa inferior del tauler:

Després d'assegurar-se que les petjades i les petjades eren correctes. Vaig procedir al muntatge del PCB. La imatge aquí mostra l'aspecte del tauler soldat completament.

Configuració de Raspberry Pi
Abans de programar el Raspberry Pi, hem d’instal·lar les biblioteques necessàries. Per a això, primer, actualitzeu el sistema operatiu Raspberry Pi mitjançant les ordres següents:
Sudo apt-get update Sudo apt-get upgrade
Ara instal·leu la biblioteca Adafruit_CharLCD per al mòdul LCD. Aquesta biblioteca és per a plaques LCD Adafruit, però també funciona amb altres plaques LCD de marca.
sudo pip3 instal·la Adafruit-CharLCD
Explicació del codi del controlador del motor Raspberry Pi
Aquí, en aquest projecte, estem programant el Raspberry Pi per conduir dos motors de corrent continu en la direcció endavant, inversa, esquerra i dreta simultàniament en un interval de dos segons. La direcció dels motors es mostrarà a la pantalla LCD. Es dóna un codi complet al final del document. Aquí expliquem algunes parts importants del codi.
Com és habitual, inicieu el codi important totes les biblioteques necessàries. El mòdul RPi.GPIO s’utilitza per accedir als pins GPIO mitjançant Python. El temps del mòdul s’utilitza per aturar el programa durant un temps predefinit.
importar RPi.GPIO com a temps d'importació GPIO importar tauler d'importació Adafruit_CharLCD com a LCD
Després, assigneu els pins GPIO per al controlador IC del motor L293D i la pantalla LCD.
lcd_rs = 0 lcd_en = 5 lcd_d4 = 6 Motor1A = 4 Motor1B = 17 Motor1E = 12
Ara, configureu els 6 pins del motor com a pins de sortida. Els quatre següents són els pins de sortida dels quals els dos primers s’utilitzen per controlar el motor dret i els dos següents per al motor esquerre. Els dos pins següents són Activa pins per als motors dret i esquerre.
GPIO.setup (Motor1A, GPIO.OUT) GPIO.setup (Motor1B, GPIO.OUT) GPIO.setup (Motor1E, GPIO.OUT) GPIO.setup (Motor2A, GPIO.OUT) GPIO.setup (Motor2B, GPIO.OUT) GPIO.setup (Motor2E, GPIO.OUT)
Dins del bucle while, moveu els dos motors CC en la direcció endavant, inversa, esquerra i dreta simultàniament en un interval de dos segons.
GPIO.output (Motor1A, 0) GPIO.output (Motor1B, 0) GPIO.output (Motor2A, 1) GPIO.output (Motor2B, 0) lcd.message ('Left') imprimir ("Left") dormir (2) #Forward GPIO.output (Motor1A, 1) GPIO.output (Motor1B, 0) GPIO.output (Motor2A, 1) GPIO.output (Motor2B, 0) lcd.message ('Forward') print ("Forward")…… ………………………………
Prova del controlador de motor Raspberry Pi HAT
Un cop hàgiu acabat de muntar el PCB, munteu el controlador de motor HAT a Raspberry Pi i inicieu el codi. Si tot va bé, els motors DC connectats a Raspberry Pi es mouran simultàniament en la direcció esquerra, endavant, dreta i inversa cada dos segons i la direcció del motor es mostrarà a la pantalla LCD.

Així és com podeu construir el vostre propi controlador de motor Raspberry Pi L293D HAT. A continuació es dóna el codi complet i el vídeo de treball del projecte. Espero que us hagi agradat el projecte i us hagi semblat interessant construir el vostre propi. Si teniu cap pregunta, deixeu-les a la secció de comentaris a continuació.
