Мазмуну:

HexaWalker: 5 кадам
HexaWalker: 5 кадам

Video: HexaWalker: 5 кадам

Video: HexaWalker: 5 кадам
Video: 【HEXA NFT 作品&クリエーター紹介】HEXA WALKER Vol.5 HEXANFT展@こはくの天使 2024, Июль
Anonim
Image
Image
HexaWalker
HexaWalker

Бул жерде UAB менен роботтун веб -камерасы автоматтык түрдө веб -камерага киргенде, интернеттеги интерфейс жаңыртылган. La idea era hacer un robot amistoso que reconociera ordenes de voz y pueda seguir mediante la cámara una pelota. Algo asio como una "maskot" rebotica.

Cabe комментарийлеринин жардамы менен Hex de ArcBotics роботу ачык булактан гексаподго жана роботко ачык булактан кире алат.

Шилтеме шилтемеси:

Жабдуулар

- lipo батарейка 7.4V 2700mmAh

- x2 adafruit servo айдоочусу

- x18 SG90s микро сервосу

- Playstation көзүнүн веб -камерасы

-raspberry pi -LM2596 ылдый түшүп -x2 өчүргүчтөр -RGB LED

- ар кандай кабелдер

1 -кадам: 1 -кадам: Imprimir Todas Las Piezas De La Estructura

1 -кадам: Imprimir Todas Las Piezas De La Estructura
1 -кадам: Imprimir Todas Las Piezas De La Estructura

Esesesio impimir todas las piezas.

Aqui podreis encostrar todos los archivos.stl:

Cabe destacar que las hemos impreso con las siguientes propiedades:

материалдык: PLA

толтуруу: 25%

катмар бийиктиги: 0.12

ылдамдыгы: 55 мм/с

2 -кадам: Montaje De La Estructura

Montaje De La Estructura
Montaje De La Estructura

Түзмөктөрдүн жасалгасы 3D форматында сунушталат:

Гвинея:

Эч кандай шарттар жок, анткени бул роботтун функционалдык мүмкүнчүлүктөрү жокко эсе.

Эскертүү: los tornillos de los servos antes de calibrarlos en el apartado de código.

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 lista de los komponentes utilizados y algunos consejos para el Monte.- lipo baterry 7.4V 2700mmAh - x2 adafruit servo driver

- x18 SG90s микро сервосу

- Playstation көзүнүн веб -камерасы

-бүлдүркөн пи

-LM2596 кетет

-x2 которгучтар

- LED RGB

- ар кандай кабелдер

Эң негизгиси, серверлердин 2 айдоочусу, көпүрө A0 де 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 or que tendrás que configurar los mas adelante en el. codigo. Түшүндүрүү.

4 -кадам: Программалык камсыздоо: Calibraje De Servos

Бул конфигурацияны жасоо үчүн, сиз өзүңүздү караңыз, бул жерде карагыла hexapod_core.py.

cada servo esta identificado según la leyenda de abajo, 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, 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 -кадам: Программалык камсыздоо: Модулдар

Программалык камсыздоо: Modulos
Программалык камсыздоо: Modulos

Дагы бир жолу:

Google'дун Google'дан 'Текстке сүйлөө' API'син иштетүү боюнча эч нерсе жок. Булуттагы Google'дун эфирин орнотуу, текстти жазуу үчүн эң чоң жоопкерчиликти өзүңүзгө жүктөп бериңиз.

Google Cloud'да катталуу үчүн Google каттоо эсеби жок болсо, ал автоматтык түрдө роботту жүктөп алуу үчүн жүктөлөт.

Каражаттардын өзгөрүлмөлүүлүгү өзгөрүлбөс болуп саналат (Raspbian):

GOOGLE_APPLICATION_CREDENTIALS экспорттоо = "/tu/ruta/hacia/las/credenciales.json"

Колдонуу шарттары Купуялуулук Мобилдүү Жөндөө Үйрөнүү жана жазуу APIси.

Google'дун каттоосун ишке ашыруу үчүн, документти расмий түрдө жүктөп бериңиз:

Негизги функциялар "listen_print_loop" болуп саналат, жана бул эң башкысы, эң башкысы, бардык маалыматты киргизүү үчүн, роботтордун жардамы менен роботтордун жардамы менен, аккаунтту ачуу керек. Бул жерде эч кандай жаңылык жок, бул жерде эч кандай жаңылык жок.

