안녕하세요. 09LABS 입니다. 지난 강의에서는 ESP-IDF 빌드 시스템 구축 후 기본 코드를 작성하는 방법에 대해 알아봤습니다. 이번 강의에서는 멀티태스킹과 유사한 Task API에 대해 알아보겠습니다. 멀티태스킹은 동시에 여러 작업을 수행하는 것을 의미하는데요, 싱글코어 MCU에서는 한 번에 하나의 Task를 실행할 수 있습니다. 따라서 싱글코어 MCU의 경우 Task를 여러개 생성하면 동시에 처리되는 것 처럼 보이지만 스케쥴러에 의해 순차적으로 처리됩니다. 위 그림과 같이 프로그램을 3개 실행한다고 했을 때 우선순위가 높은 순서에 따라 프로그램이 실행되는 순서가 결정됩니다. 만약 듀얼코어 MCU를 사용한다면 멀티태스킹이 어떻게 실행될까요? 제가 사용하는 ESP32-S3 MCU는 듀얼코어 CPU로..
안녕하세요. 09LABS 입니다. 저번 강의에서는 개발 환경을 구축하는 방법에 대해 알아봤습니다. 이번 장에서는 빌드 시스템을 구축하는 방법에 대해 알아보겠습니다. ESP-IDF 프로젝트는 여러 구성요소가 융합된 형태를 사용하고 있습니다. 예를 들어 온습도 센서를 사용한 웹서버의 경우 아래와 같은 Component들이 사용됩니다. - Wi-Fi 드라이버 - TCP/IP Stack - FreeRTOS 운영체제 - Web Server - Sensor Driver - Main code ESP-IDF에서 프로젝트를 컴파일하기 위한 빌드시스템은 프로젝트 디렉토리, 구성요소 디렉토리를 지정해야 합니다. 이를 기반으로 빌드되며 빌드 순서는 Component 빌드 -> Project 빌드 순서로 진행됩니다. Build..
안녕하세요. 09LABS 입니다. 아두이노와 같은 오픈소스 하드웨어에는 여러 종류가 있고 블루투스를 사용하려면 블루투스를 지원하는 MCU 또는 블루투스 모듈을 사용해야 합니다. 저는 ESP32를 주로 사용하여 개발을 했었는데 아두이노 Framework를 사용하여 개발하다보니 개발에 제한적인 부분이 있었습니다. 무엇보다도 Espressif에서 제공하는 모든 API를 활용할 수 없고 어떻게 동작하는지 알 수 없다보니 직접 스터디를 해봐야겠다는 생각이 들었습니다. ESP-IDF Programming Guide : https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html Get Started - ESP32 - — ESP-..
안녕하세요. 09LABS입니다. 이번 문제는 Greedy (탐욕법) 문제중 체육복 문제입니다. 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 ..
안녕하세요. 09LABS입니다. 오늘은 프로그래머스 연습문제 - 모의고사에 대한 해설입니다. 먼저 문제부터 보시죠. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 조건 시험은 최대 10,000 문제로 구성되..
안녕하세요. 09LABS입니다. 오늘은 C++ 프로그래밍의 기초와 자료형에 대해 알아보겠습니다. C언어는 절차지향 언어라고 흔히 알고있습니다. 절차지향 언어란 코드를 작성한 순서대로 동작하는 것을 의미합니다. 절차지향 언어는 복잡한 알고리즘을 사용하지 않는 환경에서는 사용하기 좋습니다. 반면 복잡한 알고리즘과 코드의 재사용성에 있어서는 활용도가 떨어지기 때문에 대규모 시스템을 구축할 때에는 객체지향 언어가 더 적합합니다. 저는 임베디드 시스템에 사용하기 위하여 주로 프로그래밍 언어를 C언어로 선택하여 사용했었습니다. 특히 롬의 용량이 64MB밖에 되지 않기 때문에 인터프리터를 필요로 하거나 용량을 많이 차지하는 언어, 멀티코어 환경에 적합한 언어는 사용이 어려웠습니다. 하지만 개발을 하면 할수록 객체지향..
안녕하세요. 09LABS입니다. 오늘은 코딩 연습문제를 연습할 수 있는 Hackerrank 에 대해 소개해드리고 문제풀이를 써볼까 합니다. Hackerrank는 백준, 프로그래머스와 같이 코딩 연습을 할 수 있는 웹입니다. 위 사진과 같이 대시보드 페이지가 구성되어 있습니다. Problen Solving 페이지에 들어가면 코딩 문제가 나열되어 있습니다. Status - 해결 / 미해결 Difficulty - 난이도 Subdomains - 코딩문제 분야 문제를 누르면 문제 설명에 대한 정보, 함수 프로토타입, 반환값, 샘플 입력 / 출력에 대한 정보가 나와있습니다. 문제를 푸실 때 이 정보를 보시고 코드를 작성하시면 됩니다. 아래 코드 작성 페이지를 보면 언어 선택을 할 수 있는 창이 있습니다. 익숙하신 ..
안녕하세요. 09LABS입니다. 오늘은 iOS 프로그래밍의 기초 강의를 시작해보려고 합니다. iOS는 원래 Object-C 언어로 개발했었지만 2014년 애플 WWDC에서 공개된 프로그래밍 언어인 Swift로 개발하게 됩니다. 코드 내부에서 C나 Object-C 코드를 섞어서 사용할 수 있다고 합니다만.... C언어를 주로 사용하는 저로서는 아직 확인할 길이 없네요. 우선 Swift는 크게 두 가지로 나눌 수 있습니다. Swift 5는 쉽게 생각하면 C언어, JAVA와 같은 프로그래밍 언어이고 SwiftUI는 UI를 프로그래밍하는 언어입니다. SwiftUI는 기존의 iOS 앱 개발 시 스토리보드를 사용하여 UI를 개발하였지만 대규모일 경우 협업, 유지 보수에 어려움이 있어 SwiftUI를 사용하게 됩니다..
안녕하세요. 09LABS입니다. 저번 포스팅에서는 간단하게 SQLite3 API를 이용하여 C언어와 연동하는 방법에 대해 알아봤습니다. 이번 포스팅에서는 데이터베이스에 존재하는 테이블 유무를 알아내는 방법에 대해 알아보겠습니다. 데이터베이스는 간단하게 설명을 하면 크게 데이터베이스 - 테이블 - Column / Row 로 나눌 수 있습니다. SQLite3, MariaDB, MongoDB등 데이터베이스는 여러가지가 있지만 본인이 사용하기 편한 것을 사용하면 되며, 저는 주로 임베디드 시스템에 사용하기 때문에 비교적 가벼운 SQLite3를 선택했습니다. 자 그럼 본론으로 들어가서 데이터 베이스에 존재하는 테이블을 확인하는 방법에 대해 알아보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14..
안녕하세요. 09LABS 입니다. 오늘은 Database 중 하나인 SQLite3를 C언어를 사용하여 연동하는 방법에 대해 알아보겠습니다. 우선 sqlite3 라이브러리를 설치해줘야 합니다. 1 $ sudo apt-get install libsqlite3-dev cs sqlite3 라이브러리 설치가 완료되면 C 코드를 작성합니다. 1 $ vim sqlite_test.c cs 편집기는 자주 사용하시는 것으로 하면 됩니다. 저는 vim 편집기를 주로 사용합니다. 먼저 전체 코드를 한번 보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include #include int main(void){ int rc = 0; sqlite3 *db; rc = sqlite3_open(..
- Total
- Today
- Yesterday
- 자작
- 3D 프린터
- 퓨전360
- 오픈소스
- C언어
- 리눅스
- 3d프린터
- DIY
- ESP-IDF
- Hypercube
- 프린터
- 프로젝트
- 라즈베리파이
- 코딩테스트
- 오픈소스 하드웨어
- fusion360
- 3D Printer
- 3D
- 설계
- IOT
- esp32
- 해커랭크
- C++
- ESP
- Fusion 360
- 하드웨어
- 쏘카
- SQLITE3
- Arduino
- 아두이노
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |