Mundarija:

HexaWalker: 5 qadam
HexaWalker: 5 qadam

Video: HexaWalker: 5 qadam

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

UAB -ning robot -hexapod avtotexnologiyasi veb -kamera bilan aloqa o'rnatganidan so'ng, o'zaro aloqa o'rnatildi. Robotni qayta ishlashni xohlamaslik kerak. Bu "mascota" rebotica bilan bog'liq.

Bu ochiq manbali Hexy va ArcBotics robotlari uchun eng yaxshi dasturlardan biridir.

Aloqalar havolasi:

Ta'minotlar

- lipo batareyasi 7.4V 2700mmAh

- x2 adafruit servo haydovchi

- x18 mikro servo SG90s

- playstation ko'zining veb -kamerasi

-raspberry pi -LM2596 pastga -x2 kalitlari -RGB LED

- turli xil kabellar

1 -qadam: 1 -qadam: Imprimir Todas Las Piezas De La Estructura

1 -qadam: Imprimir Todas Las Piezas De La Estructura
1 -qadam: Imprimir Todas Las Piezas De La Estructura

Esda tutingki, bu pesalar.

Arxivlar.stl bilan bog'laning.

Cabe destacar que las hemos impreso con las siguientes propiedades:

Materiallar: PLA

to'ldirish: 25%

qatlam balandligi: 0,12

tezlik: 55 mm/s

2 -qadam: Montaje De La Estructura

Montaje -de -la -Estruktura
Montaje -de -la -Estruktura

O'rnatish ishlari 3D formatida amalga oshiriladi:

Giyona:

Robotlar hech qanday vazifani bajara olmaydilar, shuning uchun ular hech kimga yordam bermaydilar.

Eslatma: los tornillos de los servos antes de calibrarlos en el apartado de código.

3 -qadam: 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

O'rnatish uchun ishlatiladigan komponentlar - 7.4V 2700mmAh - lipo batareyasi - x2 adafruit servo drayveri

- x18 mikro servo SG90s

- playstation ko'zining veb -kamerasi

-malina pi

-LM2596 pastga tushadi

-x2 kalitlari

- LED RGB

- turli xil kabellar

Bu 2 -darajali servo haydovchilar, A0 ko'prigi bilan bog'liq. Bu erda havola mavjud: https://learn.adafruit.com/16-channel-pwm-servo-d… Respondo a los servos el orden en el que conectes los pines es uniferente or que tendrás que configurar los mas adelante en el. codigo. Alohida tushuntirishlar.

4 -qadam: dasturiy ta'minot: Calibraje De Servos

Ma'lumotlar almashinuvini sozlashda, biz qarindoshlar bilan aloqa o'rnatamiz, bu hexapod_core.py.

bir vaqtning o'zida xizmat ko'rsatish tizimi, haydovchining o'zi, xizmat ko'rsatgichi, pul mínimo, puls máximo y el ultimo paramemetro es por si el servo esta funcionando al revés de como debería, va boshqalar. que cambiarlo de signo.

"" "qo'shma kalit tugmasi: R - o'ng, L - chap F - old, M - o'rta, B - orqa H - kestirib, K - tizza, A - Oyoq Bilagi zo'r kalit: (kanal, minimal_pulse_length, maksimal_pulse_length)" "" GPIO.sabab ogohlantirishlari (Noto'g'ri) GPIO.setmode (GPIO. BOARD)

qo'shma_ xususiyatlar = {

"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 -qadam: dasturiy ta'minot: modullar

Dasturiy ta'minot: Modullar
Dasturiy ta'minot: Modullar

Maqolani qayta ko'rib chiqish:

Google "Speech-to-Text" API-ni o'z ichiga oladi. Google -ning bulutli bulutli xabarlar almashinuvi, shuningdek, matnli xabarlar uchun javob beradi, bu esa sizning shaxsiy ma'lumotlaringiz bilan bir xilda bo'ladi.

Bu erda Google Cloud -da ro'yxatdan o'tish uchun hech qanday talab qilinmaydigan API mavjud, shuning uchun siz robotni avtomatik ravishda yuklab olishingiz mumkin.

Hisob -kitoblar bir vaqtning o'zida o'zgarmaydigan bo'lishi mumkin (Raspbian):

eksport GOOGLE_APPLICATION_CREDENTIALS = "/tu/ruta/hacia/las/credenciales.json"

Ma'lumotlar almashinuvini amalga oshirish uchun siz API-ni nutqdan matnga o'tkazishingiz mumkin.

Hujjatlarni rasmiylashtirish uchun Google-dan ma'lumotlarni uzatish mumkin:

Bu "tinglash_print_loop" ning asosiy oqimi bo'lib, u bir vaqtning o'zida bir marta javob beradi, bir vaqtning o'zida bir vaqtning o'zida bir vaqtning o'zida robot bilan aloqa o'rnatiladi, bu esa har bir kishi uchun javob beradi. hech qanday rekonstruksiya qilinmagan, hech qanday yangilik yo'q.

Hexawalker -ni qayta tiklash uchun eng yaxshi ma'lumotni toping

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

PASO 1: OCHISHNI O'RNATISH: Adrian Rosebrock, professional veb -saytni o'rnatdi:

PASO 2: PROBAR LA CAMARA Boshlang'ich dasturni ishga tushiring, shunda siz skriptni skanerdan o'tkazasiz. Bu erda haremos har bir kishi o'z hayotini saqlab qolishi mumkin.

