BASIC4MCU | 질문게시판 | pixy2 cam 을 이용한 색상인식 모터 제어
페이지 정보
작성자 가나다라 작성일2023-06-05 22:10 조회428회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=22809
본문
#include <SPI.h>#include <Pixy2.h>Pixy2 pixy;int myPins[6] = {5, 6, 7, 8, 9, 10};float deadZone = 0.15;int baseSpeed = 130;int cont = 0;int signature, x, y, width, height;float cx, cy, area;void setup() {Serial.begin(9600);Serial.print("Starting...\n");pixy.init();for (int i = 0; i < 6; i++) {pinMode (myPins[i], OUTPUT);}}void loop() {float turn = pixyCheck();if (turn > -deadZone && turn < deadZone) {turn = 0;}if (turn < 0) {moveRobot(-80, 170);}else if (turn > 0) {moveRobot(170, -80);}else {moveRobot(70, 70);}delay(1);}float pixyCheck() {static int i = 0;int j;int8_t blocks;char buf[32];blocks = pixy.ccc.getBlocks();if (blocks){signature = pixy.blocks[0].signature;height = pixy.ccc.blocks[0].m_height;width = pixy.ccc.blocks[0].m_width;x = pixy.ccc.blocks[0].m_x;y = pixy.ccc.blocks[0].m_y;cx = (x + (width / 2));cy = (y + (height / 2));cx = mapfloat(cx, 0, 320, -1, 1);cy = mapfloat(cy, 0, 320, 1, -1);area = width * height;}else {cont += 1;if (cont == 100) {cont = 0;cx = 0;}}return cx;}float mapfloat(long x, long in_min, long in_max, long out_min, long out_max){return (float)(x- in_min) * (out_max - out_min) / (float)(in_max - in_min) + out_min;}void moveRobot(int leftSpeed, int rightSpeed){if (leftSpeed >= 0) {digitalWrite(myPins[1], 0);digitalWrite(myPins[2], 1);}else {digitalWrite(myPins[1], 1);digitalWrite(myPins[2], 0);}if (rightSpeed >= 0) {digitalWrite(myPins[3], 0);digitalWrite(myPins[4], 1);}else {digitalWrite(myPins[3], 1);digitalWrite(myPins[4], 0);}analogWrite(myPins[0], abs(leftSpeed));analogWrite(myPins[5], abs(rightSpeed));}위의 코딩을 가져와서 수정을 하고 있는데 오류코드가 발생하여 질문 드립니다.C:\Users\a0109\AppData\Local\Temp\.arduinoIDE-unsaved202355-20148-s7xjwa.yrbap\sketch_jun5a\sketch_jun5a.ino: In function 'float pixyCheck()': C:\Users\a0109\AppData\Local\Temp\.arduinoIDE-unsaved202355-20148-s7xjwa.yrbap\sketch_jun5a\sketch_jun5a.ino:48:22: error: 'Pixy2 {aka class TPixy2<Link2SPI>}' has no member named 'blocks' signature = pixy.blocks[0].signature; ^~~~~~ exit status 1 Compilation error: 'Pixy2 {aka class TPixy2<Link2SPI>}' has no member named 'blocks'라는 오류코드가 나오며 pixy2를 이용하여 색상인식을 한 후 모터를 통해 따라 움직이는 코딩을 하고싶어서 질문을 드립니다.
댓글 1
조회수 428master님의 댓글
master 작성일
라이브러리 설치하면 예제도 설치됩니다.
라이브러리의 예제를 컴파일 해서 오류가 없는 것을 확인 한 후에
라이브러리의 예제와 비교해서 원인을 찾아보세요