Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Trinn 1: Imprimir Todas Las Piezas De La Estructura
- Trinn 2: Montaje De La Estructura
- Trinn 3: Montaje De La Electronica
- Trinn 4: Programvare: Calibraje De Servos
- Trinn 5: Programvare: Moduler
Video: HexaWalker: 5 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-09 20:34
Hemos echo un grupo de estudiantes de la UAB un robot hexapodo autonomo con una webcam con micrófono mediante la cual puedes interactuar con el. La idé æra hacer un robot amistoso que reconociera ordenes de voz y pueda seguir mediante la cámara una pelota. Algo así como una "mascota" rebotica.
Kan kommentere denne strukturen for å kunne bruke den til å bruke hexapodo for hemos sacado for robot open source Hexy de ArcBotics.
Aquí el link al codigo:
Rekvisita
- lipobatteri 7.4V 2700mmAh
- x2 adafruit servodriver
- x18 mikroservoer SG90s
- webkamera playstation eye
-Raspberry pi -LM2596 trinn ned -x2 brytere -RGB LED
- kabler varios
Trinn 1: Trinn 1: Imprimir Todas Las Piezas De La Estructura
Es necesario imprimir todas las piezas.
Aqui podreis encontrar todos los archivos.stl:
Vi kan gjøre det vanskeligere for oss å gjøre følgende:
materiale: PLA
fylling: 25%
laghøyde: 0,12
hastighet: 55 mm/s
Trinn 2: Montaje De La Estructura
Para el montaje de la estructura recomendamos seguir la guía del author de las piezas 3D:
guía:
No es necesario seguir las instrucciones estrictamente para el buen funcionamiento del robot, ya que en nuestro caso, solo las hemos utilizado como ayuda.
Merk: no fijéis los tornillos de los servos antes de calibrarlos en el apartado de código.
Trinn 3: Montaje De La Electronica
Vi har en liste over komponenter som kan brukes og brukes til å montere deler. - Lipo baterry 7.4V 2700mmAh - x2 adafruit servodriver
- x18 mikroservoer SG90s
- webkamera playstation eye
-bringebær pi
-LM2596 gå ned
-x2 brytere
- RGB LED
- kabler varios
Det er viktig for to adafruits servo drivers, se suelde el bridge A0 de la segunda placa. En este link esta detallado: https://learn.adafruit.com/16-channel-pwm-servo-d… Respecto a los servos el orden en el que conectes los pines es indiferente ya que tendrás que configar los mas adelante en el código. Explicado en el apartado de código.
Trinn 4: Programvare: Calibraje De Servos
Antes de nada se tiene que configurar los pulsos máximos y minimo de vuestros servos así como los pines donde estén conectados en el archivo hexapod_core.py.
cada servo esta identificado según la leyenda de abajo, por cada servo se tiene que indicar, el pin de conexión al servo driver, pulso mínimo, pulso máximo y el ultimo parámetro es por si el servo esta funcionando al revés de como debería, solo tenies que cambiarlo de signo.
"" "joint_key -konvensjon: R - høyre, L - venstre F - foran, M - midten, B - bak H - hofte, K - kne, A - Ankelnøkkel: (kanal, minimum_puls_lengde, maksimal_puls_lengde)" "" GPIO.setwarnings (Falsk) GPIO.setmode (GPIO. BOARD)
joint_properties = {
'LFH': (0, 248, 398, -1), 'LFK': (1, 195, 492, -1), 'LFA': (2, 161, 580, -1), 'RFH': (31, 275, 405, 1), 'RFK': (30, 260, 493, -1), 'RFA': (29, 197, 480, -1), 'LMH': (3, 312, 451, -1), 'LMK': (4, 250, 520, -1), 'LMA': (5, 158, 565, -1), 'RMH': (28, 240, 390, 1), 'RMK': (27, 230, 514, -1), 'RMA': (26, 150, 620, -1), 'LBH': (6, 315, 465, 1), 'LBK': (8, 206, 498, -1), 'LBA': (7, 150, 657, -1), 'RBH': (25, 320, 480, 1), 'RBK': (24, 185, 490, -1), 'RBA': (23, 210, 645, -1), 'N': (18, 150, 650, 1)}
Trinn 5: Programvare: Moduler
Módulo de reconocimiento de voz:
Para la implementación de éste módulo hemos hecho úso de la API for Google 'Speech-to-Text'. Det er mulig å streame med en sky fra Google, for å svare på tekst og for å behandle en prosess for en av våre kunder.
For poder for å kunne bruke et API som er nødvendig for registrering av Google Cloud, og vi kan laste ned autentiske roboter for poder.
Para guardar las credenciales en una variable de entorno tenemos que ejecutar el siguiente comando (Raspbian):
eksport GOOGLE_APPLICATION_CREDENTIALS = "/tu/ruta/hacia/las/credenciales.json"
Du kan også realisere en kommando for podemos som kan bruke API-en for tale-til-tekst.
El código for realizar el streaming está proporcionado por google en su page oficial, muy bien documentado:
Funksjonaliteten for streaming av 'listen_print_loop', det er mulig å velge mellom flere innskrifter, og du kan også kontrollere kontrollene for en poder til en robot som kan ta en opplevelse, eller for en avisarle que el comando de voz no es reconocido, for que el robot realice un movimiento que simula no haber entendido al usuario.
El código adaptado se encuentra en el repositorio de git Hexawalker
github.com/RLP2019/HEXAWALKER/blob/master/…
PASO 1: INSTALL OPENCVHemos seguido la instalación de un profesional como es Adrian Rosebrock, en su pàgina web:
PASO 2: PROBAR LA CAMARA Primero de todo una vez instalado opencv, lo que vamos a hacer es un pequeño script en python para probar la camara. Para ello haremos que se abran dos ventanas, una con la imagen original y otra con la imagen en blanco y negro.
importer numpy som np
importer cv2
cap = cv2. VideoCapture (0)
mens (True): ret, frame = cap.read () grå = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) cv2.imshow ('frame', frame) cv2.imshow ('grå', grå) hvis cv2.waitKey (1) & 0xFF == ord ('q'): pause
cap.release ()
cv2.destroyAllWindows ()
PASO 3: DETECCIÓN DEL COLOR CON OPENCV Para el siguiente paso lo que vamos a realizar es una detección de color. Para ello, primero de todo vamos a realizar un script que nos permita convertir un color and orden BGR a HSV (formato en el que opencv es capaz de interpretar).
importer sys
import numpy as np import cv2 blue = sys.argv [1] green = sys.argv [2] red = sys.argv [3] color = np.uint8 (
Una vez hayamos hecho la conversión de nuestro color deseado, el script nos printará por consola el límite por debajo y el límite por arriba, el cual nos servirá para que la detección tenga una gama de colores entre dos colores hsv y no unnicamente uno, lo cual dificultaría la detección por problemas de luz o contraste.
El siguiente paso es con una imagen previamente realizada, crear otro script el cual nos servirá para probar el paso anterior. Lo que nos mostrará como resultado será la imagen que nosotros le pasemos (con el color u objeto a detectar) convertida en una máscara, aislando todos los colores que no se encuentren en ese rango hsv que hemos definido.
importer cv2
importer numpy som np
# Les bildet - 1 betyr at vi vil ha bildet i BGR
img = cv2.imread ('yellow_object.jpg', 1)
# endre størrelsen på bildet til 20% i hver akse
img = cv2.resize (img, (0, 0), fx = 0.2, fy = 0.2) # konverter BGR -bilde til et HSV -bilde hsv = cv2.cvtColor (img, cv2. COLOR_BGR2HSV)
# NumPy for å lage matriser for å holde nedre og øvre område
# “Dtype = np.uint8” betyr at datatypen er et 8 -bits heltall
lavere område = np.array ([24, 100, 100], dtype = np.uint8)
upper_range = np.array ([44, 255, 255], dtype = np.uint8)
# lag en maske for bildet
mask = cv2.inRange (hsv, lower_range, upper_range)
# vis både masken og bildet side om side
cv2.imshow ('maske', maske) cv2.imshow ('image', img)
# vent til brukeren trykker på [ESC]
while (1): k = cv2.waitKey (0) if (k == 27): break cv2.destroyAllWindows ()
PASO 4: POSICIONAMIENTO DEL OBJETO En este paso probaremos que una vez la camara se encuentre en funcionamiento y hayamos configurado nuestro rango minimo y máximo de color hsv, que este sea capaz de encontrar las coordenadas x e y del centro de nuest. En este caso lo que crearemos será un script para que cuando el radio de nuestro objeto sea mayor a 10, dibuje un circulo sobre el objeto y nos vaya mostrando por pantalla la posición en tiempo real sus coordenadas x e y.
# fortsett bare hvis radius oppfyller en minimumsstørrelse
hvis radius> 10: # tegne sirkelen og sentroiden på rammen, # oppdater deretter listen over sporede punkter cv2.circle (ramme, (int (x), int (y)), int (radius), (0, 255, 255), 2) cv2.circle (ramme, senter, 5, (0, 0, 255), -1) # skrive ut sentrum av sirkelkoordinater mapObjectPosition (int (x), int (y)) # hvis lysdioden er ikke allerede på, slå på lysdioden hvis ikke ledOn: GPIO.output (redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): print ("[INFO] Object Center coordenates at X0 = {0} and Y0 = {1} ". Format (x, y))
Con esto lo que vamos a conseguir es en el siguiente paso poder jugar con las coordenadas para establecer los límites de lo que será girar a la derecha nuestro robot, girar a la izquierda o bien no realizar ningún movimiento al no salir por ningún límite.
PASO 5: OBJECT TRACKING Llegamos al paso final. Una vez realizados los anteriores puntos, estaremos listos for poder configar un par de metámetros and poner a funcionar nuestra detección. Para ello utilizaremos como anteriormente hemos dicho, los parámetros del color hsv máximo y mínimo para poder crear la máscara y dtectar el objeto.
colorLower = (-2, 100, 100)
colorUpper = (18, 255, 255)
También necesitaremos las coordenadas x e y para el límite derecho y el límite izquierdo elegidos en el paso anterior.
hvis (x 280):
print ("[ACTION] GIRAR DERECHA") self.hexa.rotate (offset = -15, repetisjoner = 1)
Lo que estamos realizando con los condicionales anteriores es decir que si nuestra coordenada x es más pequeña que 220, gire a la izquierda. En el caso de que sea más grande, gire a la derecha.
Para el caso en el que se quiera avanzar hacia adelante lo que se realizará es utilizar la variable dónde calculamos el radio para marcar otro límite en caso de proximidad de la pelota. Cuanto mas cerca este la pelota de nuestro robot ¡, más grande será su radio y por tanto más cerca estará nuestro robot en conseguir su objetivo.
hvis radius <105: self.hexa.walk (swing = 40, repetisjoner = 1, hevet = -30, gulv = 50, t = 0,3)
A partir de este punto el programador ya es libre de realizar modificaciones e ir jugando con parámetros y colores.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte