Përmbajtje:
- Furnizimet
- Hapi 1: Hapi 1: Imprimir Todas Las Piezas De La Estructura
- Hapi 2: Montaje De La Estructura
- Hapi 3: Montaje De La Electronica
- Hapi 4: Softueri: Calibraje De Servos
- Hapi 5: Softueri: Modulos
Video: HexaWalker: 5 hapa
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 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 ide era hacer un robot amistoso que reconociera ordenes de voz y pueda seguir mediante la cámara una pelota. Algo así como una "mascota" rebotica.
Komentoni një strukturë që përdorni të gjithë sistemin tuaj për përdorim hexapodo në hemos si një robot me burim të hapur Hexy de ArcBotics.
Aquí el link al codigo:
Furnizimet
- bateri lipo 7.4V 2700mmAh
- x2 adafruit servo shofer
- x18 mikro servo SG90s
- webcam playstation eye
-mjedër pi -LM2596 hap poshtë -çelsin x2 -RGB LED
- varietetet e kabllove
Hapi 1: Hapi 1: Imprimir Todas Las Piezas De La Estructura
Eshte necesario imprimir todas las piezas.
Aqui podreis encontrar todos los archivos.stl:
Cabe destacar que las hemos impreso con las siguientes propiedades:
materiali: PLA
mbush: 25%
lartësia e shtresës: 0.12
shpejtësia: 55 mm/s
Hapi 2: Montaje De La Estructura
Para el montaje de la estructura recomendamos seguir la guía del autor de las piezas 3D:
guía:
Nuk është e nevojshme të përdorni një udhëzim për funksionimin e një funksioni robotik, i cili mund të përdoret vetëm nga një person, i cili mund të përdoret vetëm nga ju.
Shënim: asnjë fije e los tornillos de los servos antes de calibrarlos en el apartado de código.
Hapi 3: Montaje De La Electronica
Aqua va una lista de los componentes useizados y algunos consejos para el montaje.- lipo baterry 7.4V 2700mmAh - x2 adafruit servo driver
- x18 mikro servo SG90s
- webcam playstation eye
-mjedër pi
-LM2596 tërhiqeni
-x2 çelsin
- LED RGB
- varietetet e kabllove
Importantshtë e rëndësishme për para 2 lidhje me drejtuesit e shërbimeve, duke u lidhur me urën A0 de la segunda placa. Lidhje e vlefshme është për detajet: https://learn.adafruit.com/16-channel-pwm-servo-d… Respecto a los servos el orden en el que conectes los pines es indiferente ose que tendrás que configurar los mas adelante en el código. Explicado en el apartado de código.
Hapi 4: Softueri: Calibraje De Servos
Antes de nada se tiene que configurar los pulms máximos dhe mínimo de vuestros servos así como los pines donde estén conectados në el arkivo 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.
"" "Konventa e kyçeve të përbashkëta: R - djathtas, L - majtas F - përpara, M - mes, B - mbrapa H - ijë, K - gju, A - çelësi i kyçit të këmbës: (kanali, gjatësia minimale_pulse, maksimumi_pulsi_gjatësia)" "" GPIO.setwarnings (E rreme) GPIO.setmode (GPIO. BOARD)
pronat e përbashkëta = {
'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)}
Hapi 5: Softueri: Modulos
Mjeti i rikonkurrimit të vozit:
Për zbatimin e éste módulo hemos hecho laso de la API nga Google 'Speech-to-Text'. Mund të transmetohen me një cloud në Google, për t'iu përgjigjur përgjigjeve në tekst, si dhe për të përpunuar procese për një solucion aksidental në los casos që nuk na interesojnë.
Për shembull, ju duhet të regjistroni një API të regjistruar në regjistrin tuaj në Google Cloud, për të krijuar një kredit për një robot autentik.
Para ruajtjes së besimit në një ndryshim të madh të hyrjes në një kohë të caktuar në shoqëri (Raspbian):
eksporto GOOGLE_APPLICATION_CREDENTIALS = "/tu/ruta/hacia/las/credenciales.json"
Una vez hemos realizimin është një komando e podemos hacer úso de la API nga fjalimi në tekst.
El código para realizar el streaming está proporcionado për google në faqen tuaj zyrtare, mund të dokumentoni:
Funksioni kryesor i transmetimit është 'listen_print_loop', për të përcaktuar vendimin që të merrni një përgjigje se si të hyni në recribido, nëse ju dëshironi të kontrolloni të gjitha shërbimet për të komunikuar me robotët, si dhe për një avisar, ose para avisar nuk do të rikonfirmoni, para se të keni një robot realice un movimiento que simula nuk haber entendido al usuario.
El código adaptado se encuentra en el repositorio de git Hexawalker
github.com/RLP2019/HEXAWALKER/blob/master/…
PASO 1: INSTALO OPENCV Hemos se instalación de un com professional profesional Adrian Rosebrock, en su pàgina web:
PASO 2: PROBAR LA CAMARA Primero për të bërë një instalim të hapur, këtu është një skenar i pacaktuar në python para probar la camara. Për më tepër, ju mund të shikoni se cilat janë ato, të cilat mund të quhen origjinale dhe të tjera, të cilat mund të shihen në një zezë.
importoni numpy si np
import cv2
cap = cv2. VideoCapture (0)
ndërsa (E vërtetë): ret, kornizë = kap.lex () gri = cv2.cvtColor (kornizë, cv2. COLOR_BGR2GRAY) cv2.imshow ('kornizë', kornizë) cv2.imshow ('gri', gri) nëse cv2.waitKey (1) & 0xFF == ord ('q'): pushim
kapak. lëshim ()
cv2.destroyAllWindows ()
PASO 3: ZBULIMI I DEL COLOR CON OPENCV Për më tepër, ju mund të kuptoni se si të realizoni një ngjyrë të panjohur. Për më tepër, fillimisht për të kryer një skenar që nuk lejon të konvertohet me një ngjyrë dhe për të rregulluar BGR a HSV (formatimi i tij është i hapur për interpretimin).
import sys
import numpy si np import cv2 blu = sys.argv [1] jeshile = sys.argv [2] e kuqe = sys.argv [3] ngjyra = np.uint8 (
Una vez hayamos hecho la conversión de nuestro color deseado, el script nuk printohet nga consola el límite por debajo y el límite por arriba, el cual nos servirá para que la la zbulimin e një gama të ngjyrave për të hyrë në ngjyra hsv y no lonicamente uno 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 (ngjyrën dhe objektin tuaj të zbulimit) të konvertuar në një pamje të veçantë, në aislando todos los colours que no se encuentren en ese rango hsv que hemos definido.
import cv2
importoni numpy si np
# Lexoni fotografinë - 1 do të thotë që ne duam imazhin në BGR
img = cv2.imread ('yellow_object.jpg', 1)
# ndrysho madhësinë e imazhit në 20% në secilin aks
img = cv2.resize (img, (0, 0), fx = 0.2, fy = 0.2) # shndërroni imazhin BGR në një imazh HSV hsv = cv2.cvtColor (img, cv2. COLOR_BGR2HSV)
# NumPy për të krijuar vargje për të mbajtur gamën e poshtme dhe të sipërme
# "Dtype = np.uint8" do të thotë që lloji i të dhënave është një numër i plotë 8 bitësh
niveli më i ulët = np.array ([24, 100, 100], dtype = np.uint8)
niveli i sipërm = np. array ([44, 255, 255], dtype = np.uint8)
# krijoni një maskë për imazhin
maskë = cv2.inRange (hsv, rangu i poshtëm, niveli i sipërm)
# shfaqni maskën dhe imazhin krah për krah
cv2.imshow ('maskë', maskë) cv2.imshow ('imazh', img)
# prisni që përdoruesi të shtypë [ESC]
ndërsa (1): k = cv2.waitKey (0) nëse (k == 27): thyej 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 mínimo y máximo de color hsv, que este sea capaz de encontrar las bashkëroenadas x. En este caso lo que crearemos será un script for cuando el radio nga nuestro objeto sea kryetari i 10, ju duhet të qarkulloni në mënyrë sobre el objeto ynos vaya mostrando por pantalla la posición en tiempo real sus coordenadas x e y.
# vazhdoni vetëm nëse rrezja plotëson një madhësi minimale
nëse rrezja> 10: # vizatoni rrethin dhe centroidin në kornizë, # atëherë përditësoni listën e pikave të gjurmuara cv2.circle (frame, (int (x), int (y)), int (radius), (0, 255, 255), 2) cv2. Rreth (kornizë, qendër, 5, (0, 0, 255), -1) # qendra e printuar e rrethit koordinon hartënObjectPosition (int (x), int (y)) # nëse led është jo tashmë i ndezur, ndizni LED nëse nuk është ledOn: GPIO.output (redLed, GPIO. HIGH) ledOn = E vërtetë def mapObjectPosition (x, y): print ("[INFO] Koordinatat e Qendrës së Objektit në X0 = {0} dhe 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: ZBULIMI I OBJEKTIT Llegamos al paso final. Una vez realizados los anteriores puntos, lista e listave për poder configurar un par demetric dhe poner një funksionues të zbulimit të zbulimit. Përdorimi i përdorimit të anteriormente hemos dicho, los parámetros del color hsv máximo y mínimo para poder crear la máscara y dtectar el objeto.
ngjyraLower = (-2, 100, 100)
ngjyraUpper = (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.
nëse (x 280):
print ("[ACTION] GIRAR DERECHA") self.hexa.rotate (kompensim = -15, përsëritje = 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á është përdorur nga variabla e ndryshuar në llogaritjet e radios para marcar otro límite en caso de proximidad de la pelota. Për shembull, ju mund të përdorni një robot nu, më së shumti një radio të madhe për një robot nuestro, i cili më pas ju sugjeron.
nëse rrezja <105: self.hexa.walk (lëkundje = 40, përsëritje = 1, ngritur = -30, dysheme = 50, t = 0.3)
Një pjesë e vlerësuar e programuesit të lirë të realizimit të modifikimeve dhe i ngjyrosjes së tyre në parimetra të ngjyrave.
Recommended:
Si të bëni 4G LTE Antenë të BiQuade të Dyfishtë Hapa të Lehtë: 3 Hapa
Si të bëni 4G LTE Antenë BiQuade të Dyfishtë Hapa të Lehtë: Shumicën e kohës me të cilën jam përballur, nuk kam forcë të mirë të sinjalit në punët e mia të përditshme. Kështu që. Kërkoj dhe provoj lloje të ndryshme antenash por nuk funksionoj. Pas humbjes së kohës gjeta një antenë që shpresoj ta bëj dhe ta provoj, sepse është parimi i ndërtimit jo
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa
Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: 3 hapa
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: Në këtë Instructable ne do të bëjmë zbulimin e fytyrës në Raspberry Pi 4 me Shunya O/S duke përdorur Bibliotekën Shunyaface. Shunyaface është një bibliotekë për njohjen/zbulimin e fytyrës. Projekti synon të arrijë shpejtësinë më të shpejtë të zbulimit dhe njohjes me
Pasqyrë DIY Vanity në hapa të thjeshtë (duke përdorur dritat LED të shiritit): 4 hapa
DIY Vanity Mirror në hapa të thjeshtë (duke përdorur dritat e shiritit LED): Në këtë postim, unë bëra një DIY Vanity Mirror me ndihmën e shiritave LED. Reallyshtë vërtet e lezetshme dhe duhet t'i provoni gjithashtu
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni