Machen Sie einen Desktop-Haustierwelpen basierend auf STM32
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Die Erstellung eines Desktop-Welpen auf Basis eines STM32-Mikrocontrollers ist ein unterhaltsames und lehrreiches Projekt! Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung zum Bau eines einfachen interaktiven Desktop-Welpen mit einem STM32-Entwicklungsboard, Sensoren und Aktoren.
Bauteile, die benötigt werden
-
STM32-Entwicklungsboard (z. B. STM32F103C8T6, STM32F4 Discovery oder ein beliebiges STM32-Board mit GPIO-, PWM- und ADC-Funktionen).
-
Servomotor (für die Bewegung des Kopfes oder Schwanzes des Hundes).
-
LEDs (für die Augen oder andere visuelle Rückmeldungen).
-
Summer (für Soundeffekte wie Bellen).
-
Ultraschallsensor (zur Erkennung von Nähe oder Interaktion).
-
Drucktasten (für Benutzereingaben).
-
Widerstände, Kabel und Steckbrett.
-
Stromversorgung (z. B. USB oder Batterie).
-
3D-gedruckter oder gebastelter Hunde-Körper (optional, für die Ästhetik).
Schritte zum Bau des Desktop-Hundes
1. Hardware-Aufbau
-
Servomotor: Verbinden Sie den Servomotor mit einem PWM-Pin des STM32 (z. B. TIM2_CH1), um die Bewegung des Kopfes oder Schwanzes des Hundes zu steuern.
-
LEDs: Schließen Sie LEDs an GPIO-Pins an (mit Vorwiderständen) für die Augen oder andere visuelle Rückmeldungen.
-
Summer: Verbinden Sie den Summer mit einem GPIO-Pin für Soundeffekte.
-
Ultraschallsensor: Verbinden Sie den Ultraschallsensor (z. B. HC-SR04) mit GPIO-Pins zur Abstandsmessung (Trigger- und Echo-Pins).
-
Drucktasten: Verbinden Sie Drucktasten mit GPIO-Pins für Benutzerinteraktionen (z. B. Füttern oder Streicheln des Hundes).
2. Software-Entwicklung
Verwenden Sie STM32CubeIDE oder eine kompatible IDE, um den Code zu schreiben und auf das STM32-Board hochzuladen.
-
Peripheriegeräte initialisieren:
-
Konfigurieren Sie GPIO-Pins für LEDs, Tasten und Summer.
-
Richten Sie PWM für den Servomotor ein.
-
Konfigurieren Sie den ADC, falls analoge Sensoren verwendet werden.
-
Initialisieren Sie Timer für eine präzise Steuerung.
-
-
Hauptlogik:
-
Verwenden Sie den Ultraschallsensor, um zu erkennen, wenn ein Benutzer in der Nähe ist. Wenn der Abstand unter einem Schwellenwert liegt, aktivieren Sie den Hund (z. B. bewegen Sie den Kopf oder Schwanz).
-
Verwenden Sie Drucktasten, um bestimmte Aktionen auszulösen (z. B. den Hund füttern oder bellen lassen).
-
Verwenden Sie LEDs, um die Stimmung des Hundes anzuzeigen (z. B. glücklich, traurig oder hungrig).
-
Verwenden Sie den Summer, um Soundeffekte abzuspielen (z. B. Bellen, Winseln).
-
-
Beispielcode:
#include "stm32f1xx_hal.h" // Pins für Servo, LEDs, Summer und Ultraschallsensor definieren #define SERVO_PIN GPIO_PIN_0 #define LED_PIN GPIO_PIN_1 #define BUZZER_PIN GPIO_PIN_2 #define TRIGGER_PIN GPIO_PIN_3 #define ECHO_PIN GPIO_PIN_4 void Servo_Bewegen(uint16_t winkel) { // Winkel in PWM-Duty-Cycle umrechnen und PWM setzen uint16_t pulsweite = (winkel * 10) + 500; // Beispielberechnung __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, pulsweite); } void Bellen() { HAL_GPIO_WritePin(BUZZER_PIN, GPIO_PIN_SET); HAL_Delay(200); HAL_GPIO_WritePin(BUZZER_PIN, GPIO_PIN_RESET); } uint16_t Ultraschall_Messen() { // Triggerimpuls senden HAL_GPIO_WritePin(TRIGGER_PIN, GPIO_PIN_SET); HAL_Delay(10); HAL_GPIO_WritePin(TRIGGER_PIN, GPIO_PIN_RESET); // Echoimpulsbreite messen uint32_t startzeit = HAL_GetTick(); while (HAL_GPIO_ReadPin(ECHO_PIN)) {} uint32_t endzeit = HAL_GetTick(); return (endzeit - startzeit) * 0.034 / 2; // Abstand in cm berechnen } int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM2_Init(); while (1) { uint16_t abstand = Ultraschall_Messen(); if (abstand < 20) { // Wenn der Benutzer innerhalb von 20 cm ist Servo_Bewegen(90); // Servo auf 90 Grad bewegen Bellen(); // Den Hund bellen lassen HAL_GPIO_TogglePin(LED_PIN); // LED blinken lassen } HAL_Delay(100); } }
3. Mechanische Montage
-
Befestigen Sie den Servomotor an einem 3D-gedruckten oder gebastelten Hunde-Körper, um Bewegungen zu erzeugen (z. B. Schwanzwedeln oder Kopfschütteln).
-
Platzieren Sie den Ultraschallsensor am Gesicht des Hundes, um Benutzerinteraktionen zu erkennen.
-
Positionieren Sie die LEDs als Augen oder andere visuelle Anzeigen.
4. Testen und Kalibrieren
-
Testen Sie jede Komponente einzeln (z. B. Servobewegung, Ultraschallsensor, Summer).
-
Kalibrieren Sie den Ultraschallsensor für eine genaue Abstandsmessung.
-
Passen Sie die Servowinkel und Verzögerungen für eine flüssige Bewegung an.
5. Erweiterungen
-
Fügen Sie weitere Sensoren hinzu (z. B. Temperatursensor, um zu erkennen, ob dem Hund "kalt" ist).
-
Implementieren Sie einen Zustandsautomaten, um verschiedene Stimmungen zu simulieren (z. B. glücklich, traurig, hungrig).
-
Verwenden Sie ein OLED-Display, um den Status oder Animationen des Hundes anzuzeigen.
Fazit
Dieses Projekt kombiniert Hardware und Software, um einen interaktiven Desktop-Hund zu erstellen. Es ist eine großartige Möglichkeit, mehr über STM32-Mikrocontroller, Sensoren und Aktoren zu lernen, während man etwas Spaßiges und Ansprechendes baut! Lass mich wissen, wenn du weitere Hilfe bei einem Teil des Projekts benötigst.