[Proramming]/Android2011. 10. 3. 13:30

[Android] 이더넷 WiFi모듈을 이용한 서보모터 제어

[Android] 이더넷 WiFi모듈을 이용한 서보모터 제어


Android를 이용한 하드웨어 제어를 위한 두번째 방법으로 이더넷(WiFi) 가 가능하다. Android Phone은 기본적으로 WiFi가 가능하므로 TCP/IP 소켓 프로그래밍을 이용하면 네트웍으로 연결되 장치를 제어 할 수 있다.

Android 에서 TCP/IP을 이용하여 우선 간단하게 테스트 할 수 있는 보드로 WiFi t(Wiz600) 모듈을 이용한다. WiFi AP기능을 하기 때문에 Android에서 접속 해서 무선으로 제어 가능하다.


WiFi to Serial 모듈을 USB2UART 커넥터에 연결하고 Servo Motor를 연결한다.



Android Phone에서 WiFi를 검색하면 WLANAP를 찾을 수 있고 접속할 수 있다.





Android TCP/TP Socket 통신 프로그램 작성




Andoid TC/IP 테스트 동영상

Posted by nexp

댓글을 달아 주세요

  1. 안녕하세요

    서버모터. 혹은 제가 작동하고 싶을때 모터를 움직이고 싶은데요. 제가 서버모터 나 뭐든 잘 모르겠습니다.
    질문이 몇개 있습니다.
    1. 버튼 누를떄마다 잉잉거리는 것이 서버 모터인가요? 아니면 저 메인보드 를 서버모터라고하나요??

    2. 저 제품을 제가 얻고 싶은데 안드로이드용 앱과 서버모터 둘다 어디서 구할 수 있나요?>

    2011.11.22 22:40 [ ADDR : EDIT/ DEL : REPLY ]
    • 위 예제는 RC ServoMotor 입니다.
      출력 펄스의 폭에 따라 모터의 각도가 제어되는 모터 입니다.

      판매용 제품은 아니구요. 테스트용으로 제작해 본 보드 입니다.
      좀더 자세한 사항은 메일 주세요

      2012.07.24 22:52 신고 [ ADDR : EDIT/ DEL ]
  2. 비밀댓글입니다

    2012.07.23 18:54 [ ADDR : EDIT/ DEL : REPLY ]
    • http://nexp.tistory.com/1448 를 보시면 Android에서 TCP통신에 관련된 주의 사항과 예제 소스를 찾을 수 있습니다. 참고 하세요

      2012.07.24 22:49 신고 [ ADDR : EDIT/ DEL ]
  3. ^^

    관리자의 승인을 기다리고 있는 댓글입니다

    2012.08.27 02:04 [ ADDR : EDIT/ DEL : REPLY ]

[MODULE]/MOTOR2009. 12. 8. 22:29

[USB Servo Motor Controller] 다축 서보 제어 보드 테스트

[USB Servo Motor Controller] 다축 서보 제어 보드 테스트


USB, UART를 이용한 다축 서보모터 제어 보드 테스트...

Servo Motor Test Program
C# 을이용하여 윈도우용 서보모터 제어 프로그램 작성



USB제어 다축 서보모터 제어 테스트 동영상

Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.01.10 00:08 [ ADDR : EDIT/ DEL : REPLY ]
  2. 비밀댓글입니다

    2012.07.10 01:02 [ ADDR : EDIT/ DEL : REPLY ]

[ROBOT]/Robot2009. 4. 14. 18:39

[AX-12] 모터 관련자료 및 테스트

[AX-12] 모터 관련자료 및 테스트


robotis AX-12 모터 제어
AX-12모터는 마이컴 내장 독립형 서보 보터로, AVR등의 소형 마이컴에서 UART로 쉽게 서보모터의 위치 및 속도 제어가 가능하다.

테스트 동영상


로롯팔 테스트 동영상
- 속도 제어 및 위치 제어
"



커넥터 연결
전원 7~12V인가 하고 Data핀에 UART TX로 제어, 모터의 상태값을 수신하려면 부가 회로가 필요하다.



송수신을 위한 부가 회로



AX-12 모터 제어를 위한 커넥터 연결




제어 패킷 구조




