Q&A
 
작성일 : 17-07-24 20:52
[답변] 캔위성-아두이노 추가 질문 [ UART 통신, 추가 모터 달기 ]
 글쓴이 : 관리자
조회 : 67  
1-1) 답변 : 예 ( 1층,2층,3층,4층 모두 같이 연결됩니다. )
1-2) 사전교육자료 151페이지 부분부터 잘 보시면,
       - MUX 설정으로 받아들일 UART 부분을 설정하면,
       - UART 쪽에서 데이터가 들어오면 PL_PORT 에 데이터가 쌓이게 되며. ( 내부통신 )
       - 계속해서 hyTransUart() 를 호출하여 처리하고 있습니다.

        - hyTransUart() 코드에서는
          . PL_PORT 에 데이터가 있으면, Pl_Rx_QueueIn 에 데이터를 저장하고,
          . Pl_Rx_Queue 에 데이터가 있으면 한 바이트를 읽어서
          . 모드에 해당하는 수신 처리 루틴을 호출합니다.
              ( RxMode_CAMERA_SIZE 일 경우 hyCamera_Receive_Size(b) ) ==> 결과는 전역변수에
              ( RxMode_CAMERA_IMAGE 일 경우 hyCamera_Receive_Image(b) ) ==> 결과는 이미지 전송에
              ( RxMode_GPS 일 경우 hyGps_RecvByte(b) ) ==> 결과는 전역변수에
              ( RxMode_IMU  일 경우 hyImu_RecvByte(b) ) ==> 결과는 전역변수에
          . Gs_Rx_Queue 에 데이터가 있으면, Gs_RecvByte(b) 호출 ==> 필요한 명령들 처리
          . Gs_Tx_Queue 에 데이터가 있으면, hyGsTxByte(b) 를 이용하여 지상국에 1바이트 전송
          . Pl_Tx_Queue 에 데이터가 있으면, hyPlTxByte(b) 를 이용하여 탑재체에 1바이트 전송
      - 그러므로.... 정리하면
         .  gps/imu ==> 캔위성은 위의 설명 ( RxMode_GPS, RxMode_IMU 처리 )
         .  캔위성 ==> 카메라의 경우는  hyPlTxByte 에서 처리하도록 함. ( MUX 설정은 사실 필요 없음 )
         . 카메라 ==> 캔위성의 경우는  RxMode_CAMERA_SIZE, RxMode_CAMERA_IMAGE 모드 처럼
                           프로토콜 처리 루틴을 만들어서 처리 (  hyCamera_Receive_Size,  hyCamera_Receive_Image )

2. 배터리는 650mAh, 이지만, DC-DC Convertor 가 500mA 이므로, 
    DC-DC Convertor(500mA)를 이용하여 캔위성을 동작시킬 때를 생각해야 합니다.
   글쎄요.. 서보모터의 용량에 따라 다를 것 같은데,
   모터를 여러개 사용하려면 , 모터만을 위한 추가 배터리를 사용하시는게 좋을 것 같습니다.

3. 사전교육자료 17페이지 전력부를 참조하시면 될 것 같습니다.
    - 서보모터와 추가 배터리 연결
     .  적당한 배터리를 사용, ( ex. 7.2V 배터리 )
     .  이를 적당한 전압으로 변환 (ex. 5V 컨버터 용량 충분한 것 )
     .  GND 는 제어 시스템과 GND 와 같이 연결,( ex 5V )
     .  DC-DC 컨버터의 VCC 는 서보모터의 VCC 에 연결 (ex 5V )
   - 서보모터와 제어 시스템과 연결 1 ( 캔위성을 제어 시스템으로 사용시 )
    . 제어 시스템의 제어신호를 서보 모터의 제어 신호와 연결 (ex PWM 신호 )

   - 서보모터와 제어 시스템과 연결 2 ( 추가보드를 제어 시스템으로 사용시 )
    . 제어 시스템의 제어신호를 서보 모터의 제어 신호와 연결 (ex PWM 신호 )
    . 캔위성의 GND 와 추가보드의 GND 연결
    . (추가적으로 캔위성과 추가 보드간의 통신을 위한 제어 신호 연결 )
    . 일반적으로 추가보드 5V 전원은 캔위성의 5V 전원에 연결 ( 아두이노 UNO 보드 정도 )



> > > 안녕하세요, 슬기부 태연한 다람쥐 팀입니다. > 저번 질문에 이어서 추가 질의하고자 합니다. > > 1. 캔위성 --> 아두이노 > 1-1) 핀 자체는 캔위성의 카메라 tx핀을 쓰라고 하셨는데 그러면 1층의 카메라 tx핀이 연결된 4층 케이블 핀을 써도 되는 건가요? 그렇게 되면 캔위성이 데이터 송신을 하면 이게 카메라하고 아두이노로 가는 건가요? > > 1-2) 캔위성에서 "gps/imu --> 캔위성 --> 카메라 --> 아두이노/캔위성" 과정에 사용한 데이터 송수신 함수를 알고 싶습니다. 일단 제가 이해한 바로는 "gps/imu --> 캔위성"은 gps_recvbyte()를 이용해서 바이트별로 데이터를 받아서 처리하는 거고 이게 전역 변수로 선언이 되었기 때문에 gps_data[]를 그대로 사용하면 되는 거고요. "캔위성 --> 카메라" rx_mode_set(rxmode_camera)를 한 다음에 Pl_Tx_QueueIn(데이터)로 데이터를 한 바이트 씩 제가 만든 프로토콜로 보내면 되는 거고요. "카메라 --> 아두이노/캔위성"은 hyPlTxByte(데이터)로 보내면 되는 건가요? 그리고 아두이노에서 프로토콜에 기준해 필요 데이터를 추출하면 되는 거고요. 혹시 이런 방법이 맞나요? > > > 2. 하드웨어의 입장에서 봤을때, 원래 키트에 있었던 elecfood Li-ioin PB 9V 650mAh동력원으로 > -GPS센서 > -카메라 > -IMU센서 > -서브모터 2개 > -아두이노(오렌지 보드) > *위의 모든 부품은 대회에서 제공되었던 것들이여서 따로 모델명은 쓰지 않겠습니다 > 이 모든 것들을 돌릴 수 있을까요?? 저번에 해주신 설명으로는 동력최대치 계산이 잘 이해가 되지 않아서 말입니다. > 애초에 주어진 배터리의 데이터시트에서는 650mAh라 되어있고, 그때 설명하신 바로는 500mAh가 상한선이라고 하셨는데, 그러면 80%안으로 동력이 떨어지게 하시라는 말이 650의 80%인지, 500의 %인지 잘 모르겠습니다. > 그리고 궁극적인 질문은 주어진 배터리로 위 모든 장치들을 작동시키는게 가능한지의 여부입니다... > > 3. 만약 동력원이 부족할경우 추가적인 외부 동력원을 구비해야할텐데, 이게 단순히 모터에 전선을 딱 꼽는게 아니지 않습니까.. 센서의 동력, 서브모터 2개 등의 파워를 적절히 연결하기 위해 관련자료나 참고자료 같은게 있나요? 파워배분하는데에 있어서 참고할만한 사항이나 요점같은 것이 있다면 알려주시길 바랍니다. > > 감사합니다! >