Inhoudsopgave:
- Benodigdheden
- Stap 1: Stap 1: Imprimir Todas Las Piezas De La Estructura
- Stap 2: Montaje De La Estructura
- Stap 3: Montaje De La Electronica
- Stap 4: Software: Calibraje De Servo's
- Stap 5: Software: Modulos
Video: HexaWalker: 5 stappen
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-09 20:34
Hemos echo un grupo de estudiantes de la UAB un robot hexapodo autonomo met een webcam met microfono mediante la cual puedes interactuar con el. Het idee uit het tijdperk van de robot is ontstaan uit een zoektocht naar een seguir tussen de camera en de pelota. Algo así como una "mascota" rebotica.
Het is mogelijk om de open source software van ArcBotics te gebruiken.
Aquí el link al codigo:
Benodigdheden
- lipo-batterij 7.4V 2700mmAh
- x2 adafruit-servostuurprogramma
- x18 micro-servo's SG90s
- webcam playstation oog
-raspberry pi -LM2596 step down -x2 schakelaars - RGB LED
- verschillende kabels
Stap 1: Stap 1: Imprimir Todas Las Piezas De La Estructura
Es necesario imprimir todas las piezas.
Aqui podreis encontrar todos los archivos.stl:
Uitgangspunt voor wat betreft hemos impreso con las siguientes propiedades:
materiaal: PLA
vulling: 25%
laaghoogte: 0.12
snelheid: 55 mm/s
Stap 2: Montaje De La Estructura
Para el montaje de la estructura recomendamos seguir la guía del autor de las piezas 3D:
guía:
Er is geen noodzaak om de instructies voor het uitvoeren van de functie van robot, ya que en nuestro caso, solo las hemos utilizado como ayuda.
Nota: no fijéis los tornillos de los servos antes de calibrarlos en el apartado de código.
Stap 3: Montaje De La Electronica
U kunt kiezen uit een lijst van gebruikte onderdelen en accessoires voor de montage.- lipo-batterij 7.4V 2700mmAh - x2 adafruit-servostuurprogramma
- x18 micro-servo's SG90s
- webcam playstation oog
-frambozenpi
-LM2596 stap naar beneden
-x2 schakelaars
- RGB-LED
- verschillende kabels
Es belangrijke que para conectar 2 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 configurar los mas adelante en el codigo. Explicado en apartado de código.
Stap 4: Software: Calibraje De Servo's
U kunt een aantal configuraties instellen voor de maximale en minimale servo's van dennen die u kunt koppelen aan het archief van hexapod_core.py.
cada servo identificado según la leyenda de abajo, door cada servo se tiene que indicar, el pin de conexión al servo driver, pulso mini, pulso máximo en el ultimo parámetro es por si el servo esta funcionando al revés que cambiarlo de signo.
""" gewrichtssleutelconventie: R - rechts, L - links F - voor, M - midden, B - achter H - heup, K - knie, A - Enkelsleutel: (kanaal, minimum_pulse_length, maximum_pulse_length) """ GPIO.setwarnings (Fals) 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) }
Stap 5: Software: Modulos
Módulo de reconocimiento de voz:
Voor de implementatie van de este módulo hecho úso de la API van Google 'Speech-to-Text'. Het is mogelijk om streaming met de cloud van Google te vinden, voor het beantwoorden van vragen en voor tekst, en voor het proces van solo's en voor andere zaken.
Voor het gebruik van de esta API die nodig is om te worden geregistreerd en voor Google Cloud, en voor het downloaden van een certificaat voor de autenticar el robot.
Para guardar las credenciales en una variable de entorno tenemos que ejecutar el siguiente comando (Raspbian):
export GOOGLE_APPLICATION_CREDENTIALS="/tu/ruta/hacia/las/credenciales.json"
Maak gebruik van de beschikbare gegevens voor het uitvoeren van een bewerking van de API voor spraak-naar-tekst.
El codigo para realizar el streaming está proporcionado por google en su pagina oficial, muy bien documentado:https://cloud.google.com/speech-to-text/docs/stre…
De belangrijkste functie van de streaming en 'listen_print_loop', de uiteindelijke beslissing en de meest recente invoer, en de controle over de communicatie tussen de robot kan op een toevallige, of op de andere manier verschijnen de voz no es reconocido, para 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 volgt de professionele installatie van Adrian Rosebrock, op de pagina web:
PASO 2: PROBAR LA CAMARA Primero de todo un vez installado opencv, lo que vamos a hacer es un pequeño script en python para probar la camara. Para ello haremos que se abra dos ventanas, una con la imagen original y otra con la imagen en blanco y negro.
importeer numpy als np
import cv2
cap = cv2. VideoCapture(0)
while(True): ret, frame = cap.read() grey = cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY) cv2.imshow('frame', frame) cv2.imshow('gray', grey) if cv2.waitKey (1) & 0xFF == ord('q'): pauze
cap.release()
cv2.destroyAllWindows()
PASO 3: DETECCIÓN DEL COLOR CON OPENCV Parael siguiente paso loque vamos a realizar es una detección de color. Para ello, primero de todo vamos a realizar un script que nos permita convertir un colour en orden BGR a HSV (format en el que opencv es capaz de interpretar).
import systeem
import numpy als np import cv2 blauw = sys.argv[1] groen = sys.argv[2] rood = sys.argv[3] kleur = np.uint8(
U kunt kiezen voor een nieuwe kleur die u kunt afdrukken, u kunt afdrukken door de raad van bestuur en er is een beperkte toegang tot de volgende kleuren, er is geen verschil tussen de kleuren en de kleuren die u kunt kleuren cual dificultaría la detección por problemas de luz o contraste.
Het volgende is een afbeelding die vooraf is gemaakt, een otro-script is gemaakt en een servirá para probar el paso anterior. Bekijk de meest recente resultaten met het beeld van de pasemos (met de kleur die u kunt detecteren) om te zetten in een aantal, op het eiland beschikbare kleuren die u niet kunt zien en hoe u de hemos definido kunt bepalen.
import cv2
importeer numpy als np
# Lees de afbeelding - De 1 betekent dat we de afbeelding in BGR willen hebben
img = cv2.imread('yellow_object.jpg', 1)
# formaat van afbeelding wijzigen naar 20% in elke as
img = cv2.resize(img, (0, 0), fx=0.2, fy=0.2) # converteer BGR-afbeelding naar een HSV-afbeelding hsv = cv2.cvtColor(img, cv2. COLOR_BGR2HSV)
# NumPy om arrays te maken voor het onder- en bovenbereik
# De "dtype = np.uint8" betekent dat het gegevenstype een 8-bits geheel getal is
lager bereik = np.array([24, 100, 100], dtype=np.uint8)
upper_range = np.array([44, 255, 255], dtype=np.uint8)
# maak een masker voor afbeelding
mask = cv2.inRange(hsv, lower_range, upper_range)
# toon zowel het masker als de afbeelding naast elkaar
cv2.imshow('masker', masker) cv2.imshow('afbeelding', img)
# wacht tot de gebruiker op [ESC] drukt
while(1): k = cv2.waitKey(0) if(k == 27): breek cv2.destroyAllWindows()
PASO 4: POSICIONAMIENTO DEL OBJETO Er is een mogelijkheid om een camera te openen en een funcionamiento en hayamos-configuratie te hebben, een minimum aan kleur en een maximum aan kleuren die in de loop van de dag zijn gemaakt. Het is mogelijk om een script te maken voor de 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.
# ga alleen verder als de straal voldoet aan een minimummaat
als straal > 10: # teken de cirkel en het zwaartepunt op het frame, # werk vervolgens de lijst met gevolgde punten bij cv2.circle(frame, (int(x), int(y)), int(radius), (0, 255), 255), 2) cv2.circle(frame, center, 5, (0, 0, 255), -1) # print middelpunt van cirkelcoördinaten mapObjectPosition(int(x), int(y)) # als de led is niet al aan, zet de LED aan indien niet ledOn: GPIO.output(redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): print ("[INFO] Objectcentrum coördineert op X0 = {0} en Y0 = {1}".format(x, y))
Het is mogelijk om een volgende stap in het proces te zetten om de grenzen te bepalen van de nieuwe robot, die een nieuw leven kan leiden.
PASO 5: OBJECT TRACKING Llegamos al paso finale. U kunt een overzicht van eerdere punten, een lijst van configuraties voor het configureren en uitvoeren van een funcionaire nuestra-detección instellen. Voor het eerst gebruiken van verschillende kleuren, van kleur kan het grootste en kleine deel van het lichaam en het doel worden gecreëerd.
kleurLaag = (-2, 100, 100)
kleurBovenste = (18, 255, 255)
También necesitaremos las coordenadas x e y para el limite derecho el el limite izquierdo elegidos en el paso anterior.
als (x 280):
print ("[ACTIE] GIRAR DERECHA") self.hexa.rotate(offset = -15, herhalingen = 1)
Er is een realizondo met de voorwaarden van tevoren en decir que si nuestra coordenada x es meer 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 donde calculamos el radio para marcar otro limite en caso de proximidad de la pelota. Dit is een echte robot die een nieuwe robot kan spelen, meer grote series op radio en een nieuwere robot die gebruikmaakt van objecten.
als straal < 105: self.hexa.walk (swing = 40, herhalingen = 1, verhoogd = -30, vloer = 50, t = 0,3)
Een partir de este punto el programador ya es libre de realizar modificaciones e ir jugando con parámetros y colores.
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Hoe plug-ins in WordPress te installeren in 3 stappen: 3 stappen
Hoe plug-ins in WordPress te installeren in 3 stappen: In deze tutorial laat ik je de essentiële stappen zien om de WordPress-plug-in op je website te installeren. In principe kunt u plug-ins op twee verschillende manieren installeren. De eerste methode is via ftp of via cpanel. Maar ik zal het niet opsommen, want het is echt compl
Akoestische levitatie met Arduino Uno stap voor stap (8 stappen): 8 stappen
Akoestische levitatie met Arduino Uno Stap voor stap (8-stappen): ultrasone geluidstransducers L298N Vrouwelijke DC-adapter voeding met een mannelijke DC-pin Arduino UNOBreadboardHoe dit werkt: eerst upload je code naar Arduino Uno (het is een microcontroller uitgerust met digitale en analoge poorten om code te converteren (C++)