본문 바로가기

전체 글204

[7월] LOLIN D32(BLE) 모듈 아두이노 IDE에서 SPI 통신하기 SPI 통신하기 앞서 데이터를 주고 받을 LOLIN D32 모듈 2개 모두 BLINK 예제 업로딩, 부팅 모두 가능한지 확인해보았다. 모두 정상 작동한다. 다음으로는 Rx, Tx로 SPI 통신을 하려면 무엇이 필요한지 SPI 통신이 무엇인지 알아본다. https://hanbulkr.tistory.com/5 SPI 통신 (SPI Interface) SPI통신은 I2C통신과 같은 통신방법의 한 종류이지만 통신하는 방법이 다르다. 통신방법에는 여러가지가 있는데 쉽게 비유하자면 I2C통신은 한사람이 보낼때는 다른사람을 받고만 있어야하는 무 hanbulkr.tistory.com 해당 블로그에 자세하게 장단점과 필요한 description을 써놨다. SPI 통신을 하기 위해 연결을 아래 그림과 같이 해보았다. 출처.. 2022. 7. 7.
모드 버스 프로토콜 - OJ 모드 버스는 프로토콜 종류 중에 하나 RS485: 시리얼 통신 중에 하나 TCP 스택 위에 올라간다. RS485 : 시리얼 통신 1.선에 대한 물리적인 약속 가닥수를 결정해야 한다. 연결 방식(포트, WIFI 주파수) 2.데이터를 어떻게 보낼 것인가 전압 단위 1, 0 에 대한 정의 설정값 1) bps (통신 속도) : 1초에 9600개로 나눠서 시간 간격으로 보낸다. / 38400 2) 데이터 길이 : 8 7 6 5 3 으로 정함 보통 8bit로 정함 한번 보내면 8bit는 보낸다. 3) 패리티 : 에러 검출하기 위함. N(안 쓴다.) E(짝수) O(홀수) 4) 정지 비트 : 1bit 짜리 정지 비트를 보낸다. RS232 : 꾸지다. 1:1 통신 밖에 안되고 외부 영향을 많이 받아 데이터가 많이 깨진다.. 2022. 7. 6.
CAN 통신과 CANOpen통신 원리 CAN 통신 Controller Arean Network의 약자로 차량 내에서 디바이스들이 서로 통신하기 위해 설계된 표준 통신 규격이다. 기존 차량 내에서 모듈들이 통신하기 위해서 UART 통신을 사용했지만 모듈이 추가될 때마다 연결선을 추가적으로 늘리면서 공간과 무게를 늘리는 바람에 비효율적이라 생각하였다. 따라서 CAN 인터페이스를 개발하여 여러 개의 모듈을 제어하면서도 연결선, 무게, 원가 모두 줄일 수 있게 되었다. CAN통신은 여러 개의 ECU(Electronic Control Unit)들을 병렬로 연결해서 데이터를 주고 받는 통신 방법이다. CAN 버스를 통해 통신선 상에 데이터를 띄워놓고 필요한 데이터에 접근한다. 동작 방법 마스터가 없어서 CAN버스에서 데이터에 쉽게 접근할 수 있다. C.. 2022. 7. 6.
[7월] LOLIN D32(BLE) 모듈 아두이노 IDE에서 BLINK 예제 업로드하기 먼저 LOLIN D32 보드 set up 과정을 아래 순서로 거쳤다. 1. 아두이노 IDE 설치 2. CH340 드라이버 PC 버전 설치 3. 아두이노 IDE에 LOLIN D32 보드 설치 부가적으로 GIT 설치 (설치 내역 확인하기) 다음에 LOLIN D32 보드에 LED Blink 예제를 실행하고자 하였다. 툴에서 포트와 보드 설정을 하였다. 컴파일 후 업로드 했더니 에러가 발생하였다. 에러 내용은 다음과 같다. 스케치는 프로그램 저장 공간 210609 바이트(16%)를 사용. 최대 1310720 바이트. 전역 변수는 동적 메모리 16044바이트(4%)를 사용, 311636바이트의 지역변수가 남음. 최대는 327680 바이트. 스케치를 업로드 하는 동안 에러가 발생하였습니다. esptool.py v3.. 2022. 7. 6.
ADD SEA 랩뷰 분석 보호되어 있는 글 입니다. 2022. 7. 6.
입사 4주차 한 일 정리 및 재정비 보호되어 있는 글 입니다. 2022. 7. 4.
입사 3주차 한 일 정리 보호되어 있는 글 입니다. 2022. 6. 27.
코드업 1099번문제 - 개미 경로 찾기 https://codeup.kr/problem.php?id=1099&rid=0 [기초-2차원배열] 성실한 개미 C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr 계속 표현 에러가 뜬다;; #include using namespace std; int main() { // 2차원 배열 a 선언 int a[10][10] = {0, }; // 상자의 구조를 입력 받는다. for (int i = 0; i > t; a[i][j] = t; } cout 2022. 6. 22.
코드업 1098번 문제 - 막대사탕 격자에 올려놓기 2차원 배열의 동적 할당 문제 주의할 점 - 할당하고 해제하는 동작도 함수로 만들자. 해제를 안하면 디버깅하고 다시 실행이 되지 않는다. 왜 안되는 지 정확한 이유는 모름;; #include using namespace std; // int형 2차워 배열 동적 할당하는 함수 int** alloc2Darr(int w, int h) { if (w h >> w; // 2차원 배열 a 선언 int** a; // 2차원 배열 a 할당 a = alloc2Darr(w, h); //for (int i = 0; i < h; i++) //{ // for (int j = 0; j < w; j++) // { // a[i][j] = 0; // cout n; // 각 막대의 정보를 입력 받는다. for (int k = 1; k .. 2022. 6. 21.