جدول المحتويات:
- اللوازم
- الخطوة 1: الخطوة 1: Imprimir Todas Las Piezas De La Estructura
- الخطوة 2: Montaje De La Estructura
- الخطوة 3: مونتاج دي لا إلكترونيكا
- الخطوة 4: البرنامج: Calibraje De Servos
- الخطوة 5: البرنامج: Modulos
فيديو: 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 webcam con micrófono mediante la cual puedes التفاعلي يخدع. لا فكرة عصر hacer un الروبوت amistoso que restociera 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 para nuestro hexapodo la hemos sacado del robot مفتوح المصدر Hexy de ArcBotics.
رابط البرنامج:
اللوازم
- بطارية ليبو 7.4V 2700mmAh
- x2 adafruit سائق سيرفو
- الماكينات الصغيرة x18 SG90s
- كاميرا ويب عين بلاي ستيشن
-raspberry pi -LM2596 تنحى - x2 مفاتيح - RGB LED
- كابلات مختلفة
الخطوة 1: الخطوة 1: 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:
المواد: جيش التحرير الشعبى الصينى
ملء: 25٪
ارتفاع الطبقة: 0.12
السرعة: 55 مم / ثانية
الخطوة 2: Montaje De La Estructura
Para el montaje de la estructura recomendamos seguir la guía del autor de las piezas 3D:
guía:
لا توجد طريقة أخرى لتعلم كيفية استخدام الروبوتات ، يمكنك استخدام الأمر المنفرد باستخدام أيودا.
ملحوظة: no fijéis los tornillos de los servos antes de calibrarlos en el apartado de código.
الخطوة 3: مونتاج دي لا إلكترونيكا
Aquí va una lista de los componentes useizados y algunos consejos para el montaje. - lipo baterry 7.4V 2700mmAh - x2 adafruit servo driver
- الماكينات الصغيرة x18 SG90s
- كاميرا ويب عين بلاي ستيشن
-فطيرة التوت
-LM2596 التنحي
مفاتيح x2
- RGB LED
- كابلات مختلفة
مهمة بالنسبة لسائقي التشغيل المؤازرين 2 ، مثل الجسر A0 de la segunda placa. En este link esta detallado: https://learn.adafruit.com/16-channel-pwm-servo-d… كوديجو. Explicado en el apartado de código.
الخطوة 4: البرنامج: Calibraje De Servos
ما قبل المباراة في حدود الوقت المناسب لتكوين النبضات والأشياء المضاعفة للآلات والآليات الأخرى.
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 كيو كامبيارلو دي سيجنو.
"" اصطلاح المفصل: R - right، L - left F - front، M - middle، B - back H - hip، K - knee، A - Ankle key: (channel، min_pulse_length، max_pulse_length) "" "GPIO.set warnings (خطأ) 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: البرنامج: Modulos
Módulo de Reconocimiento de voz:
Para la Implementación de éste módulo hemos hecho úso de la API de Google "الكلام إلى النص". Establecemos un streaming con el cloud de Google، para obtener las respuestas en texto، y así poder procesarlas para accionar solo en los que nos interesa.
الفقرة poder hacer úso de esta API necesitamos tener un proyecto registrado en Google Cloud، y de este descargar las creditenciales 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 speech-to-text.
El código para realizar el streaming está proporcionado por google en su pagina oficial، muy bien documentado:
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 para poder comunicarle al robot cuando ha de hacer una acción، o el para avisarle que de voz no es Recocido، 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: تثبيت OPENCVHemos seguido la instalación de un profesional como es Adrian Rosebrock، en su pàgina web:
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
استيراد السيرة الذاتية 2
cap = cv2. VideoCapture (0)
while (True): ret، frame = cap.read () gray = cv2.cvtColor (frame، cv2. COLOR_BGR2GRAY) cv2.imshow ('frame'، frame) cv2.imshow ('gray'، gray) if cv2.waitKey (1) & 0xFF == ord ('q'): استراحة
cap.release ()
cv2.destroyAllWindows ()
PASO 3: DETECCIN 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 depretar).
استيراد النظم
استيراد numpy كـ np import cv2 blue = sys.argv [1] green = sys.argv [2] red = sys.argv [3] color = np.uint8 (
Una vez hayamos hecho la convertió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 yo no únic cual dificultaría la detección por problemas de luz o التباين.
El siguiente paso es una imagen previamente realizada، crear otro script el cual nos servirá para probar el paso الأمامي. 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 se encuentren en ese rango hsv que hemos Definido.
استيراد السيرة الذاتية 2
استيراد numpy كـ 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 بت
low_range = np.array ([24، 100، 100]، dtype = np.uint8)
upper_range = np.array ([44، 255، 255]، dtype = np.uint8)
# إنشاء قناع للصورة
قناع = cv2.inRange (hsv ، low_range ، upper_range)
# اعرض كلاً من القناع والصورة جنبًا إلى جنب
cv2.imshow ('mask'، mask) cv2.imshow ('image'، 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 e capaz de encontrar las Coordenadas. 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 (frame، (int (x)، int (y))، int (radius)، (0، 255 ، 255)، 2) cv2.circle (frame، center، 5، (0، 0، 255)، -1) # طباعة مركز إحداثيات الدائرة mapObjectPosition (int (x)، int (y)) # إذا كان الصمام هو ليس قيد التشغيل بالفعل ، قم بتشغيل مؤشر LED إذا لم يتم تشغيله على: GPIO.output (redLed، GPIO. HIGH) ledOn = True def mapObjectPosition (x، y): print ("[INFO] تنسيقات مركز الكائن عند X0 = {0} و Y0 = {1} ". تنسيق (س ، ص))
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 movímiento al no.
PASO 5: تتبع الهدف النهائي في لعبة Llegamos al paso. una vez realizados los anteriores puntos، estaremos listos para poder configurar un par de parámetros y poner a funcionar nuestra detección. الفقرة 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)
اللون العلوي = (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 in front.
إذا (× 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 useizar la variation 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)
A partir de este punto el programador ya es libre de realizar modificaciones e ir jugando con parámetros y colores.
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): 6 خطوات
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): هل تريد تخويف أصدقائك وإحداث بعض ضوضاء الصراخ في عيد الهالوين؟ أو تريد فقط عمل مزحة جيدة؟ يمكن لشاشة الزومبي المنبثقة القيام بذلك! في هذا Instructable ، سوف أعلمك كيفية جعل زومبي القفز للخارج بسهولة باستخدام Arduino. HC-SR0