분류 전체보기 (137) 썸네일형 리스트형 [C언어] static 과 extern의 차이 * extern 다른 파일에서 그 변수를 사용할 수 있다. * static 다른 파일에서는 사용 불가능. 오직 그 파일에서만 사용 가능 [KEIL] Debug(printf) Viewer 사용법 1. 코드 추가 #include int fputc(int c, FILE *stream) { return(ITM_SendChar(c)); } 2. 프로젝트 옵션 설정 Clock은 실제 사용하는 시스템 클럭과 동일하게 설정하고 나머지 설정을 동일하게 맞춘다 3. 실제 확인 Debug모드에서 메뉴 View - Serial Window - Debug(printf) Viewer를 클릭후 확인 소켓통신 에코 프로그램 예제 클라이언트가 보낸 메시지를 서버가 다시 전송하는 예제 서버를 먼저 실행시킨 후, 클라이언트를 실행. 1. 클라이언트가 접속하면 서버에서 접속한 클라이언트의 정보를 보여줌. 2. 클라이언트가 문자열 전송하면 서버가 수신한 문자열 출력하고 다시 에코. 3. 클라이언트에서 수신받은 문자열을 출력 import socket # 접속할 서버 주소입니다. 여기에서는 루프백(loopback) 인터페이스 주소 즉 localhost를 사용합니다. HOST = '192.168.0.2' # 클라이언트 접속을 대기하는 포트 번호입니다. PORT = 9400 # 소켓 객체를 생성합니다. # 주소 체계(address family)로 IPv4, 소켓 타입으로 TCP 사용합니다. server_socket = socket.socket(.. [RTOS] 세마포어 * 세마포어 저장장치 내의 값을 통해 공유 자원에 여러 프로세스가 접근하는 것을 막는 커널 객체 세마포어 획득을 통해 동작이나 접근에 대한 권리 획득, 세마포어 반환을 통해 동작이나 접근에 대한 권리 반환, 세마포어 획득/반환 횟수에 따라 바이너리 세마포어(1회)/카운팅 세마포어(1회 초과)로 나뉜다. 바이너리 세마포어 RTOS란? 시분할 시스템 하에서 우선순위 기반 스케줄링을 통해 우선순위가 높은 task가 먼저 작업을 처리할 수 있게 한다. 시분할 시스템이란? : 시간을 쪼개어 하나의 처리 장치에서 두 개 이상의 처리를 가능하게 한 시스템 스케줄링이란? : 운영체제의 동작 기법 중의 하나로 특정 방법에 따라 프로세서들에게 CPU 등의 자원 배정을 하는 것을 뜻한다. 우선순위 기반 스케줄링 방식이란? : 현재 수행중인 task보다 높은 우선순위를 갖는 이벤트가 서비스를 요청할 때 task 전환이 발생 Non-OS 대비 RTOS의 장단점 - 장점 일관된 작업 수행시간 쉬운 기능 확장 장치 간 의존성 감소 - 단점 메모리 소모 증가 * 클록 Tick 시분할 시스템을 구현하기 위한 RTOS 커널 내부의 기준 시간. 시스템 성능에 따라 .. rosserial rosserial PC와 제어기 간의 메시지 통신을 위해 중계자 역할을 수행하는 ROS 패키지 rosserial 제약사항 1. 메모리 퍼블리셔, 서브스크라이버 개수 및 송신, 수신 버퍼의 크기를 미리 정의해야 함 2. Float64 MCU는 64비트 실수연산을 지원하지 않아 32비트형으로 변경함 3. String 문자열 데이터를 String 메시지 안에 저장하지 않고 외부에서 정의한 문자열 데이터의 포인터 값만 메시지에 저장함 4. Array 메모리 제약사항으로 배열의 크기를 지정해서 사용 5. 통신 속도 UART 같은 경우 115200bps와 같은 속도로는 메시지의 개수가 많아지면 응답 및 처리속도가 느려짐 ROS 통신방식 / package / roslaunch 사용법 ROS에서는 단방향 통신일 때, ‘Topic’이라는 메시지 통신 사용. 송신 측을 Publisher, 수신 측을 Subscriber 라고 부른다 catkin_create_pkg : package 생성 명령어 패키지 설정 파일(package.xml) 수정 패키지 정보를 담은 XM L 파일로서 패키지 이름, 저작자, 라이센스, 의존성 패키지 등을 기술 roslaunch 사용법 rosrun이 하나의 노드를 실행하는 명령어 roslaunch는 하나 이상의 정해진 노드를 실행 노드를 실행할 때 패키지의 매개변수나 노드 이름 변경, 노드 네임스페이스 설정, ROS_ROOT 및 ROS_PACKAGE_PATH 설정, 환경 변수 변경 등의 옵션을 붙일 수 있음. XML 기반이며, 태그별 옵션을 제공 실행 명령어는 “ r.. ROS란? 로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크 - 노드간 메시지 교환방법으로 복잡한 프로그램을 잘게 나눠 공동 개발 가능 - 명령어 도구, 시각화 도구 Rviz, GUI 도구 모음 rqt, 3차원 시뮬레이터 Gazebo 지원 ROS의 진정한 목적 - 로보틱스 소프트웨어 개발을 전세계 레벨에서 공동 작업 가능하도록 생태계를 구축하는 것 ROS를 사용 가능한 운영체제 - 기본적으로 Ubuntu, OS X 에서 구동하는 것을 추천 - OS를 탑재할 수 없는 MCU의 경우, 시리얼 통신, 블루투스, LAN 경유로 통신할 수 있는 라이브러리 제공 ROS 특징 통신 인프라 - 노드 간 데이터 통신 제공 통상적 미들웨어로 지칭되는 메시지 전달 인터페이스 지원 메시지 파싱 기능 메시지의 기록 및 재생 메시지 사.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 18 다음