ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1: ደረጃ 1 - ኢምፊሪም ቶዳስ ላስ ፒዛስ ዴ ላ ኢስትራቱራ
- ደረጃ 2 - ሞንታጄ ዴ ላ ኤስታሩቱራ
- ደረጃ 3 ሞንታጄ ዴ ላ ኤሌክትሮኒክ
- ደረጃ 4 - ሶፍትዌር - ካሊብራጄ ዴ ሰርቪስ
- ደረጃ 5: ሶፍትዌር - ሞዱሎች
ቪዲዮ: HexaWalker: 5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
ሄሞስ አስተጋባ አንድ ግሩፖ ደ ኢስትዩስታንስ ዴ ላ ዩአቢ አንድ ሮቦት ሄክሳፖዶ autonomo con una webcam con micrófono mediante la cual puedes interactuar con el. ላ ሀሳብ ዘመን hacer un robot amistoso que reconociera ordenes de voz y pueda seguir mediante la cámara una pelota. Algo así como una "mascota" rebotica.
Cabe comentar que la estructura que hemos utilizado para nuestro hexapodo la hemos sacado del robot open source Hexy de ArcBotics.
አሊ ኤል ኮዲጎ አገናኝ
አቅርቦቶች
- ሊፖ ባትሪ 7.4 ቪ 2700 ሚአሰ
- x2 adafruit servo ሾፌር
- x18 ማይክሮ servos SG90 ዎች
- የድር ካሜራ መጫዎቻ አይን
-raspberry pi -LM2596 ደረጃ ወደ ታች -x2 መቀየሪያዎች -RGB LED
- ኬብሎች varios
ደረጃ 1: ደረጃ 1 - ኢምፊሪም ቶዳስ ላስ ፒዛስ ዴ ላ ኢስትራቱራ
Es necesario imprimir todas las piezas.
Aqui podreis encontrar todos los archivos.stl:
ካብ destacar que las hemos impreso con las lasiguientes propiedades:
ቁሳቁስ: PLA
መፍሰስ: 25%
የንብርብር ቁመት - 0.12
ፍጥነት: 55 ሚሜ/ሰ
ደረጃ 2 - ሞንታጄ ዴ ላ ኤስታሩቱራ
Para el montaje de la estructura recomendamos seguir la guía del autor de las piezas 3D:
ጉያ
በዚህ ጉዳይ ላይ ምንም ነገር የለም።
ማሳሰቢያ: ምንም fijéis los tornillos de los servos antes de calibrarlos en el apartado de código.
ደረጃ 3 ሞንታጄ ዴ ላ ኤሌክትሮኒክ
አቪዬ ዩና ሊስታ ዴ ሎስ አካሎች utilizados y algunos consejos para el montaje.- lipo baterry 7.4V 2700mmAh - x2 adafruit servo ሾፌር
- x18 ማይክሮ servos SG90 ዎች
- የድር ካሜራ መጫዎቻ አይን
-እንጆሪ ፒ
-LM2596 መውረድ
-x2 መቀየሪያዎች
- RGB LED
- ኬብሎች varios
Es importante que para conectar 2 adafruits servo ሾፌሮች ፣ se suelde el bridge A0 de la segunda placa. በዚህ አገናኝ ላይ እስታ ዴላዶ ፦ 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 ኮዲጎ። Explicado en el apartado de código.
ደረጃ 4 - ሶፍትዌር - ካሊብራጄ ዴ ሰርቪስ
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 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.
"" "የጋራ_ቁልፍ ስምምነት - አር - ቀኝ ፣ ኤል - ግራ ኤፍ - ፊት ፣ ኤም - መካከለኛ ፣ ቢ - ጀርባ ኤች - ሂፕ ፣ ኬ - ጉልበት ፣ ሀ - የቁርጭምጭሚት ቁልፍ ((ሰርጥ ፣ ዝቅተኛ_መጠን_መጠን ፣ ከፍተኛ_መጠን_መጠን))””” GPIO. ማስጠንቀቂያዎች (ሐሰት) GPIO.setmode (GPIO. BOARD)
የጋራ_ሀብት = {
'LFH': (0, 248, 398, -1) ፣ 'LFK': (1 ፣ 195 ፣ 492 ፣ -1) ፣ 'ኤልኤፍ': (2 ፣ 161 ፣ 580 ፣ -1) ፣
'አርኤፍኤች': (31 ፣ 275 ፣ 405 ፣ 1) ፣ 'አርኬኬ' ((30 ፣ 260 ፣ 493 ፣ -1) ፣ 'አርኤፍኤ') (29 ፣ 197 ፣ 480 ፣ -1) ፣ 'ኤልኤምኤች': (3 ፣ 312 ፣ 451 ፣ -1) ፣ ‘ኤልኤምኬ’ (4 ፣ 250 ፣ 520 ፣ -1) ፣ ‘ኤልኤምአ’: (5 ፣ 158 ፣ 565 ፣ -1) ፣ ‘አርኤምኤም’: (28 ፣ 240 ፣ 390 ፣ 1) ፣ 'አርኤምኬ': (27 ፣ 230 ፣ 514 ፣ -1) ፣ 'አርኤምኤ' (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) ፣ 'ኤን' (18 ፣ 150 ፣ 650 ፣ 1)}
ደረጃ 5: ሶፍትዌር - ሞዱሎች
ሙዱሎ ደ ሬኮኮሚዮንትቶ ዴ voz:
Para la implementación de éste módulo hemos hecho úso de la API de Google 'ንግግር-ወደ-ጽሑፍ'. Establecemos un streaming con el cloud cloud Google, para obtener las respuestas en texto, y así poder procesarlas para accionar solo en los casos que nos interesa.
በ Google ደመና ፣ በዴስክቶፕ ኤክስፒአይ ኤፒአይ necesitamos tener un proyecto registrado en Google Cloud, y de este descargar las credenciales para poder autenticar el robot.
Para guardar las credenciales en una variable de entorno tenemos que ejecutar el siguiente comando (Raspbian) ፦
ወደ ውጭ ላክ GOOGLE_APPLICATION_CREDENTIALS = "/tu/ruta/hacia/las/credenciales.json"
Una vez hemos realizado esta comando ya podemos hacer úso de la API de ንግግር-ወደ-ጽሑፍ።
El código para realizar el streaming está proporcionado por google en su pagina of official, muy bien documentado:
ላ función principal del streaming es 'listen_print_loop', la encargada de decidir cual es la respuesta que se aproxima más al input recibido, y donde hemos controlado las respuestas para poder comunicarle አል ሮቦት 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/…
PASO 1: OPENCV ን ይጫኑ Hemos seguido la instalación de un profesional como es Adrian Rosebrock, en su pagina web:
ፓሶ 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 ventanaas, una con la imagen original y otra con la imagen en blanco y negro.
ቁጥርን እንደ np ያስመጡ
ማስመጣት cv2
cap = cv2. VideoCapture (0)
(እውነት): ret ፣ frame = cap.read () ግራጫ = cv2.cvtColor (ፍሬም ፣ cv2. COLOR_BGR2GRAY) (1) እና 0xFF == ord ('q'): እረፍት
ካፕ። መልቀቅ ()
cv2. DestroyAllWindow ()
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 converir un color en orden BGR a HSV (formato en el que opencv es capaz de ተርጓሚ)።
ማስመጣት sys
nump ን እንደ np ማስመጣት cv2 ሰማያዊ = sys.argv [1] አረንጓዴ = sys.argv [2] ቀይ = sys.argv [3] ቀለም = 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, እነሆ cual dificultaría la detección por problemas de luz o contraste.
ኤል ሲጉዬቴ ፓሶ እስ con una imagen previamente realizada, crear otro script ኤል 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 detear) converida en una máscara, aislando todos los colores que no se encuentren en ese rango hsv que hemos definidoido.
ማስመጣት cv2
ቁጥርን እንደ np ያስመጡ
# ስዕሉን ያንብቡ - 1 ማለት ምስሉን በ BGR ውስጥ እንፈልጋለን ማለት ነው
img = cv2.imread ('yellow_object.jpg', 1)
በእያንዳንዱ ዘንግ ውስጥ ሃሳቡን ወደ 20% ይቀይሩ
img = cv2.resize (img ፣ (0 ፣ 0) ፣ fx = 0.2 ፣ fy = 0.2) # የ BGR ምስልን ወደ HSV ምስል ይለውጡ hsv = cv2.cvtColor (img ፣ cv2. COLOR_BGR2HSV)
የታችኛው እና የላይኛውን ክልል ለመያዝ ድርድሮችን ለመፍጠር # NumPy
# “Dtype = np.uint8” ማለት የውሂብ ዓይነት 8 ቢት ኢንቲጀር ነው ማለት ነው
Lower_range = np.array ([24, 100, 100] ፣ dtype = np.uint8)
upper_range = np.array ([44, 255, 255] ፣ dtype = np.uint8)
# ለምስል ጭምብል ይፍጠሩ
ጭንብል = cv2.inRange (hsv ፣ Lower_range ፣ upper_range)
# ጭምብሉን እና ምስሉን ጎን ለጎን ያሳዩ
cv2.imshow ('ጭንብል' ፣ ጭንብል) cv2.imshow ('ምስል' ፣ img)
[ESC] ን ለመጫን # ይጠብቁ።
(1): k = cv2.waitKey (0) ከሆነ (k == 27): cv2.destroyAllWindow ()
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 coordenadas x e y del centro de nuestro obj. En este caso lo que crearemos será un script para que cuando el radio de nuestro objeto የባህር ከንቲባ 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.
# ራዲየስ አነስተኛውን መጠን ካሟላ ብቻ ይቀጥሉ
ራዲየስ> 10: # በክፈፉ ላይ ያለውን ክበብ እና ሴንትሮይድ ይሳሉ ፣ # ከዚያ የተከታተሉ ነጥቦችን ዝርዝር ያዘምኑ cv2.ccle (ፍሬም ፣ (int (x) ፣ int (y)) ፣ int (ራዲየስ) ፣ (0 ፣ 255 ፣ 255) ፣ 2) cv2. ክበብ (ፍሬም ፣ መሃል ፣ 5 ፣ (0 ፣ 0 ፣ 255) ፣ -1) # የክበብ መጋጠሚያዎች ካርታ ObbjectPosition (int (x) ፣ int (y)) # # የሕትመት ማዕከል ገና አልበራም ፣ ካልመራ LED ን ያብሩ በ: GPIO.output (redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): print ("[INFO] Object Center X0 = {0} እና Y0 ላይ ያስተባብራል) = {1} "። ቅርጸት (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: ክትትል መከታተል 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.
ከሆነ (x 280):
ማተም ("[ድርጊት] GIRAR DERECHA") self.hexa.rotate (ማካካሻ = -15 ፣ ድግግሞሽ = 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 ኤል ሬዲዮ 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.
ራዲየስ ከሆነ <105: self.hexa.walk (ማወዛወዝ = 40 ፣ ድግግሞሽ = 1 ፣ ተነስቷል = -30 ፣ ወለል = 50 ፣ t = 0.3)
ከፕሮግራሙ አኳኋን ጋር ተዛማጅነት ያላቸው ነገሮች።
የሚመከር:
በ Flick ውስጥ የጨዋታ ንድፍ በ 5 ደረጃዎች 5 ደረጃዎች
በ 5 ደረጃዎች ውስጥ በ Flick ውስጥ የጨዋታ ንድፍ -ፍሊክስ ጨዋታን በተለይም በእውነቱ እንደ እንቆቅልሽ ፣ የእይታ ልብ ወለድ ወይም የጀብድ ጨዋታ የመሰለ ቀላል መንገድ ነው።
የአርዱዲኖ መኪና የተገላቢጦሽ የመኪና ማቆሚያ ማስጠንቀቂያ ስርዓት - ደረጃዎች በደረጃ: 4 ደረጃዎች
የአርዱዲኖ መኪና የተገላቢጦሽ የመኪና ማቆሚያ ማንቂያ ስርዓት | ደረጃዎች በደረጃ-በዚህ ፕሮጀክት ውስጥ አርዱዲኖ UNO እና HC-SR04 Ultrasonic Sensor ን በመጠቀም ቀላል የአርዱዲኖ መኪና የተገላቢጦሽ የመኪና ማቆሚያ ዳሳሽ ወረዳ እቀዳለሁ። ይህ በአርዱዲኖ ላይ የተመሠረተ የመኪና ተገላቢጦሽ የማስጠንቀቂያ ስርዓት ለራስ ገዝ አሰሳ ፣ ሮቦት ሬንጅንግ እና ለሌላ ክልል አር
በ Raspberry Pi 4B ላይ የፊት ለይቶ ማወቅ በ 3 ደረጃዎች 3 ደረጃዎች
በ Raspberry Pi 4B ላይ የፊት ለይቶ ማወቅ በ 3 እርከኖች-በዚህ መመሪያ ውስጥ የሹንያፊትን ቤተመፃሕፍት በመጠቀም ከ Rasyaberry O/S ጋር Raspberry Pi 4 ላይ የፊት ለይቶ ማወቅን እናከናውናለን። ሹነፊታ የፊት መታወቂያ/ማወቂያ ቤተ -መጽሐፍት ነው። ፕሮጀክቱ ፈጣን የመለየት እና የማወቅ ፍጥነትን ለማሳካት ያለመ ነው
በ GameGo ላይ በ ‹GoGo› ላይ ማለቂያ ከሌላቸው ደረጃዎች ጋር የመሣሪያ ስርዓት - 5 ደረጃዎች (ከስዕሎች ጋር)
በ GameGo ላይ በ MakeGo Arcade የመጫወቻ ማዕከል ላይ ገደብ የለሽ ደረጃዎች ያለው የመሣሪያ ስርዓት - GameGo በ TinkerGen STEM ትምህርት የተገነባ የ Microsoft Makecode ተኳሃኝ የሆነ የሬትሮ ጨዋታ ተንቀሳቃሽ ኮንሶል ነው። እሱ በ STM32F401RET6 ARM Cortex M4 ቺፕ ላይ የተመሠረተ እና ለ STEM አስተማሪዎች ወይም የሬትሮ ቪዲዮ ጨዋታን መፍጠር መዝናናትን ለሚወዱ ሰዎች ብቻ የተሰራ ነው
ቀላል ደረጃዎች (DID Strip Lights በመጠቀም) DIY Vanity Mirror - 4 ደረጃዎች
DIY Vanity Mirror በቀላል ደረጃዎች (የ LED ስትሪፕ መብራቶችን በመጠቀም) - በዚህ ልጥፍ ውስጥ በ LED ሰቆች እገዛ የ DIY Vanity Mirror ን ሠራሁ። በእውነቱ አሪፍ ነው እና እርስዎም እነሱን መሞከር አለብዎት