תוכן עניינים:
- אספקה
- שלב 1: שלב 1: אימפרימיר טודאס לאס פיאזאס דה לה אסטרקטורה
- שלב 2: Montaje De La Estructura
- שלב 3: Montaje De La Electronica
- שלב 4: תוכנה: Calibraje De Servos
- שלב 5: תוכנה: מודולים
וִידֵאוֹ: HexaWalker: 5 שלבים
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-09 20:34
Hemos echo un grupo de estudiantes de la UAB un robot hexapodo autonomo con una מצלמת אינטרנט עם micrófono mediante la cual puedes interactuar con el. La idea 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.
Came comentar que la estructura que hemos utilizado para nuestro hexapodo la hemos sacado del רובוט קוד פתוח Hexy de ArcBotics.
קישור לאתר:
אספקה
- סוללת ליפו 7.4V 2700mmAh
- נהג סרוו x2 adafruit
- x18 מיקרו סרוווס SG90s
- עין פלייסטיישן של מצלמת רשת
-פטרי pi -LM2596 הורדות למטה -x2 -RGB LED
- כבלים שונים
שלב 1: שלב 1: אימפרימיר טודאס לאס פיאזאס דה לה אסטרקטורה
Es necesario imprimir todas las piezas.
Aqui podreis encontrar todos los archivos.stl:
Cabe destacar que las hemos impreso con las siguientes propiedades:
חומר: PLA
מילוי: 25%
גובה השכבה: 0.12
מהירות: 55 מ מ/ש
שלב 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.
הערה: no fijéis los tornillos de los servos antes de calibrarlos en el apartado de código.
שלב 3: Montaje De La Electronica
Aqua va una list of los componentes utilizados and algunos consejos for el montaje. - Baterry lipo 7.4V 2700mmAh - x2 adafruit servo driver
- x18 מיקרו סרוווס SG90s
- עין פלייסטיישן של מצלמת רשת
-פאי פטל
-למד 2596
מתגים x2
- LED RGB
- כבלים שונים
Es importante que para conectar 2 adafruits drivers 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 configar los mas adelante en el código. Explicado en el apartado de código.
שלב 4: תוכנה: 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 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.
"" "מוסכמה של מפתח משותף: R - ימין, L - שמאל F - קדמית, M - אמצע, B - גב H - ירך, K - ברך, A - מפתח קרסול: (ערוץ, מינימום_דופק_אורך, מקסימום_דופק_אורך)" "" GPIO.setwarnings (שקר) 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)}
שלב 5: תוכנה: מודולים
Módulo de reconocimiento de voz:
על מנת ליישם את האמצעי הראשון של תוכנת ה- API של Google 'דיבור-לטקסט'. ניתן להזמין סטרימינג עם ענן Google, עבור תגובות במגוון טקסטים, כמו גם תהליכי פודר של שיטות להורדה באמצעות סולו.
עבור פודר הוא יכול להשתמש במערכת ממשק API הדרושה לרישום בפרוייקט של Google Cloud.
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"
אתה יכול לראות אם אתה יכול להשתמש ב- API של דיבור לטקסט.
כל הזכויות להגשמת הזרמות של גוגל באתר הדף הרשמי:
La 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 for 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/…
PASO 1: התקנת OPENVV
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.
ייבא numpy כמו np
יבוא cv2
כובע = cv2. VideoCapture (0)
בעוד (נכון): ret, frame = cap.read () אפור = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) cv2.imshow ('frame', frame) cv2.imshow ('אפור', אפור) אם cv2.waitKey (1) & 0xFF == ord ('q'): הפסקה
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 en orden BGR a HSV (formato en el que opencv es capaz de interpretar).
ייבוא sys
יבוא numpy כמו np יבוא cv2 כחול = sys.argv [1] ירוק = sys.argv [2] אדום = 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 problemsas 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.
יבוא cv2
ייבא numpy כמו np
# קראו את התמונה - האחד אומר שאנו רוצים את התמונה ב- 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 סיביות
טווח נמוך יותר = np.array ([24, 100, 100], dtype = np.uint8)
טווח עליון = np.array ([44, 255, 255], dtype = np.uint8)
# צור מסכה לתמונה
מסכה = cv2.inRange (hsv, טווח תחתון, טווח עליון)
# הצג את המסכה ואת התמונה זה לצד זה
cv2.imshow ('מסכה', מסכה) cv2.imshow ('תמונה', img)
# המתן למשתמש כדי ללחוץ על [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 mínimo 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.
# המשך רק אם הרדיוס עומד בגודל מינימלי
אם רדיוס> 10: # צייר את העיגול והצנטרואיד על המסגרת, # עדכן את רשימת הנקודות במעקב cv2.circle (מסגרת, (int (x), int (y)), int (רדיוס), (0, 255, 255), 2) cv2.circle (מסגרת, מרכז, 5, (0, 0, 255), -1) # מרכז הדפסה של המעגל מתאם mapObjectPosition (int (x), int (y)) # אם הלד הוא עדיין לא דולק, הפעל את הנורית אם לא ledOn: GPIO.output (redLed, GPIO. HIGH) ledOn = true def mapObjectPosition (x, y): print ("[INFO] מרכז האובייקטים מתאחד ב- 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 sera 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: מעקב אחר אובייקטים Llegamos al paso final. Una vez realizados los anteriores puntos, estaremos listos for 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):
print ("[ACTION] 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 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.
אם רדיוס <105: self.hexa.walk (נדנדה = 40, חזרות = 1, הרמה = -30, רצפה = 50, t = 0.3)
חלק מעריך את התכנות והמשתמשים לשינוי ועריכת שינויים.
מוּמלָץ:
כיצד לבצע אנטנת BiQuade כפולה 4G LTE שלבים פשוטים: 3 שלבים
כיצד להפוך אנטנת 4G LTE BiQuade כפולה לשלבים קלים: לרוב לא עמדתי בפני, אין לי עוצמת אות טובה לעבודות היום-יומיות שלי. לכן. אני מחפש ומנסה סוגים שונים של אנטנות אבל לא עובד. לאחר בזבוז זמן מצאתי אנטנה שאני מקווה לייצר ולבדוק, כי זה עקרון הבנייה לא
עיצוב משחק בקפיצה ב -5 שלבים: 5 שלבים
עיצוב משחק בקפיצה ב -5 שלבים: פליק הוא דרך פשוטה מאוד ליצור משחק, במיוחד משהו כמו פאזל, רומן חזותי או משחק הרפתקאות
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: 3 שלבים
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: במדריך זה אנו הולכים לבצע זיהוי פנים ב- Raspberry Pi 4 עם Shunya O/S באמצעות ספריית Shunyaface. Shunyaface היא ספריית זיהוי/זיהוי פנים. הפרויקט שואף להשיג את מהירות הזיהוי והזיהוי המהירה ביותר עם
מהדורת ליל כל הקדושים של Arduino - מסך קופץ זומבים (שלבים עם תמונות): 6 שלבים
מהדורת ליל כל הקדושים של Arduino - מסך פופ -אאוט של זומבים (צעדים עם תמונות): רוצה להפחיד את החברים שלך ולעשות רעש צורח בהלווין? או סתם רוצה לעשות מתיחה טובה? המסך הקופץ הזה של זומבים יכול לעשות זאת! במדריך זה אלמד אותך כיצד ליצור זומבים קופצים בקלות באמצעות Arduino. ה- HC-SR0
כיצד להתקין תוספים בוורדפרס בשלושה שלבים: 3 שלבים
כיצד להתקין תוספים בוורדפרס בשלושה שלבים: במדריך זה אראה לך את השלבים החיוניים להתקנת תוסף וורדפרס לאתר שלך. בעיקרון אתה יכול להתקין תוספים בשתי דרכים שונות. השיטה הראשונה היא באמצעות ftp או דרך cpanel. אבל אני לא אפרט את זה כיוון שזה באמת משלים