Tags Wooki 우끼 이더넷통신 지도 오시는 방법 e2Net Vision 팬-틸트 Smart-I ColorEye SPI 지원팀 위드로봇 Etro 홍반장 팬틸트 ethernet 인터페이스 WIT소식 소개 이송 withrobot AR Pan-Tilt Image Processing Embedded Vision 휴머노이드 아름이 영상처리 AVR
Recent Entries 위드로봇의 지원팀을 한 마디로 소개하면~. 아름이를 옮기기 위해 고생하시는 팀장님. VJ투데이 - 엔지니어 위한 꿈의 놀이터,... New! Withrobot Character 소개. myCortex 개발환경 및 예제 업데이트. 비주얼 베이직에서 myVision 라이브러리... VB에서 DLL 함수를 호출하는 법. myAccel3LV02 rev.B. (3) ComPortMaster v1.3.0을 공개합니다. ComPortMaster 1.3.0 릴리즈. (8)
Recent CommentsLED는 동작하지 않습니다. 원... irmus 03/09안녕하세요? 디바이스마트에서... 이민주 03/09모듈에는 풀업저항은 달려있지... nexp 03/08아 궁금한게 모듈 내부에... solo0805 03/06오실로스코프로 확인하시면 됩... irmus 03/04
Total : 124,605Today : 18Yesterday : 113
: Name
: Password
: Homepage
안녕하세!. myBluetooth-EX 블루투스 모듈에 관련 문의입니다. PC에서 myBluetooth-EX 감지했을때 Bluetooth 장치 이름 : myBluetooth-EX 나오는데 장치이름을 변경할수 있나요? 사용자메뉴얼에서 "별매의 지그보드를 이용하면 설정값을 변경할 수 있습니다." 라고하는데 별매의 지그보드 아니면 설정할수 있는 방법이 있나요??
myBluetooth-EX의 장치 이름은 사용하시는 블루투쓰 프로그램에서 변경하시면 됩니다. 속성 들어가셔서 변경하세요. 그리고 사용자메뉴얼에 "별매의 지그보드를 이용하면 설정값을 변경할 수 있습니다"라고 언급한 부분이 없습니다. 어떤 부분을 두고 말씀하시는 것인지 모르겠습니다만, 여튼 장치 이름은 myBluetooth-EX가 아닌 PC용 프로그램에서 변경하는 내용입니다. 다시 찾아보니 홈페이지상에 예전 문구가 남아있었네요. 통신 속도는 변경 불가능합니다. 이 부분은 수정하도록 하겠습니다. 혼동을 드려 죄송합니다.
안녕하세요. MyVisionUSB(DX) 보드 관련 문의입니다. 메뉴얼에 따르면 위 보드가 스테레오 처리와 LG 줌 카메라를 제어할 수 있다고 되어있습니다. 이 경우에 위 보드에 두개의 LG 줌 카메라를 설치하고 동시에 두 카메라의 줌을 제어하면서 스테레오 처리가 가능한지요 ? 그리고, 혹시 LG카메라 말고 저가형 소형 줌 카메라 모듈이 있는지와 이를 제어할 수 있는 프로젝트 진행이 가능한지 궁금합니다.
담당자분이 요즘 업무가 많은 관계로 답변이 좀 늦어지는것 같아 우선 제가 아는 정도에서 먼저 답변을 드리겠습니다. myVisionUSB-DX는 1대의 카메라만 연결할 수 있습니다. 대신 1대의 PC에 2대의 myVisionUSB-DX를 연결해서 동시에 동작시킬 수 있습니다. 반면 myVisionUSB-EX는 PC에 1대만 연결 가능합니다. 줌 제어 커스터마이징은 원하시는 카메라 모델을 알려주시면 가능한지 여부를 검토하도록 하겠습니다.
안녕하세요. 8962를 사용하고 있는데요 문의사항이 생겨서 질문을 드립니다. 제가 임의로 for문을 돌려서 일정 시간을 기다리고 할려고 하는데요 근데 그때 for문 안에 전역변수로 사용하는 값을 사용하는 내용이 없으면 for문은 무시된 채로 넘어가 버립니다. for문말고 다른것들도 이런 현상들이 종종 나타나는거 같은데요... 이게 컴파일 옵션에서 뭔가 설정을 해야할거같은데 혹시 이러한 문제에 대한 방법이 있는지 궁금합니다.
compiler의 optimization 때문입니다. 컴파일러 옵션을 조정해서 수정할 수 있지만 그 방법보다는 타이머를 사용하거나 delay 함수를 사용하시는 것을 추천드립니다. delay 함수는 SysCtlDelay() 함수가 있으니 참고하시기 바랍니다.
LM8962의 GPIO port B의 7번 째 채널의 lock을 풀고 일반 GPIO 채널로 사용하려면 어떻게 프로그램하면 되는지요? (port B의 모든 채널을 일반 채널로 사용하고 싶습니다.) register에 직접쓰는 방법외는 없는 것 같아서 아래 code와 같이 프로그램해서 run 해보면 GPIO_PORTB_LOCK_R =0x00000000; GPIO_PORTB_CR_R= 0x000000ff; GPIO_PORTB_AFSEL_R= 0x00000000; uart port 통해서 보이던 결과도 보이지 않고 다른기능도 동작하지 않는 것 같습니다. 답변부탁합니다. 수고하세요.
lock bit를 설정하는것을 아시는 걸로 봐서는 데이터쉬트를 보신것 같습니다. 그러면 PB7을 GPIO로 설정했을 때 어떤 위험성이 있는지, 지금 증상이 왜 생기는 지도 읽어보셨을것 같구요. http://irmus.tistory.com/47 오래전에 블로그에 정리한 내용이 있으니 참고삼아 읽어보시고, 데이터쉬트의 내용도 한번 더 점검해 보시기 바랍니다.
안녕하세요^^ 지난번 질문에 이어서 한가지 궁금증이 생겨 이렇게 글 올립니다. 모터를 돌려서 CC가 뜨면 자주 코어텍스(또는 제이텍)이 다운(??)되는 현상이 생겨 USB를 뽑았다가 다시 꼽아주는 상황이 발생했었습니다. 그리고 그게 제가 쓰는 노트북에 영향을 미쳐 화면떨림이 생긴 것 같습니다. 제 생각에는 모터에서 발생한 역전류같은 어떤 전류가 흘러 코어텍스(또는 제이텍) 뿐만 아니라 노트북에도 영향을 준 것으로 생각합니다. 주인장님은 어떻게 생각하시는지 그리고 이런 상황을 어떤식으로 방지할 수 있을지 조언 좀 부탁드립니다(__)
모터 구동같은 회로를 설계하실때 노이즈에 대한 대책을 미리 고민하고 설계하세요. 노이즈 대책이 무었이냐는건 제가 알려드릴 수 있는 내용이 아닌것 같습니다.
제가 단순하게 엔코더쪽으로만 생각했네요.모터의 노이즈를 잡아줄 생각은 안하고ㅠㅠ 노이즈 잡는 방법에 대해서 공부해야겠군요.답변감사합니다(__) 좋은하루되세요~!
안녕하세요^^ 지난번에 엔코더와 CC 뜨는 것에 대해서 질문드렸던 학생입니다. CC 문제는 포토커플러에서 반전이 일어나 처음 프로그램을 동작시키면 PWM이 100% 들어가기 때문이었습니다. 포토커플러의 동작원리도 모른채 질문드려서 죄송합니다ㅠㅠ 한가지 더 질문드리고 싶은게 있는데요..지난번에 엔코더 A상과 B상에 캐패시터를 달아 노이즈를 제거해 주었더니 엔코더값이 갑자기 크게 증가하는 현상은 없어졌습니다만 CC가 뜨면 엔코더 값이 조금 바뀝니다. 예를 들어 펄스가 0이었던 위치에서 움직이다가 CC가 뜬 후 다시 원위치로 가면 3~5정도로 위치가 바뀌는데 CC가 최대한 안뜨도록 게인값을 수정할 수는 있지만 아예 안뜨도록 할 수는 없거든요.. 아래는 제가 작성한 코드입니다. 새해 복 많이 받으세요(__) #define Arm_Gain -5.8 #define Pol_Gain -71 #define ArmVel_Gain -6.1 #define PolVel_Gain -14 #define M_PI 3.14159265358979323846 #define BUFFER_LEN 32 static void InitTIMERINT(void); static void InitUART(void); static void TimerIntHandler(void); static void InitPWM(void); static void InitGPIO(void); static void InitQEI(void); static void UARTPutString(char * str); int main(void) { SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); InitTIMERINT(); InitUART(); InitPWM(); InitQEI(); InitGPIO(); // Loop Start. while(1) { } } static void TimerIntHandler(void) { int start, aaa; aaa = 1; float ulPeriod, ArmAngVel_err, PolAngVel_err, ArmAng_err, PolAng_err, Volt, ulDuty, Pol_Ang; float Pol_Pulse, Arm_Pulse, Pol_Dot_Pulse, Arm_Dot_Pulse; char buffer[BUFFER_LEN]; TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT); ulPeriod = SysCtlClockGet() / 30000; PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * 0.99); usnprintf(buffer, BUFFER_LEN, "%d; \n", QEIPositionGet(QEI0_BASE)); buffer[BUFFER_LEN - 1] = 0; UARTPutString(buffer); if(QEIPositionGet(QEI0_BASE) > -1015 && QEIPositionGet(QEI0_BASE) < -985) { start = 1; PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * 0.99); } else { start = 0; } while(start == 1) { Arm_Dot_Pulse = QEIVelocityGet(QEI1_BASE); Pol_Dot_Pulse = QEIVelocityGet(QEI0_BASE); Arm_Pulse = QEIPositionGet(QEI1_BASE); Pol_Pulse = QEIPositionGet(QEI0_BASE); Pol_Ang = (float)Pol_Pulse * 0.18 + 180; if(Pol_Ang <= 20 && Pol_Ang >= -20) { ArmAngVel_err = (float)Arm_Dot_Pulse * M_PI * -0.001; PolAngVel_err = (float)Pol_Dot_Pulse * M_PI * -0.001; ArmAng_err = (float)Arm_Pulse * M_PI * -0.001; PolAng_err = ((float)Pol_Pulse * M_PI * -0.001) - M_PI; Volt = (ArmAng_err * Arm_Gain) + (PolAng_err * Pol_Gain) + (ArmAngVel_err * ArmVel_Gain) + (PolAngVel_err * PolVel_Gain); if((Volt < 0) && (Volt > -24)) { aaa = 0; GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_5, 0); ulDuty = 1 + (Volt / 24); PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * ulDuty); } else if((Volt < 24) && (Volt > 0)) { aaa = 1; GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_5, GPIO_PIN_5); ulDuty = 1 - (Volt / 24); PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * ulDuty); } else { aaa = 2; PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * 0.99); } } else { PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, ulPeriod * 0.99); break; } } } static void UARTPutString(char * str) { while(*str) UARTCharPut(UART0_BASE, *str++); } static void InitTIMERINT(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER); TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() / 100); TimerIntRegister(TIMER0_BASE, TIMER_A, TimerIntHandler); IntMasterEnable(); TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); TimerEnable(TIMER0_BASE, TIMER_A); } static void InitUART(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); } static void InitPWM(void) { float ulPeriod; ulPeriod = SysCtlClockGet() / 30000; SysCtlPWMClockSet(SYSCTL_PWMDIV_1); SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0); GPIOPinTypePWM(GPIO_PORTG_BASE, GPIO_PIN_1); PWMGenConfigure(PWM_BASE, PWM_GEN_0, PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC); PWMGenPeriodSet(PWM_BASE, PWM_GEN_0, ulPeriod); PWMOutputState(PWM_BASE, PWM_OUT_0_BIT | PWM_OUT_1_BIT, true); PWMGenEnable(PWM_BASE, PWM_GEN_0); } static void InitQEI(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI); SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI1); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); GPIOPinTypeQEI(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_6); GPIOPinTypeQEI(GPIO_PORTE_BASE, GPIO_PIN_2 | GPIO_PIN_3); QEIConfigure(QEI_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET | QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 0xffffffff); QEIConfigure(QEI1_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET | QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 0xffffffff); QEIVelocityConfigure(QEI_BASE, QEI_VELDIV_1, SysCtlClockGet() / 100); QEIVelocityConfigure(QEI1_BASE, QEI_VELDIV_1, SysCtlClockGet() / 100); QEIEnable(QEI_BASE); QEIEnable(QEI1_BASE); QEIVelocityEnable(QEI_BASE); QEIVelocityEnable(QEI1_BASE); } static void InitGPIO(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_5); }
회로 설계상 노이즈에 취약한 문제가 있고, 전원역시 부족한 상황이기 때문에 여러가지 문제들이 발생하는것 같습니다. 인코더 라인에 캐패시터 추가하는 것 같은 임시 방편으로 해결하기보다는 정식으로 회로를 점검해서 문제들을 짚고 넘어가시는 것이 좋아 보입니다.
my vision usb 를 윈도우 7 64비트 환경에서 설치하였는데 장치를 인식하지 못합니다. xp 에서 설치할때는 사운드였나 그쪽에서 인식해서 드라이버 업데이트로 해결하였는데 이번에는 unknown device 라고 떠서 어떻게 해야하는지 모르겠습니다.
윈도우 7 64비트 환경에서는 테스트해보지 않았지만 지원되지 않는 것으로 알고 있습니다.
아래 관리자님의 " 이클립스의 GDB Hardware debugging 플러그인을 설치하지 않으신듯 합니다. Stellaris-JTAG 사용자설명서의 이클립스 설치 방법을 참고하셔서 설치해주세요 " 답에서 GDB Hardware debugging 플러그인은 제대로 설치된것은 확인했습니다. 메뉴얼에서 말하는 메인메뉴 Run ->Open Debug Dialog 는 어디에 있는지요? 제가 못찾은 건가요? 답부탁합니다. 수고하세요.
이클립스 버전이 올라가면서 메뉴 문구가 조금 변경되었네요. 사용자설명서의 내용은 업데이트 하도록 하겠습니다. Open Debug Dialog 메뉴가 Debug Configurations 으로 변경되었습니다.
안녕하세요 질문이 있습니다. 8962를 사용중인데요 여기서 uart_echo를 컴파일하여서 디버깅을 시작하면 No source available for "UARTIntHandler() " 또는 No source available for "main() "이라는 메시지가 나오면서 아래에 View Disassembly라는 버튼과 콘솔에선 아래와 같은 메시지가 나옵니다. (no debugging symbols found) target extended-remote localhost:3333 0x000001a8 in main () monitor soft_reset_halt monitor sleep 500 continue Note: automatically using hardware breakpoints for read-only addresses. Program received signal SIGINT, Interrupt. 0x00000164 in main () 이건 어떨때 나오는 메시진지 궁금하며 어떻게 처리해야할지 궁금합니다.. timer소스같은 경우는 정상적으로 디버깅이 됩니다. 아 그리고 문의 게시판 검색이 되게 좀 고칠수없나요?? 좀 불편해요..^^;;;
uart_echo 예제는 luminary micro에서 제작한 예제를 myCortex 보드에 맞게끔 살짝 손만 본 예제입니다. blinky 예제도 마찬가지입니다. 이처럼 luminary micro에서 만든 예제들은 기본적으로 debugging symbol을 생성하지 않게끔 설정되어 있습니다. makefile을 수정해서 디버깅 심볼을 생성하게끔 수정해야 합니다. uart_echo 예제 폴더에 있는 Makefile 파일을 텍스트 에디터로 열어보세요. 이클립스에서 열어도 됩니다. 이 파일의 50번째 라인에 DEBUG=1 이라고 추가하시면 됩니다. 이처럼 makefile을 수정한 후에는 이클립스에서 clean을 한번 해 주고 다시 build 해야 합니다. 게시판 검색기능은 고민을 하고 있는 중입니다만 당장 뾰족한 수가 안보이고 있습니다. 세입자의 서러움이죠. 역시 자기집이 있어야 하는것 같습니다.
안녕하십니까? Stellralis-JTAG 를 setup하고 있습니다. 메뉴얼대로 다해서 모든 부분동작을 확인했습니다. 단지 Debug가 진행이 안되고 있습니다. 메뉴얼에 보면 소스레벨 디버깅을 위해서 이클립스에서 OpenOCD Server를 선택한 후 Run을 하게되어있어 그대로 하니까 메뉴얼 화면대로 Console 창에 아래와 같이 메시지가 나타났습니다. -------------------- 아래 -------------- Open On-Chip Debugger 0.2.0 (2009-07-16-17:19) Release $URL: http://svn.berlios.de/svnroot/repos/openocd/tags/openocd-0.2.0/src/openocd.c $ For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS jtag_speed: 6 Info : device: 4 Info : deviceID: 67353817 Info : SerialNumber: 061101C1A Info : Description: Stellaris Evaluation Board A Info : JTAG tap: myCortex.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) 메인메뉴에서 Window -> Open Perspective -> Debug 를 선택해서도 메뉴얼과 같은 화면이 나타났고 문제는 다음인데 메인메뉴에서 Run ->Open Debug Dialog 를 선택하라고 나오는데 이클립스 메뉴를 아무리찾아봐도 그 메뉴는 없고 비슷한 것은 있는데 Dubug Configurations 메뉴입니다. 그런데 그기에는 C/C++ Appilication C/C++ Attach to Application C/C++ Postmortem Debugger Launch Group 만 나와 있습니다. 메뉴얼에 있는 GDB Hardware Debugger 는 나와있지 않네요. 아뭏튼 그 다음은 진행이안되네요. 문제가 무엇인지 답변부탁합니다. 수고하세요.
이클립스의 GDB Hardware debugging 플러그인을 설치하지 않으신듯 합니다. Stellaris-JTAG 사용자설명서의 이클립스 설치 방법을 참고하셔서 설치해주세요.