İçindekiler:

HexaWalker: 5 Adım
HexaWalker: 5 Adım

Video: HexaWalker: 5 Adım

Video: HexaWalker: 5 Adım
Video: 【HEXA NFT 作品&クリエーター紹介】HEXA WALKER Vol.5 HEXANFT展@こはくの天使 2024, Temmuz
Anonim
Image
Image
HexaWalker
HexaWalker

Hemos, grupo de estudiantes de la UAB robotsuz hexapodo autonomo con una webcam con mikrofono medyante la cual puedes interatuar con el. Fikir çağının en büyük robotu, bir robotun yeniden keşfedilmesi için tasarlanmıştır. Algo así como una "mascota" rebotica.

En yeni teknolojilerden faydalanmak için yeni bir program.

Aquí el link al codigo:

Gereçler

- lipo pil 7.4V 2700mmAh

- x2 adafruit servo sürücüsü

- x18 mikro servolar SG90'lar

- web kamerası playstation gözü

-raspberry pi -LM2596 düşürme -x2 anahtarları - RGB LED

- kablo çeşitleri

1. Adım: 1. Adım: Todas Las Piezas De La Estructura'ya Imprimir

Adım 1: Imprimir Todas Las Piezas De La Estructura
Adım 1: Imprimir Todas Las Piezas De La Estructura

Son günlere gelindi.

Aqui podreis encontrar todos los archivos.stl:

Cabe destacar que las hemos impreso con las siguientes propiedades:

malzeme: PLA

dolgu: %25

katman yüksekliği: 0.12

hız: 55 mm/sn

Adım 2: Montaje De La Estructura

Montaje De La Estructura
Montaje De La Estructura

Para el montaje de la e la estructura tavsiyler seguir la guía del autor de las piezas 3D:

guía:

Hiçbir es gerekli değil, enstrümental estrictamente para el buen funcionamiento del robot, en yeni kumarhane, yalnız las hemos como ayuda como ayuda.

Not: calibrarlos ve en el apartado de código'da hiçbir şey yok.

Adım 3: Montaje De La Electronica

Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica

Aquí va una listea de los komponentler utilizados y algunos consejos para el montaje.- lipo baterry 7.4V 2700mmAh - x2 adafruit servo sürücü

- x18 mikro servolar SG90'lar

- web kamerası playstation gözü

-ahududu pi

-LM2596 adım aşağı

-x2 anahtarları

-RGB LED'i

- kablo çeşitleri

En önemli şey 2 adafruits servo sürücüleri, se suelde el bridge A0 de la segunda placa. En este link esta detallado: https://learn.adafruit.com/16-channel-pwm-servo-d… Los pines'in en özel bağlantılarına saygı duymak, her zaman için geçerlidir. codigo. Explicado en el apartado de codigo.

Adım 4: Yazılım: Calibraje De Servos

En iyi yapılandırmalar, büyük ve küçük servolar için en iyi ayarlardır.

cada servo esta identificado según la leyenda de abajo, por cada servo se tiene que indicar, el pin de conexion al servo sürücü, pulso minimo, pulso máximo y ultimo parametro es por siel ultimo parametro es por siel ultimo, tek başına servo kontroller que cambiarlo de signo.

""" ortak_anahtar kuralı: R - sağ, L - sol F - ön, M - orta, B - arka H - kalça, K - diz, A - Ayak bileği tuşu: (channel, minimum_nabız_uzunluğu, maksimum_nabız_uzunluğu) """ GPIO.setwarnings (Yanlış) GPIO.setmode(GPIO. BOARD)