기본 속도 및 위치 제어를 위한 함수
void SendPosSpd(unsigned char Id, unsigned char Address, unsigned int Pos)
{
    unsigned char check = 0;
 ax_SendPacket(0xff);
 ax_SendPacket(0xff);
 ax_SendPacket(Id);//id
 ax_SendPacket(5);//length
 ax_SendPacket(0x03);//instruction
 ax_SendPacket(Address);//address
 ax_SendPacket(Pos&0xFF);
 ax_SendPacket((Pos>>8)&0xFF);       

 check = ~(Id+5+3+Address+((Pos>>8)&0xFF)+(Pos&0xFF));
 ax_SendPacket(check);
}

위치 제어



기타 Address



다축 서보모터 제어 보드제작  - 관련 자료



다축 서보모터 제어를 위한 PCB도착해서 보드조립 및 테스트 진행.


다축 서보모터 제어 PC소프트웨어
VC++.NET을 이용하여 작성
Posted by nexp

댓글을 달아 주세요

  1. 정말 감명깊게 보고 갑니다^^*

    2010.07.29 10:53 [ ADDR : EDIT/ DEL : REPLY ]
  2. 해니

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.09.09 14:05 [ ADDR : EDIT/ DEL : REPLY ]
  3. 비밀댓글입니다

    2011.09.19 16:44 [ ADDR : EDIT/ DEL : REPLY ]

[ROBOT]/AMORO2005. 11. 2. 23:52

[AmoroRobot2] 서보모터 이용한 로봇팔 실험

[AmoroRobot2] 서보모터 이용한 로봇팔 실험

 
-물체를 들기 위해 로봇팔을 내리는 모습

 
-물체를 들어 올리는 모습


소스코드



//=============================================================================

// Test Program - DX Motor Robot Arm Test
// // // [arm.c] //============================================================================= /* - DX-Motor를 이용하여 로봇팔 제어 예제 - Ez-RoboMaster의 AI Motor포트 DX-Motor(2번째 라인)에 DX-모터를 연결한다. - Dx-Motor은 3개를 이용고 ID가 1~3까지 사용한다. - 시리얼 포트로 'u', 'd', 's'를 전송하면 로봇팔을 올리거나 내리는 동작을 한다. - 시리얼 포트로 'g'를 전송하면 현제 모터의 위치값을 표시한다. - 표시된 모터위치 값을 이용하여 다른 동작을 추가할 수 있다. */ //Ez-RoboMaster API 헤드파일 #include "c:\winavr\ezrobomaster\ezrmlib.h" #include "dx_arm.h" unsigned int m_PosUp[3] = {394, 2, 859}; unsigned int m_PosScan = {400, 544, 340}; unsigned int m_PosDown[3] = {561, 428, 254}; unsigned int m_PosCurrent[3]; //Arm의 상태를 설정하는 함수 void ArmStatus(unsigned char Status) { switch(Status) { case ARM_STATUS_SCAN: //Arm을 물체 검출 위치로 이동 amr_MovePos(400, 544, 340); break; case ARM_STATUS_UP: //물체를 들어 올릴 위치로 이동 arm_Move(m_PosUp); break; case ARM_STATUS_DOWN: //물체를 집거나 내려 놓는 위치로 이동 arm_Move(m_PosScan); Delay(1500); arm_Move(m_PosDown); break; default : return ; } } void DisPlayArmPos(void) { unsigned int pos[3]; //모터3개의 위치를 얻어와서 arm_GetArmPos(pos); printf("M1=%d, M2=%d, M3=%d\r\n", pos[0], pos[1], pos[2]); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //Main 프로그램 int main(void) { unsigned char data = 0; //Ez-RoboMaster초기화 SysInit(); InitArm(); LcdClr(LINE_ALL); LcdDspStr(0,0, "ArmTest "); while(1) { //시이얼 포트로 데이터가 전송되면 if(SrlKbhit()) { data = SrlRcvByte(); printf("\r\n"); switch(data) { case 'u': printf("Arm Up\r\n"); ArmStatus(ARM_STATUS_UP); break; case 'd': printf("Arm Down\r\n"); ArmStatus(ARM_STATUS_UP); break; case 's': printf("Arm Scan\r\n"); ArmStatus(ARM_STATUS_SCAN); break; case 'g': DisPlayArmPos(); break; } printf("Press [u], [d], [g], key>"); Delay(100); } } return 1; } //-----------------------------------------------------------------------------



Posted by nexp

댓글을 달아 주세요

[ROBOT]/Robot2005. 6. 18. 22:04

서보모터 + CMU CAM을 이용한 물체 식별 로봇팔 테스트

서보모터 + CMU CAM을 이용한 물체 식별 로봇팔 테스트

 

CMU CAM카메라 센서 모듈


테스트동영상

Posted by nexp

댓글을 달아 주세요