본문 바로가기

임베디드 시스템반도체 개발자 과정 by 서울기술교육센터/후기

(42)
62일차 9월 19일 라즈베리파이 led_on_off_button, led이라는 인스턴스가 stack에 할당됨. 이걸 stack이 아니라 heap 영역에 만들어서 활용해보자. Button *led_on_off_button (--> 주소값을 가지고 있음.) = new Button(27); 클래스 포인터 변수 이름 생성자 동작하는 Button 인스턴스가 heap에 생김. 그 중 첫번째 주소를 stack 속 포인터변수에 대입함. Button은 delete를 만나기 전까지 계속 유지. ->는 멤버접근연산자 heap 영역에 생성해서 리턴한다. 따라서 함수가 끝나도 사라지지 않기 때문에 이러한 형태도 가능하다. 같은 맥락으로 delete도 함수화 시켜 사용가능하고 Led에 대해 makeLedIns 함수를 선언해서 사용할 수..
61일차 9월 16일 라즈베리파이 https://youtu.be/lPyY8hAvqXM https://github.com/316415/StandLight_Clock_Temperature_Distance_PWM.git GitHub - 316415/StandLight_Clock_Temperature_Distance_PWM: 탁상용 스탠드에 시계 추가, 온습도 센서 추가, 초음 탁상용 스탠드에 시계 추가, 온습도 센서 추가, 초음파 센서 추가, 모터 추가. Contribute to 316415/StandLight_Clock_Temperature_Distance_PWM development by creating an account on GitHub. github.com
60일차 9월 15일 라즈베리파이 5일차 과제 온도가 높으면 warning message를 LCD에 출력 + LED를 끄거나 깜빡거리게. 구조에 어긋나지 않게 코딩하고 싶었으나, 필요하다 생각돼 구조가 바뀜 //main.cpp #include #include #include "Button.h" #include "Led.h" #include "Listener.h" #include "Controller.h" #include "View.h" #include "LCD.h" #include "ClockView.h" #include "ClockService.h" #include "ClockCheck.h" #include "I2C.h" #include "DHT11.h" #include "DHT_Data.h" #include ..
59일차 9월 14일 라즈베리파이 4일차 Ctrl + Insert 한 줄 복사 Shift + Insert 한 줄 붙여넣기 (VS Code) 폴더열기로 다시 지정 rm -rf .git으로 전부 제거한 뒤 다시 시작함 remote -v는 기존 설정값을 보여주는 것이고 ls-remote는 실제로 통신해서 보여주는 것으로 좀 더 시간이 걸림 #include #include #include // #include "Button.h" // #include "Led.h" // #include "Listener.h" // #include "Controller.h" // #include "View.h" // #include "Service.h" int main() { std::cout
58일차 9월 13일 라즈베리파이 3일차 github에서 fork를 하면 그 상태 그대로 내 저장소로 온다. //CMakeLists.txt cmake_minimum_required(VERSION 3.0.0) project(StandLight) add_executable(${PROJECT_NAME} ./src/main.cpp ./src/app/Listener/Listener.cpp ./src/hw/Button/Button.cpp ./src/hw/Led/Led.cpp ) target_include_directories(${PROJECT_NAME} PUBLIC ./src/app/Listener ./src/hw/Button ./src/hw/Led ) target_link_libraries(${PROJECT_NAME} P..
21일차 7월 19일 이번 주는 c언어 수업을 진행한다. c언어를 왜 배울까? 하드웨어 엔지니어가 모른다는 건 어불성설. 보드 설계를 했을 때, 동작 여부를 테스트해야 하고 소프트엔지니어한테 릴리즈해야 함. c언어를 다룰 줄 모르면 소프트엔지니어가 보드 디버깅을 해야 함. 개발 스케쥴이 밀리게 되고 악영향이 큼. 임베디드(내장된; chip, board에서 하드웨어를 직접 컨트롤하는 시스템이랑 소프트웨어를 말함) 임베디드 쪽 관련해서는 전부 다 c언어 베이스다. 우리 교육이 임베디드 시스템반도체 과정이니 당연히 배운다. MCU는 왜 배우나? 앞으로 AVR/ARM을 배울 것. MCU는 모든 임베디드 시스템에 들어가기 때문이다. MCU에 관한 검증은 전부 c언어를 이용해야 한다. 또한 현업 환경에서 가장 주된 개발환경..
20일차 7월 18일 과제 피드백 -숫자가 들어갔을 때에는 - 표시보다는 @ 표시가 가독성이 좋다. ex) LED 구동 회로 설계 - 24V >> LED 구동 회로 설계 @24V or at 24V -회로 설계에 있어서 레퍼런스 값 변경을 한 경우 복붙의 과정에서 오류가 날 수 있다. 문제가 될 수 있으니 annotation을 진행하는 게 깔끔하다. //AMBIENT LIGHT 란, 차량의 Door & Center Fascia에 설치되는 간접 조명 방식의 MOOD 조명을 말한다. //크래쉬패드(Crash Pad)는 자동차 내부에서 엔진룸의 각종 기계장치가 보이지 않도록 가리기 위한 부품. 자동차 부품업체들은 디자인 개념을 도입해 다양한 변화를 모색. 보통 ‘대시보드’라고 부르며 충돌 시 탑승자의 충격을 완화해줄 뿐..
11일차 7월 5일 전자회로에 대한 내용으로 들어갔다. 약 17일간 진행된다는데 전기/전자 관련 내용을 공부하는 건 대학교 1학년 때 교양에서 배운 대학물리 이후로 처음인 거 같다. 예습까지는 아니더라도 복습을 통해 확실하게 수업을 이해하고 넘어가는 게 중요할 거 같다. Embedded system이란 무엇인가. 여러가지 하드웨어가 들어가 있고 그걸 실행하는 OS도 있고, OS를 토대로 응용프로그램도 깔려있는 것. 임베디드가 아닌 것을 찾기가 힘들 정도로, 많은 가전제품, 전자제품은 임베디드 시스템이라고 할 수 있다. //아두이노는 OS를 porting 할 수 없다. 임베디드 시스템이라고 할 수 없다. 제품은 어떻게 만들어지는가. 사람들은 디자인, 가성비 정도가 높은 우선순위의 판단 근거일 것이다. 그렇다면 제품..