Turinys:
- Prekės
- 1 žingsnis: 1 žingsnis: Imprimir Todas Las Piezas De La Estructura
- 2 žingsnis: Montaje De La Estructura
- 3 žingsnis: „Montaje De La Electronica“
- 4 žingsnis: programinė įranga: „Calibraje De Servos“
- 5 žingsnis: programinė įranga: „Modulos“
Video: „HexaWalker“: 5 žingsniai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-09 20:34
Hemos echo un grupo de estudiantes de la UAB ir robot hexapodo autonomo with a webcam con micrófono mediante la cual puedes interactuar con el. Idėjos eros hacer ir robotas amistoso que reconociera ordenes de voz y pueda seguir mediante la cámara una pelota. Algo así como una „mascota“rebotica.
Komentuokite „que la estructura que hemos utilizado para nuestro hexapodo la hemos sacado“ir atvirojo kodo „Hexy de ArcBotics“.
„Codigo“nuoroda:
Prekės
- lipo baterija 7.4V 2700mmAh
- x2 adafruit servo vairuotojas
- x18 mikro servos SG90
- internetinės kameros „playstation eye“
-braškių pi -LM2596 žemyn -x2 jungikliai -RGB LED
- kabelių variantai
1 žingsnis: 1 žingsnis: Imprimir Todas Las Piezas De La Estructura
Es necesario imprimir todas las piezas.
Aqui podreis encontrar todos los archivos.stl:
Cabe destacar que las hemos impreso con las siguientes propiedades:
medžiaga: PLA
užpildas: 25%
sluoksnio aukštis: 0,12
greitis: 55 mm/s
2 žingsnis: Montaje De La Estructura
Para el montaje de la estructura recomendamos seguir la guía del autor de las piezas 3D:
guia:
Nėra būtino mišinio mišinio instrukcijų, skirtų robotų funkcijoms, skirtoms robotui, ya que en nuestro caso, solo las hemos utilizado como ayuda.
Pastaba: nėra fidžio los tornillos de los servos antes de calibrarlos en el apartado de código.
3 žingsnis: „Montaje De La Electronica“
Akumuliatorius, naudojamas utilizados y algunos consejos para el montaje. - lipo baterija 7.4V 2700mmAh - x2 adafruit servo tvarkyklė
- x18 mikro servos SG90
- internetinės kameros „playstation eye“
-aviečių pi
-LM2596 pasitraukite
-x2 jungikliai
- RGB šviesos diodas
- kabelių variantai
Esminė „que para conectar 2 adafruits“servo tvarkyklė, suelde el bridge A0 de la segunda placa. Išsami nuoroda: 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 kodis. Explicado en el apartado de código.
4 žingsnis: programinė įranga: „Calibraje De Servos“
Antes de nada se tiene que configurar los pulsos máximos y mínimo de vuestros servos así como los pines donde estén conectados en el archivo hexapod_core.py.
cada servo esta identifado 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.
"" "jungtinio rakto sutartis: R - dešinė, L - kairė F - priekinė, M - vidurinė, B - nugara H - klubas, K - kelias, A - kulkšnies klavišas: (kanalas, minimalaus pulso_ ilgis, maksimalus_pulso_ ilgis)" "" GPIO.setwarnings (Klaidinga) GPIO.setmode (GPIO. BOARD)
jungtinės nuosavybės = {
„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)}
5 žingsnis: programinė įranga: „Modulos“
Reconocimiento de voz:
„Google“„Speech-to-Text“API ir programos „Google Speech-to-Text“įgyvendinimas. „Establecemos“ir „Google“debesies srautai, atsarginiai ir tekstiniai tekstai, o taip pat poder procesorlas for accionar solo ir los casos que nos interesa.
Jei norite gauti „Google Cloud“, kad gautumėte autentišką robotą, patikrinkite, ar nėra „Google Cloud“, kad būtų galima nuskaityti kredencialus.
Para Guardar las credenciales en unaa variable de entorno tenemos que ejecutar el siguiente comando (raspbian):
eksportuoti GOOGLE_APPLICATION_CREDENTIALS = "/tu/ruta/hacia/las/credenciales.json"
Una vez hemos realizado esta comando ya podemos hacer úso de la API de speech-to-text.
„El Código para realizar el streaming“yra proporcingas „google“ir su oficialiais puslapiais, o kitas dokumentas:
Pagrindinė transliacijos funkcija yra „listen_print_loop“, „encargada de decidir cual es la respuesta que se aproxima más al input recibido“, „y donde hemos controlado las respuestas para poder comunicarle al robot cuando ha de hacer una acción, o para avisarle que el comando“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/…
1 PASO: INSTALL OPENCV „Hemos mixido la instación de de professional como“ir Adrianas Rosebrockas, tinklalapyje:
2 PASO: PROBAR LA CAMARA Pradinis veiksmas, skirtas įdiegti „opencv“, žiūrėkite, koks yra hacer es un pequeño scenarijus ir „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.
importuoti numpy kaip np
importuoti cv2
cap = cv2. VideoCapture (0)
o (tiesa): ret, frame = cap.read () grey = cv2.cvtColor (kadras, cv2. COLOR_BGR2GRAY) cv2.imshow ('kadras', kadras) cv2.imshow ('pilka', pilka), jei cv2.waitKey (1) & 0xFF == ord ('q'): pertrauka
cap.release ()
cv2.destroyAllWindows ()
3 PASO: 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 en orden BGR a HSV (formato en el que opencv es capaz de interpretar).
importo sistema
importuoti numpy kaip np importuoti cv2 mėlyna = sys.argv [1] žalia = sys.argv [2] raudona = sys.argv [3] spalva = 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 únicamente uno, lo cual dificultaría la detekcija por problem 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.
importuoti cv2
importuoti numpy kaip np
# Perskaitykite paveikslėlį - 1 reiškia, kad norime vaizdo BGR
img = cv2.imread ('geltonas_objektas.jpg', 1)
# pakeiskite vaizdo dydį iki 20% kiekvienoje ašyje
img = cv2.resize (img, (0, 0), fx = 0.2, fy = 0.2) # konvertuoti BGR vaizdą į HSV vaizdą hsv = cv2.cvtColor (img, cv2. COLOR_BGR2HSV)
# „NumPy“, kad sukurtumėte masyvus apatiniam ir viršutiniam diapazonui laikyti
# „Dtype = np.uint8“reiškia, kad duomenų tipas yra 8 bitų sveikasis skaičius
low_range = np.array ([24, 100, 100], dtype = np.uint8)
viršutinė_sritis = np.masyvas ([44, 255, 255], dtype = np.uint8)
# sukurkite vaizdo kaukę
Kaukė = cv2.inRange
# rodyti kaukę ir vaizdą greta
cv2.imshow ('kaukė', kaukė) cv2.imshow ('vaizdas', img)
# palaukite, kol vartotojas paspaus [ESC]
o (1): k = cv2.waitKey (0) if (k == 27): break cv2.destroyAllWindows ()
4 PASO. En este caso lo que crearemos será un script para que cuando el radio de nuestro objeto sea May a 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.
# tęskite tik tuo atveju, jei spindulys atitinka minimalų dydį
jei spindulys> 10: # nubrėžkite apskritimą ir centroidą ant rėmo, # tada atnaujinkite stebimų taškų sąrašą cv2.circle (frame, (int (x), int (y)), int (spindulys), (0, 255, 255), 2) cv2.circle (kadras, centras, 5, (0, 0, 255), -1) # apskritimo koordinačių žemėlapio žemėlapio centras mapObjectPosition (int (x), int (y)) # jei indikatorius yra dar neįjungtas, įjunkite šviesos diodą, jei jis nėra indikuotas = {1} ". Formatas (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.
5 PASO: OBJEKTŲ STEBĖJIMAS Llegamos al paso final. Una vez realizados los anteriores puntos, estaremos listos para poder configurar un par de parámetros y 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.
jei (x 280):
spausdinti („[ACTION] GIRAR DERECHA“) self.hexa.rotate (poslinkis = -15, pakartojimai = 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 second límite en caso de proximidad de la pelota. Cuanto mas cerca este la pelota de nuestro robot ¡, más grande serija su radiju ir por tanto más cerca estará nuestro robotas en secguir su objetivo.
jei spindulys <105: self.hexa.walk (sūpynės = 40, pakartojimai = 1, pakeltas = -30, grindys = 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.
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: 7 žingsniai
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: Kelionė, skirta visam „Kano Pixel“potencialui išnaudoti, prasideda gamyklos programinės įrangos pakeitimu „MicroPython“, tačiau tai tik pradžia. Norėdami koduoti „Pixel Kit“, turime prie jo prijungti savo kompiuterius. Ši pamoka paaiškins, kas
Tiesioginė 4G/5G HD vaizdo transliacija iš DJI drono esant mažai delsai [3 žingsniai]: 3 žingsniai
Tiesioginis 4G/5G HD vaizdo įrašų srautinis perdavimas iš DJI drono esant mažai delsai [3 žingsniai]: Šis vadovas padės jums gauti tiesioginius HD kokybės vaizdo srautus iš beveik visų DJI dronų. Naudodami „FlytOS Mobile App“ir „FlytNow Web Application“galite pradėti transliuoti vaizdo įrašus iš drono