numpy ni np sifatida import qilish

cv2 import qilish

cap = cv2. VideoCapture (0)

while (True): ret, frame = cap.read () kulrang = cv2.cvtColor (ramka, cv2. COLOR_BGR2GRAY) cv2.imshow ('ramka', ramka) cv2.imshow ("kulrang", kulrang) agar cv2.waitKey (1) & 0xFF == ord ('q'): tanaffus

cap.release ()

cv2.destroyAllWindows ()

3 -PASO: RENKNING OCHILISHINI TAShLASh, siz rangni aniqlab olishingiz mumkin. Birinchidan, BGR va HSV formatidagi rangni o'zgartirishga ruxsat berilgan buyruq fayli (tarjimon).

sys import qilish

np import raqamli import cv2 ko'k = sys.argv [1] yashil = sys.argv [2] qizil = sys.argv [3] rang = np.uint8 (

Una vez hayamos hech qachon rangni o'zgartirmaydi, skriptni bosib chiqarish mumkin emas, balki konsolni o'chirib qo'yish kerak, shuning uchun siz hech qanday farq qilmaysiz. cual dificultaría la detección por problemas de luz o kontrast.

Haqiqiy ma'lumotni oldindan ko'rsating, bu sizning oldingizda skriptni yaratishga imkon beradi. Aniqlanishicha, siz aniq ma'lumotni aniqlay olmaysiz, shuning uchun siz hech qanday ma'lumotga ega bo'lmaysiz.

cv2 import qilish

numpy ni np sifatida import qilish

# Rasmni o'qing - 1 biz tasvirni BGR -da xohlayotganimizni bildiradi

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

# tasvirni har bir o'qda 20% ga o'zgartiring

img = cv2.resize (img, (0, 0), fx = 0.2, fy = 0.2) # BGR tasvirini HSV tasviriga aylantirish hsv = cv2.cvtColor (img, cv2. COLOR_BGR2HSV)

# NumPy pastki va yuqori diapazonni ushlab turadigan massivlar yaratish uchun

# "Dtype = np.uint8" ma'lumot turi 8 bitli butun son ekanligini bildiradi

pastki_rang = np.array ([24, 100, 100], dtype = np.uint8)

yuqori_rang = np.array ([44, 255, 255], dtype = np.uint8)

# rasm uchun niqob yarating

niqob = cv2.inRange (hsv, pastki_range, yuqori_range)

# niqobni ham, tasvirni ham yonma-yon ko'rsatish

cv2.imshow ('niqob', niqob) cv2.imshow ('rasm', img)

# foydalanuvchining [ESC] tugmasini bosishini kuting

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

PASO 4: POSICIONAMIENTO DEL OBJETO eng yaxshi vazifalarni bajaradi, bu rang -barang ranglarning rang -barangligi, rang -barangligi, dengiz -dengiz sohilidagi eng yuqori darajadagi koordinatalar. Dengiz meri 10 -sonli radio -nyuestro -radio skriptni yozib olganda, bu sizning uy -ro'zg'oringiz bilan aloqada bo'lishingiz mumkin.

# faqat radius minimal hajmga mos kelsa davom eting

agar radius> 10: # doirada va markazda chizilgan bo'lsa, # keyin kuzatiladigan nuqtalar ro'yxatini yangilang cv2.circle (frame, (int (x), int (y)), int (radius), (0, 255), 255), 2) cv2.circle (ramka, markaz, 5, (0, 0, 255), -1) # bosib chiqarish markazi koordinatalari mapObjectPosition (int (x), int (y)) # agar svetodiod bo'lsa LED yoqilmagan bo'lsa, LEDni yoqing: GPIO.output (redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): print ("[INFO] Ob'ekt markazi X0 = {0} va Y0 da koordinatalanadi). = {1} ". Format (x, y))

Bir vaqtning o'zida, bir vaqtning o'zida, bir vaqtning o'zida bir robot, bir vaqtning o'zida hech qanday farq yo'q, lekin bu hech kimga ma'lum emas.

PASO 5: Ob'ektni kuzatish Llegamos al paso finali. Bir vaqtning o'zida bir nechta parametrlarni sozlash mumkin, bu esa har bir narsani aniqlab beradi. Bir vaqtning o'zida bir xil ko'rinishga ega bo'lgandan so'ng, siz rang va rangni tanlashingiz mumkin.

colorLower = (-2, 100, 100)

colorUpper = (18, 255, 255)

Oldindan kelishilgan holda, bu eng muhim vazifalardan biridir.

agar (x 280):

chop etish ("[ACTION] GIRAR DERECHA") self.hexa.rotate (ofset = -15, takrorlash = 1)

Bu erda 220 -sonli shart -sharoitlar mavjud bo'lib, ular bir -biridan farq qiladi. Dengiz más grande, gar a la derecha.

Qachonki, bu raqamli hisob -kitoblar o'zgarmaydigan bo'lsa, siz ham radio hisoblagichlarini o'zgartirishingiz mumkin. Nuestro robotining eng katta tajribasi - bu sizning radioingiz va kompyuteringiz uchun eng yaxshi robotdir.

agar radius <105: self.hexa.walk (belanchak = 40, takrorlanish = 1, ko'tarilgan = -30, pol = 50, t = 0,3)

Bir vaqtning o'zida dasturiy ta'minotning rang -barangligi va rang -barangligi bilan bir qatorda, siz ham dasturni o'zgartirishingiz mumkin.

Tavsiya: