전체 글 79

최종 발표자료 : 모션 인식을 활용한 무대 장치 제어 시스템

개발환경: Xilinx Vivado, SystemVerilog, Vitis, STM32 Cube IDE, PythonBOM : Digilent Basys3 FPGA Board, Zybo Z-20 STM32 Nucleo-F11, PCAM, Logic Analyzer, 주제 : 사용자의 모션을 인식하고, 벡터 연산 처리를 통해 화면에 출력되는 무대효과를 제어하는 시스템 PPT 자료 : 코드 :https://github.com/cong2738/HandBand GitHub - cong2738/HandBand: HandBand : ISP_RTL_Design, Embedded SystemHandBand : ISP_RTL_Design, Embedded System. Contribute to ..

[Harman 세미콘 아카데미] Day_101(Embedded)

오늘은 OV7670 카메라를 Embedded 보드에서 활용해 보겠습니다.메인 Embedded board의 DCMI(Digital Camera Interface)를 확인해 보면, 카메라 모듈로 부터 8bit, 16bit의 Data를 수신합니다. 8비트를 기준으로 사용하고, 16bit는 RGB565를 말합니다. 총 32bit의 data가 레지스터에 저장됩니다. 또한, DMA에 의해 내부 Buffer에 접근합니다. DMA는 어제의 내용과 같이 CPU의 보조장치로, CPU가 할 일을 DMA가 대신하여 CPU가 다른 명령어(코드)를 수행할 수 있도록 합니다. Camera의 데이터가 DCMI에 들어오게 되면, DMA Controller가 flag를 세우게 됩니다. 그러면, 32bit의 bus가 활성화 되며 Ca..

[Harman 세미콘 아카데미] Day_100(Embedded)

오늘은 어제에 이어, lil9341 Library를 활용한 LCD 출력을 이어서 하겠습니다.아래의 코드는 ILI library로 LCD에 RGB를 차례로 출력하고, C파일로 변환된 이미지를 LCD의 크기에 맞게 출력합니다. 또한, Write String 함수를 통해, 원하는 위치에 글을 출력할 수 있습니다. Picture Size -> 240x320 자르기 -> ezBMP RGB56516bit 변경 -> HeaderFile로 변경 후 ILI Library에 추가++ 사진에대한 header File을 추가하여 C로 된 코드를 받아 출력 진행 & 글 출력 "영희" 이미지 출력 DMA (Direct Memory Access) : CPU를 보조하는 장치1. DMA 사용하지 않을 경우 : CPU가 Memoey..

[Harman 세미콘 아카데미] Day_99(Embedded)

오늘부터는 FK743M5-XIH6 보드를 활용합니다.STM32 ARM Cortex - M7을 사용하고 있고, 16Kb의 Instruction Cache와 16Kb의 Data Cache가 존재하여 빠른 속도를 자랑합니다. RCC -> System Clock 설정 -> PLLCLK 480MHz 설정 (Datasheet 참고)Cortex_M7 -> Cache I, D Enable (Cache 사용)GPIO_PIN_13 -> GPIO_OUTPUT (내장 LED) 아래의 UART 설정과 LED Toggle 설정을 통해, 보드가 잘 동작함을 확인할 수 있고, UART 또한 잘 됨을 확인할 수 있습니다. 또한, LCD(SPI_TFT Module)를 활용하기 위해 ili9341의 PINOUT을 설정해 주고, ..

[Harman 세미콘 아카데미] Day_98(Embedded)

어제의 StopWatch에 Mode에 따른 Watch 기능도 추가합니다.기존의 Run/Stop/Clear 동작이 가능한 StopWatch에서 버튼 입력을 통해 '12:00'을 출력하며 시와 분을 출력하는 Watch 모드로 변경하도록 합니다. ++ 추가 : Model의 Type을 선정할 때, state 정보와 같은 상태 값 -> MessageBox 활용, 시계 Data와 같은 실제 데이터 값 -> MailBox 활용 (이유 : MessageBox는 가벼운 신호 전달용, MailBox는 구조체 데이터에 대한 안전한 접근 가능) 그래서, 버튼 입력에 따라 Mode를 변경할 수 있도록 정보를 저장하는 Model이 필요합니다. 아래의 Model은 State에 대한 정보를 담기 때문에, MessageBox의 형..

[Harman 세미콘 아카데미] Day_97(Embedded)

Process VS Thread : Process 내부에 여러 개별 Thread가 서로 공유하는 전역 메모리를 가지고 함께 동작을 수행하도록 함 Protocol : 통신을 하기 위한 규약IPC (Inter Process Communication) : Process 간 통신 방법 SW Stack 구조 : Stopwatch에 대한 Application 부분을 Framework 구조로 설계하면, 추후 코드의 유지 보수성이 좋아집니다. 그래서, 지금 설계하는 Listener, Controller, Presenter, Model의 Sequnce구조를 통해 설계하면 팔요한 부분만을 수정해가며 코드의 버전 관리나 오류 해결에 큰도움이 됩니다. 어제에 이어, 버튼을 누르면 RUN /STOP /CLEAR를 하는 S..

[Harman 세미콘 아카데미] Day_96(Embedded)

RTOS (Real Time Operation System) : 일의 우선순위를 정해, 정해진 시간에 정확한 동작을 지연 없이 수행하기 위한 설정 ※ 쓰레드와 쓰레드 간의 공유 자원 : 하나의 쓰레드가 점유하고 있으면 상호배재(Mutex / Semaphore)를 통해 알림 ㄴ Mutex : 한 번에 하나의 쓰레드만 자원을 사용하도록 잠금 설정 ㄴ Semaphore : 카운터 기반 자원 제어 도구 Thread는 서로 공유 메모리의 queue를 참조하고, 이 메모리에 접근할 때에는 Mutext의 방식으로 접근합니다. 한번에 하나의 Thread만이 접근하여 데이터 충돌이나 동시 접근의 오류를 방지하고, 이러한 동작을 통해 Multi-tasking 동작을 수행합니다. Thread에 대한 코드는 M..

STM32 미니 프로젝트 발표자료 : 디지털 금고 설계

개발환경: STM32 CUBE IDE, C languageBOM : stm32F411RE Nucleo, HC-SR04(초음파 센서), PIEZO Buzzer, EZ Motor R300, Logic Analyzer 주제 : STM32보드를 활용한 디지털 금고 설계. 여러 모듈을 활용하기 위한 Login / Security 모드를 구조체와 Sequence 구조를 활용해 설계 PPT 자료 : 코드 : ap -> inc : Header Fileap -> src : source codedriver : HW Driver Code https://github.com/Heeju99/embedded/tree/main/250630_Mini_Project/Core embedded/250630_Mini_Project/Co..

[Harman 세미콘 아카데미] Day_94(Embedded)

오늘은 부저를 달아 보겠습니다. PB4의 TIM3의 Channel 1을 PWM Output으로 설정하여, 음의 높낮이 조절을 통해 소리를 출력합니다. 보드 내부의 100MHz SystemClock을 100의 Prescaler를 설정하면 1MHz의 Clock 1개를 만들 수 있습니다. 이를 카운트하여, 저희가 설정하는 ARR의 값과 동일해 지면 0으로 떨어뜨리는 것을 반복하며 원하는 시간을 만들어 낼 수 있습니다. 이때, ARR값이 카운트 값과 동일해져 overflow가 발생하고 0으로 떨어질 때 ARR을 변경할 수 있도록 ARP를 Enable해 줍니다. ex) Prescaler == 100 -> 1MHz 생성 (1us) , ARR = 1000 -> (1us*1000 = 1ms) => 1ms ,1..