Raspberry Pi Servo Motor aansturen via Bluetooth

Deze handleiding legt uit hoe u een Raspberry Pi programmeert om een Servo Motor aan te sturen via Bluetooth (HC-05 module) of BLE (HM-10 module). Stapsgewijze instructies voor beide modules worden gegeven.

We gebruiken de Bluetooth Serial Monitor App op een smartphone om de hoekwaarde naar de Raspberry Pi te verzenden. De Raspberry Pi past vervolgens de servo motor aan op basis van de ontvangen waarde.

Raspberry Pi Servo Motor Bluetooth

Hardware Benodigd

1×Raspberry Pi 5
1×HC-05 Bluetooth-Module
1×(alternatief) HM-10 BLE Module
1×Servomotor
1×Jumper Draden
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Servo Motor en Bluetooth Module

Als u nog niet bekend bent met Servo Motors, Bluetooth Modules, hun pinouts, mogelijkheden en programmering, raadpleeg dan de volgende tutorials voor meer informatie:

Aansluitschema

  • Om een Servo Motor te besturen via Classic Bluetooth gebruikt u de HC-05 Bluetooth module en volgt u het onderstaande aansluitschema.
Raspberry Pi Servo Motor Bluetooth aansluitschema

This image is created using Fritzing. Click to enlarge image

  • Voor sturing via BLE gebruikt u de HM-10 BLE module. Hieronder vindt u het bijbehorende aansluitschema ter referentie.
Raspberry Pi Servo Motor BLE aansluitschema

This image is created using Fritzing. Click to enlarge image

Raspberry Pi Code - Servo Motor aansturen via Bluetooth/BLE

De hier gegeven code kan worden gebruikt met zowel de HC-05 Bluetooth module als de HM-10 BLE module.

Snel aan de slag

  • Zorg dat u Raspbian of een ander compatibel besturingssysteem op uw Raspberry Pi heeft geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Controleer of uw Raspberry Pi verbonden is met internet als u bibliotheken moet installeren.
  • Als dit de eerste keer is dat u met Raspberry Pi werkt, bekijk dan de handleiding voor het instellen van Raspberry Pi
  • Verbind uw pc met de Raspberry Pi via SSH met behulp van de ingebouwde SSH-client op Linux en macOS, of PuTTY op Windows. Zie hoe uw pc aan Raspberry Pi koppelen via SSH.
  • Controleer of de RPi.GPIO-bibliotheek is geïnstalleerd. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install pyserial
  • Maak een Python-scriptbestand aan met de naam bluetooth_servo.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-control-servo-motor-via-bluetooth import serial import RPi.GPIO as GPIO from time import sleep # Define pins SERVO_PIN = 16 # GPIO 16 (Servo pin) # Set up GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(SERVO_PIN, GPIO.OUT) # Create serial port for Bluetooth communication bluetooth = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1) # Create servo object servo = GPIO.PWM(SERVO_PIN, 50) # 50 Hz frequency for standard servo # Start PWM with 0% duty cycle (servo at 0 degrees) servo.start(0) def rotate_servo(angle): duty_cycle = 2 + (angle / 18) # Map angle to duty cycle (for a standard servo) servo.ChangeDutyCycle(duty_cycle) sleep(1) # Give servo time to move # Main program try: bluetooth.flushInput() # Clear any existing data in the input buffer while True: bluetooth.write(b"Raspberry Pi here, command me!\n") if bluetooth.inWaiting() > 0: angle = bluetooth.parseInt() if 0 <= angle <= 180: rotate_servo(angle) bluetooth.write(b"Rotated servo to angle: ") bluetooth.write(str(angle).encode('utf-8')) bluetooth.write(b"\n") else: bluetooth.write(b"Invalid angle: ") bluetooth.write(str(angle).encode('utf-8')) bluetooth.write(b"\n") # Add a delay to avoid excessive looping sleep(0.1) except KeyboardInterrupt: pass finally: servo.stop() GPIO.cleanup() bluetooth.close()
  • Sla het bestand op en start het Python-script met het volgende commando in de terminal:
python3 bluetooth_servo.py

Het script draait oneindig door totdat u Ctrl + C indrukt in de terminal.

  • Installeer de Bluetooth Serial Monitor App op uw smartphone.
  • Open de Bluetooth Serial Monitor App op uw smartphone en kies Classic Bluetooth of BLE, afhankelijk van welke module u gebruikt.
Bluetooth Serial Monitor App
  • Verbind de app met de HC-05 Bluetooth module of HM-10 BLE module.
Bluetooth Serial Monitor koppeling
  • Voer een hoek in, bijvoorbeeld 45 of 90, en druk op de Verzenden knop.
Bluetooth Serial Monitor App
  • Zie hoe de hoek van de Servo Motor verandert.
  • Bekijk ook de resultaten in de Android-app.
Bluetooth Serial Monitor App

Als u de Bluetooth Serial Monitor app nuttig vindt, overweeg dan om deze 5-sterren te geven in de Play Store. Bedankt voor uw support!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en laat de stap-voor-stap uitvoering duidelijk zien.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!