ortak_özellikler = {

'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) }

Adım 5: Yazılım: Modulos

Yazılım: Modulos
Yazılım: Modulos

Módulo de reconocimiento de voz:

Google'ın 'Speech-to-Text' API'si için en uygun yöntem. Establecemos, Google'ın akış con el bulutu, para obtener las respuestas en texto, y así poder procesarlas para accionar solo en los casos que nos interesa.

Daha fazla bilgi için API, Google Cloud'da kayıt altına alınması için gerekli değildir.

Para guardar las credenciales en una değişken de entorno tenemos que ejecutar el siguiente comando (Raspbian):

GOOGLE_APPLICATION_CREDENTIALS="/tu/ruta/hacia/las/credenciales.json" dışa aktar

Konuşmadan metne API'nin gerçekleştirilmiş halidir.

El código para realizar ve google en uygun web sitesi resmi, muy bien documentado:https://cloud.google.com/speech-to-text/docs/stre…

Ana akış akışı 'dinleme_baskı_döngüsü', 'encargada decidir', la enkargada, en olası çözümlerden en iyi şekilde yararlanmayı bekliyor ve bu yaklaşık olarak, temel girdiler için, her şeyin kontrol edilmesini sağlıyor, robotlarla iletişim kuruyor. 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 deposu Hexawalker

github.com/RLP2019/HEXAWALKER/blob/master/…

PASO 1: OPENCVHemos'u KURULUM Profesyonel olmayan iletişim platformlarının kurulumunu gerçekleştirin Adrian Rosebrock, web sitesinde:

PASO 2: PROBAR LA CAMARA Opencv'nin ilk kurulumunu yapmak, en iyi senaryoyu python para probar la camara'da kullanmaktır. Para ello haremos que se abran dos ventanas, una con la imagen orijinal y otra con la imagen en blanco y negro.

numpy'yi np olarak içe aktar

cv2'yi içe aktar

cap = cv2. VideoCapture(0)

while(Doğru): ret, çerçeve = cap.read() gri = cv2.cvtColor(çerçeve, cv2. COLOR_BGR2GRAY) cv2.imshow('çerçeve', çerçeve) cv2.imshow('gri', gri) if cv2.waitKey (1) & 0xFF == ord('q'): ara

cap.release()

cv2.destroyAllWindows()

PASO 3: DETECCIÓN DEL COLOR CON OPENCV Para el siguente paso lo que vamos bir realizar es un undetección de color. Para ello, primero de todo vamos a realizar un script que nos izinleri dönüştürme un color en orden BGR a HSV (formato en el que açıkcv es capaz de yorumlayıcı).

ithalat sistemi

numpy'yi np olarak içe aktar cv2'yi içe aktar mavi = sys.argv[1] yeşil = sys.argv[2] kırmızı = sys.argv[3] renk = np.uint8(

Yeni ve yeni renk dönüşümleri, yeni renklerin yeniden yapılandırılması, renklerin yeniden yazılması için kontrollerin sınırlandırılması ve onaylanması, tüm renklerin yeniden tanımlanması Zıtlıklarla ilgili problemlerin anlaşılmasında güçlükler.

Öngörülen gerçekler, önceden belirlenmiş gerçekler için, önceden hazırlanmış bir komut dosyasıdır. En çok aranan sonuçlar, en çok arananlar.

cv2'yi içe aktar

numpy'yi np olarak içe aktar

# Resmi oku - 1, resmi BGR'de istediğimiz anlamına gelir

img = cv2.imread('yellow_object.jpg', 1)

# görüntüyü her eksende %20 olarak yeniden boyutlandır

img = cv2.resize(img, (0, 0), fx=0.2, fy=0.2) # BGR görüntüsünü HSV görüntüsüne dönüştür hsv = cv2.cvtColor(img, cv2. COLOR_BGR2HSV)

# NumPy alt ve üst aralığı tutacak diziler oluşturmak için

# “dtype = np.uint8”, veri türünün 8 bitlik bir tam sayı olduğu anlamına gelir

alt_aralık = np.array([24, 100, 100], dtype=np.uint8)

üst_aralık = np.array([44, 255, 255], dtype=np.uint8)

# görüntü için bir maske oluştur

maske = cv2.inRange(hsv, alt_aralık, üst_aralık)

# hem maskeyi hem de resmi yan yana göster

cv2.imshow('maske', maske) cv2.imshow('image', img)

# kullanıcının [ESC] tuşuna basmasını bekleyin

while(1): k = cv2.waitKey(0) if(k == 27): break cv2.destroyAllWindows()

PASO 4: POZİSYONAMIENTO DEL OBJETO En özel olarak, her şeyi en iyi ve en işlevsel şekilde yapılandırmak ve yapılandırmak için en uygun seçenekler. En este caso que crearemos será un senaryosu para que cuando el radyo de nuestro nesnesi deniz belediye başkanı bir 10, iki gün boyunca ciddi bir nesnel ve her şey için en uygun koşullardan en iyi şekilde yararlanmak.

# yalnızca yarıçap minimum boyutu karşılıyorsa devam edin

yarıçap > 10 ise: # daireyi ve merkezi çerçeveye çizin, # ardından izlenen noktaların listesini güncelleyin cv2.circle(frame, (int(x), int(y)), int(radius), (0, 255, 255), 2) cv2.circle(frame, center, 5, (0, 0, 255), -1) # dairenin merkezi koordinatlarını yazdır mapObjectPosition(int(x), int(y)) # led ise zaten açık değilse, ledOn değilse LED'i açın: GPIO.output(redLed, GPIO. HIGH) ledOn = Gerçek tanım mapObjectPosition (x, y): print ("[BİLGİ] Nesne Merkezi X0 = {0} ve Y0'da koordine edilir = {1}".format(x, y))

En iyi ve en iyi işbirlikçilerin en büyükleri, en yeni ve en güvenli robotlar.

PASO 5: NESNE İZLEME Llegamos al paso finali. Gerçekleştirilmemiş los anteriores puntos, esaremos listos para poder yapılandırılması ve par de parametros y poner a funcionar nuestra detección. Para ello utilizaremos como anteriormente hemos dicho, los parametreler del color hsv maksimo ve minimo para poder crear la máscara ve dtectar el objeto.

renkDüşük = (-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.

eğer (x 280):

print ("[EYLEM] GIRAR DERECHA") self.hexa.rotate(offset = -15, tekrarlar = 1)

Tüm bu koşulların gerçekleşmesi için önceden karar verildikten sonra, en son ve en önemli şey 220, en iyi şekilde. En el caso de que deniz, büyük ölçüde, gire a la derecha.

Para el caso en el que se quiera avanzar hacia adelante lo que se se realizará es uilizar la değişken dónde hesaplar ve radyo para marcar otro límite en caso de proximidad de la pelota. Yenilikçi robotlar için en yeni robotlar, en büyük radyolar ve daha fazlası için yeni robotlar ve objeler.

yarıçap < 105 ise: self.hexa.walk(salıncak = 40, tekrarlar = 1, yükseltilmiş = -30, zemin = 50, t = 0,3)

Bir partir de este punto el programador ya da özgürce de realizar değişiklikler ve ir jugando con parámetros y colores.

Önerilen: