- Vereiste componenten voor Raspberry Pi Motor Driver HAT
- L293D Motorbesturing IC
- Schakelschema voor Raspberry Pi Motor Driver HAT
- Fabricage PCB voor Raspberry Pi Motor Driver HAT
- PCB bestellen bij PCBWay
- Montage van het
- Raspberry Pi-installatie
- Raspberry Pi Motor Driver Code Uitleg
- Testen van de Raspberry Pi Motor Driver HAT
Een Raspberry Pi HAT is een add-on board voor Raspberry Pi met dezelfde afmetingen als Pi. Het past direct op de Raspberry Pi en heeft geen verdere aansluitingen nodig. Er zijn veel Raspberry Pi-HAT's op de markt. In deze tutorial gaan we een Raspberry Pi Motor Driver HAT bouwen om DC- en stappenmotoren aan te sturen. Deze Motor Driver HAT bestaat uit een L293D motor driver IC, 16 * 2 LCD Display Module, vier drukknoppen en extra pinnen voor SIM800 Module met een 3.3V regelaar. Deze Raspberry Pi HAT komt goed van pas tijdens het bouwen van een robotproject.
Hier hebben we PCBWay gebruikt om de printplaten voor dit project te leveren. In de volgende secties van het artikel hebben we de volledige procedure besproken voor het ontwerpen, bestellen en monteren van de printplaten voor Raspberry pi Motor Driver HAT. We hebben ook Raspberry Pi Hat voor 16x2 LCD en Raspberry Pi LoRa HAT gebouwd in onze vorige projecten.
Vereiste componenten voor Raspberry Pi Motor Driver HAT
- Raspberry Pi
- L293D IC
- 4 × drukknoppen
- SMD-weerstanden (1 × 10K, 12 × 1K)
- 1 × 10K Potentiometer
- 4 × SMD-leds
- LM317 Spanningsregelaar
- 2 × schroefklemmen
- 16 * 2 LCD-module
L293D Motorbesturing IC
De L293D is een populaire 16-pins motorstuurprogramma-IC. Zoals de naam al doet vermoeden, wordt het gebruikt om unipolaire, bipolaire stappenmotoren, DC-motoren of zelfs servomotoren aan te sturen. Een enkele L293D IC kan twee DC-motoren tegelijk aandrijven. Ook kunnen de snelheid en richting van deze twee motoren onafhankelijk worden geregeld. Dit IC wordt geleverd met twee stroomingangspinnen, namelijk 'Vcc1' en 'Vcc2'. Vcc1 wordt gebruikt voor het voeden van de interne logische schakelingen die 5V moeten zijn, en Vcc2-pin is voor het voeden van de motoren die 4,5V tot 36V kunnen zijn.
L293D Specificaties:
- Motorspanning Vcc2 (Vs): 4,5V tot 36V
- Maximale piekmotorstroom: 1,2 A.
- Maximale continue motorstroom: 600mA
- Voedingsspanning naar Vcc1 (VSS): 4,5V tot 7V
- Overgangstijd: 300ns (bij 5V en 24V)
- Automatische thermische uitschakeling is beschikbaar
Schakelschema voor Raspberry Pi Motor Driver HAT
Het volledige schematische diagram voor de L293D-motorstuurprogramma met Raspberry Pi wordt weergegeven in de onderstaande afbeelding. Het schema is getekend met EasyEDA.
Deze HAT bestaat uit de L293D Motor Driver IC, 16 * 2 LCD Display Module en vier drukknoppen. We hebben ook pinnen geleverd voor de SIM800-module met een 3.3V-regelaar die is ontworpen met behulp van de LM317 Variabele regelaar voor toekomstige projecten. De Raspberry Pi Motor Driver HAT zal direct bovenop Raspberry Pi zitten, waardoor het gemakkelijker wordt om robots te besturen met Raspberry Pi.
Fabricage PCB voor Raspberry Pi Motor Driver HAT
Zodra het schema klaar is, kunnen we doorgaan met het opmaken van de PCB. U kunt de printplaat ontwerpen met elke pcb-software van uw keuze. We hebben EasyEDA gebruikt om PCB's voor dit project te fabriceren. U kunt elke laag (bovenzijde, onderzijde, bovenzijde, onderzijde, etc.) van de printplaat bekijken door de laag te selecteren in het venster 'Lagen'. Afgezien hiervan is er ook een 3D-modelweergave van de PCB over hoe deze eruit zou zien na fabricage. Hieronder staan de 3D-modelweergaven van de bovenste laag en de onderste laag van de Pi Motor Driver HAT PCB.
De printlayout voor het bovenstaande circuit is ook beschikbaar om te downloaden als Gerber via de onderstaande link:
- Gerber-bestand voor Raspberry Pi Motor Driver HAT
PCB bestellen bij PCBWay
Nadat u het ontwerp heeft afgerond, kunt u doorgaan met het bestellen van de print:
Stap 1: Ga naar https://www.pcbway.com/, meld u aan als dit de eerste keer is. Voer vervolgens op het tabblad PCB-prototype de afmetingen van uw PCB, het aantal lagen en het aantal PCB's dat u nodig heeft in.
Stap 2: Ga verder door op de knop 'Nu citeren' te klikken. U wordt naar een pagina geleid waar u een paar aanvullende parameters kunt instellen, zoals het bordtype, de lagen, het materiaal voor de printplaat, de dikte en meer. De meeste zijn standaard geselecteerd, maar als u kiest voor specifieke parameters, kunt u deze hier selecteren.
Stap 3: De laatste stap is om het Gerber-bestand te uploaden en door te gaan met de betaling. Om ervoor te zorgen dat het proces soepel verloopt, controleert PCBWAY of uw Gerber-bestand geldig is voordat u verdergaat met de betaling. Op deze manier weet u zeker dat uw printplaat fabricagevriendelijk is en u als toegewijd zal bereiken.
Montage van het
Na een paar dagen kregen we onze PCB in een nette verpakking en de kwaliteit van de PCB was zoals altijd goed. De bovenste laag en de onderste laag van het bord worden hieronder weergegeven:
Na te hebben gecontroleerd of de sporen en voetafdrukken correct waren. Ik ging verder met het monteren van de printplaat. De afbeelding hier laat zien hoe het volledig gesoldeerde bord eruit ziet.
Raspberry Pi-installatie
Voordat we de Raspberry Pi kunnen programmeren, moeten we de vereiste bibliotheken installeren. Werk daarvoor eerst het Raspberry Pi-besturingssysteem bij met behulp van de onderstaande opdrachten:
Sudo apt-get update Sudo apt-get upgrade
Installeer nu de Adafruit_CharLCD-bibliotheek voor de LCD-module. Deze bibliotheek is voor Adafruit LCD-borden, maar het werkt ook met LCD-borden van andere merken.
sudo pip3 installeer Adafruit-CharLCD
Raspberry Pi Motor Driver Code Uitleg
Hier in dit project programmeren we de Raspberry Pi om twee gelijkstroommotoren tegelijkertijd in de richting vooruit, achteruit, links en rechts aan te drijven met een interval van twee seconden. De richting van de motoren wordt weergegeven op het LCD-scherm. De volledige code staat aan het einde van het document. Hier leggen we enkele belangrijke delen van de code uit.
Start zoals gewoonlijk de code door alle vereiste bibliotheken te importeren. De RPi.GPIO-module wordt gebruikt om toegang te krijgen tot de GPIO-pinnen met behulp van Python. De module tijd wordt gebruikt om het programma te onderbreken gedurende een vooraf gedefinieerde tijd.
importeer RPi.GPIO als GPIO importeer tijd importeerbord importeer Adafruit_CharLCD als LCD
Wijs daarna de GPIO-pinnen toe aan het L293D-motorstuurprogramma-IC en LCD-scherm.
lcd_rs = 0 lcd_en = 5 lcd_d4 = 6 Motor1A = 4 Motor1B = 17 Motor1E = 12
Stel nu de 6 motorpennen in als uitgangspennen. De volgende vier zijn de uitgangspennen waarvan de eerste twee worden gebruikt om de rechtermotor aan te sturen en de volgende twee voor de linkermotor. De volgende twee pinnen zijn Inschakelpinnen voor rechter- en linkermotoren.
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)
Beweeg de twee DC-motoren in de while-lus gelijktijdig in de richting vooruit, achteruit, links en rechts met een interval van twee seconden.
GPIO.output (Motor1A, 0) GPIO.output (Motor1B, 0) GPIO.output (Motor2A, 1) GPIO.output (Motor2B, 0) lcd.message ('Left') print ("Left") sleep (2) #Forward GPIO.output (Motor1A, 1) GPIO.output (Motor1B, 0) GPIO.output (Motor2A, 1) GPIO.output (Motor2B, 0) lcd.message ('Forward') print ("Forward") …… ………………………………
Testen van de Raspberry Pi Motor Driver HAT
Als je klaar bent met het monteren van de printplaat, monteer je de motor driver HAT op de Raspberry Pi en start je de code. Als alles goed gaat, bewegen de gelijkstroommotoren die op de Raspberry Pi zijn aangesloten, elke twee seconden tegelijkertijd in de linker-, vooruit-, rechter- en achteruitrichting en wordt de motorrichting weergegeven op het lcd-scherm.
Dit is hoe je je eigen L293D Raspberry Pi Motor Driver HAT kunt bouwen. De volledige code en werkvideo van het project worden hieronder gegeven. Ik hoop dat je genoten hebt van het project en het interessant vond om er zelf een te bouwen. Als u vragen heeft, laat deze dan achter in het commentaargedeelte hieronder.