Hexawalker'ге киргениңизде, бул каттын жаңыртуусуна ыңгайлаштырылган

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

PASO 1: АЧЫКТЫ орнот

PASO 2: PROBAR LA CAMARA Примеро для uno vez instalado opencv, a 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.

np катары numpy импорттоо

cv2 импорттоо

cap = cv2. VideoCapture (0)

while (True): ret, frame = cap.read () grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) cv2.imshow ('frame', frame) cv2.imshow ('gray', grey) if cv2.waitKey (1) & 0xFF == ord ('q'): тыныгуу

cap.release ()

cv2.destroyAllWindows ()

PASO 3: DETECCIÓN DEL COLOR CON OPENCV Түстү аныктоодо анын мааниси түшүнүктүү. Эң башкысы, сиз сценарийди BGR жана HSV форматындагы сценарийлердин котормосунда аткарасыз (форматтоочу котормочу).

sys импорттоо

np импорт cv2 катары импорт cv2 көк = sys.argv [1] жашыл = sys.argv [2] кызыл = sys.argv [3] түс = np.uint8 (

Университетти өзгөртүү нүэстро түсү, ал эми сценарий басып чыгаруу үчүн консола болуп саналат. cual dificultaría la detección por problemas de luz o kontrast.

Элестетүү мүмкүнчүлүгү жок болгон учурда, сиз сценарийди колдоно албайсыз. Жыйынтыгында сиз өзүңүздү тааныйсыз (бул түстүн детектору) конверсиянын эң башкысы, а ланддык түстөрдүн эч кандай айырмасы жок.

cv2 импорттоо

np катары numpy импорттоо

# Сүрөттү окуңуз - 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)

Üst_range = 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 Дагы эң маанилүү функциялардын бири - бул түстүү hsv, деңиз деңизинин деңгээли жана консорентациясы. Деңиздин мэри радиосунун 10 -графигине ылайык, скрипт дагы бул жерде жайгашкан, анткени бул жерде чыныгы байланыш координаттары бар.

# радиусу минималдуу өлчөмгө жооп берсе гана улантыңыз

эгер радиус> 10: # алкакка тегеректи жана центродду тарткыла, # анда cv2.circle (Frame, (int (x), int (y)), int (radius), (0, 255) байкалган чекиттердин тизмесин жаңыртуу, 255), 2) cv2.circle (кадр, борбор, 5, (0, 0, 255), -1) # басма борбору тегеректин координаттары mapObjectPosition (int (x), int (y)) # буга чейин күйгүзүлгөн эмес, LEDOn болбосо, LEDди күйгүзүңүз: GPIO.output (redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): print ("[INFO] Object Center X0 = {0} жана Y0 боюнча координат. = {1} ". Формат (x, y))

Бул жерде координаттардын роботтору, ошондой эле роботтор, локомотивдер роботтору, ошондой эле эч кандай реалдуу ишке ашкан жок.

PASO 5: Объекттин изи Llegamos al paso финалы. Бул жерде сиз өзүңүздүн параграфтарыңызды конфигурациялай аласыз, андыктан сиз өзүңүздүн функцияларыңызды аныктай аласыз. Төмөнкү шарттарда, бул түстөрдүн эң чоң параметри болуп саналат, жана сиз буларды ачыкка чыгарасыз.

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 изкуьердо элегидос эң алдыңкы.

эгер (x 280):

басып чыгаруу ("[ACTION] GIRAR DERECHA") self.hexa.rotate (офсет = -15, кайталоолор = 1)

Бул жерде шарттар өзгөрбөйт, координаттардын саны 220га жетет, бул жерде эң чоң айырмачылыктар бар. Деңиздин эң чоңу, эң чоңу, эң чоңу.

Төмөнкү шарттар боюнча өзгөрүлмө эсептөөлөрдүн үнү өзгөрүлүп турат: бул эң жакын жердеги проксидидад. Бул роботтун эң чоң роботу, ал эми эң чоң робот - бул роботтун эң башкы роботу.

эгер радиус <105: само.hexa.walk (селкинчек = 40, кайталоолор = 1, көтөрүлгөн = -30, пол = 50, t = 0.3)

Бул программалардын бири да, аларды дагы өзгөртүүгө мүмкүндүк берүүчү программалар.

Сунушталууда: