'[2025~] Embedded > 자율주행 맛보기' 카테고리의 다른 글
[01] 자율주행 시스템의 원리와 구성요소 (0) | 2025.04.08 |
---|
[01] 자율주행 시스템의 원리와 구성요소 (0) | 2025.04.08 |
---|
● 자율주행의 정의와 개념
● 자율주행 시스템의 구성요소
●자율주행 시스템의 원리
"자율주행자동차"란 운전자 또는 승객의 조작 없이 자동차 스스로 운행이 가능한 자동차를 말합니다.
- 자율주행을 위해 자동차에 IT. 센서 등 첨단 기술을 융합하여 스스로 주변 환경을 인식
- 위험을 판단하고 주행 경로를 계획하여
- 운전자 또는 승객의 조작 없이 안전한 운행이 가능하도록 한 자동차를 자율주행자동차라고 합니다
구분 | 내용 |
부분 자율주행시스템 | 지정된 조건에서 자동차를 운행하되 작동한계 상황 등 필요한 경우 운전자의 개입을 요구하는 자율주행시스템 |
조건부 완전자율주행시스템 | 지정된 조건에서 운전자의 개입 없이 자동차를 운행하는 자율주행시스템 |
완전자율주행시스템 | 모든 영역에서 운전자의 개입 없이 자동차를 운행하는 자율주행시스템 |
자율주행 기술은 자동화 단계의 구분에 따라 레벨 0부터 5까지 6단계로 분류할 수 있으며,
레벨 3부터를 자율주행자동차로 봅니다.
[자료 출처]
SAE(미국자동차공학회의 구분에 따른 분류), 법제처 공식 홈페이지]
[자료 출처]
4차 산업혁명 코리아루트, 산업통상자원부, 2017.6.
[자료 출처]
https://www.easylaw.go.kr/CSP/CnpClsMainBtr.laf?csmSeq=1593&ccfNo=1&cciNo=1&cnpClsNo=1
라이다(Lidar)는 360도 방사한 레이저가 반사돼 되돌아오는 것을 감지해 3D 이미지를 구현합니다.
이렇게 구현된 3D 이미지는 딥러닝 알고리즘을 통해 처리돼 자율주행을 돕습니다.
[자료 출처]
https://www.newspim.com/news/view/20220708000949
레이다(Radar)는 전자파 기반 센서입니다.
전자파를 발사해 반사돼 돌아오는 신호를 기반으로 주변 사물과의 거리 방향 속도등의 정보를 추출하여 물체를 인식합니다.
[자료 출처]
https://www.nidec-components.com/kr/featuring/lidar-polygon/whats_lidar/
[17] Rogic 실습 - 원숭이 바나나 먹기 게임 (0) | 2025.05.03 |
---|
새 프로젝트 생성 시, 코드 자동 생성 되지 않고
myST에 연결하라는 Dialog가 뜰 때...
해결법
Window > Preferences >
General > Network Connections
> Active Provider : Direct 로 설정해줍니다.
Direct 로 설정하면, 연결이 됩니다.
&buf_one[0] == buf_two+0
https://www.onlinegdb.com/online_c_compiler#
Online C Compiler - online editor
OnlineGDB is online IDE with c compiler. Quick and easy way to compile c program online. It supports gcc compiler for c.
www.onlinegdb.com
온라인 C 컴파일러로 아래 코드를 실행해보면,
#include <stdio.h>
#include <stdint.h> // uint8_t
int main()
{
// uint8_t 는 8비트 (1바이트) 이므로,
// 연속된 배열 공간에서는
// 주소가 1씩 증가함
uint8_t buf_one[100];
buf_one[0] = 1;
buf_one[1] = 2;
buf_one[2] = 4;
printf("&buf_one[0] : %u\n", &buf_one[0]);
printf("&buf_one[1] : %u\n", &buf_one[1]);
printf("&buf_one[2] : %u\n", &buf_one[2]);
char* buf_two = buf_one;
printf("buf_two[0] : %d\n", buf_two[0]);
printf("buf_two[1] : %d\n", buf_two[1]);
printf("buf_two[2] : %d\n", buf_two[2]);
printf("buf_two+0 : %u\n", buf_two+0);
printf("buf_two+1 : %u\n", buf_two+1);
printf("buf_two+2 : %u\n", buf_two+2);
return 0;
}
아래와 같이 출력된다.
&buf_one[0] : 292731376
&buf_one[1] : 292731377
&buf_one[2] : 292731378
buf_two[0] : 1
buf_two[1] : 2
buf_two[2] : 4
buf_two+0 : 292731376
buf_two+1 : 292731377
buf_two+2 : 292731378
buf_two 가 가리키고 있는 것은
buf_one 배열의 0번째 index의 주소이다.
&buf_one[0] 와 buf_two+0 가
같은 주소값으로 출력된 것을 확인할 수 있다.
&buf_one[0] == buf_two+0
*buf_two = buf_one 이므로,
양변에 & 연산자를 취해주면
&(*buf_two) = &(buf_one)
&*가 이 순서대로 나오면 두 연산자 모두 사라지므로
buf_two = &buf_one 이라고 할 수 있다.
&buf_one[0] == buf_two+0 == &buf_one + 0
따라서
&buf_one[0] == buf_two+0
[MQTT 실습| Windows x64 | Mosquitto] (0) | 2025.03.14 |
---|---|
Teraterm으로 Yona의 프로젝트 git clone 해오기 (0) | 2025.03.13 |
[영상] IoT 프로토콜 MQTT 특징, 3분 정리 - 친절한 코딩 (0) | 2025.03.12 |
https://velog.io/@irish/MQTT-programming-basic
[MQTT] 실습 - 기초
[MQTT] 실습 - 기초
velog.io
위 블로그 참고하여 따라 해보았다.
1) MQTT 브로커 설치 (Windows : Mosquitto)
Windows 에서 설치할 수 있는 대표적 MQTT 브로커인 Mosquitto 설치
Mosquitto의 공식 웹사이트(https://mosquitto.org/download/)
2) Mosquitto 실행
cmd 에서 아래 실행 명령 입력
"C:\Program Files\mosquitto\mosquitto.exe" -v
3) MQTT 클라이언트 설치
Python과 paho-MQTT 라이브러리 설치
cmd 에서 설치
pip install paho-mqtt
4) publisher.py (발행자)와 subscriber.py (구독자)
5) publisher.py 실행
python publisher.py
publisher.py의 python terminal
subscriber.py의 python terminal
cmd
[C] 배열을 가리키는 포인터 (0) | 2025.03.20 |
---|---|
Teraterm으로 Yona의 프로젝트 git clone 해오기 (0) | 2025.03.13 |
[영상] IoT 프로토콜 MQTT 특징, 3분 정리 - 친절한 코딩 (0) | 2025.03.12 |
코드
#include <stdio.h>
#include <stdarg.h>
#include <time.h>
void printf_log(const char *format, ...);
int main()
{
printf_log("This is a log message");
return 0;
}
void printf_log(const char *format, ...)
{
// 현재 시간을 문자열로 변환
time_t now = time(NULL);
struct tm *now_tm;
char time_str[20];
time(&now);
now_tm = localtime(&now);
strftime(time_str, sizeof(time_str), "[%Y-%m-%d %H:%M:%S]", now_tm);
va_list args;
va_start(args, format);
printf("%s", time_str); // 로그 메시지 출력
vprintf(format, args);
fflush(stdout); // stdout 버퍼를 강제로 플러시
va_end(args);
}
결과
[참고]https://docs.m5stack.com/en/arduino/m5cardputer/sdcard
m5-docs
Product Tutorial
docs.m5stack.com
void printf_log(const char *format, ...) {
char buf[256];
va_list args;
va_start(args, format);
vsnprintf(buf, 256, format, args);
va_end(args);
Serial.print(buf);
canvas.printf(buf);
canvas.pushSprite(0, 0);
}
[에러] PL2303HXA PHASED OUT SINCE 2012. PLEASE CONTACT YOUR SUPPLIER (0) | 2025.03.11 |
---|---|
UART callback does not work 문제 (event not fired) (0) | 2025.02.13 |
Yona의 프로젝트 주소를 복사한다. (빨간 박스)
TeraTerm 을 아래와 같이 설정한다.
아이디 비밀번호 있으면 로그인한다.
git clone (Yona 프로젝트 주소)
이전에 복사한 Yona의 프로젝트 주소를 복사 붙이기 한다.
접속 성공!
~~@~~ : ~$
[C] 배열을 가리키는 포인터 (0) | 2025.03.20 |
---|---|
[MQTT 실습| Windows x64 | Mosquitto] (0) | 2025.03.14 |
[영상] IoT 프로토콜 MQTT 특징, 3분 정리 - 친절한 코딩 (0) | 2025.03.12 |
[C] 배열을 가리키는 포인터 (0) | 2025.03.20 |
---|---|
[MQTT 실습| Windows x64 | Mosquitto] (0) | 2025.03.14 |
Teraterm으로 Yona의 프로젝트 git clone 해오기 (0) | 2025.03.13 |