F๐Ÿ’ปW/Coding 9

STM32 ๊ฐœ๋ฐœ ์‹œ, delay ํ•จ์ˆ˜ ์ง์ ‘ ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด์ž !

STM32F205RBT6 ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด 120 MHz ์˜ ์ตœ๋Œ€์ฃผํŒŒ์ˆ˜๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค. 1us์˜ ๋”œ๋ ˆ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์‹œ , asm("nop"); // CPU์—๊ฒŒ ์•„๋ฌด๋Ÿฐ ์ž‘์—…๋„ ํ•˜์ง€ ๋ง๋ผ๋Š” ๋ช…๋ น์–ด ๋™์ž‘์„ ์ตœ๋Œ€์ฃผํŒŒ์ˆ˜๋งŒํผ ์‹คํ–‰ํ•œ๋‹ค ๋งŒ์•ฝ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ†ต์‹ ๊ณผ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค๋ฉด, ์Šค์ฝ”ํ”„์—์„œ ํ™•์ธํ•˜๋ฉด ์‚ด์ง์˜ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค! 1us ๋ฅผ ๊ตฌํ˜„ํ–ˆ์œผ๋‹ˆ, 10us->100us ->1ms ๊นŒ์ง€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. stm์˜ ๋‚ด์žฅ ๋”œ๋ ˆ์ด ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„๋•Œ, ๋งŒ๋“ค๋ฉด ์ข‹๋‹ค !

F๐Ÿ’ปW/Coding 2023.12.06

Atmega๋กœ UART, SPI ํ†ต์‹  ๊ตฌํ˜„

Atmega8A ์นฉ์„ ์‚ฌ์šฉํ•ด UART, SPI ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Atmega๋ฅผ Master์นฉ์œผ๋กœ ์„ค์ •ํ•˜๊ณ , GPIO ํ•€์„ ํ™œ์šฉํ•ด ์—ฐ๊ฒฐ๋œ Slave์นฉ๋“ค์˜ ํ•€๋“ค๊นŒ์ง€ ์ปจํŠธ๋กค ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•  ์‹œ ์ž‘๋™์ด ์•ˆ ๋ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค,,! ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์‹œํŠธ์—์„œ ๊ธฐ์ดˆ ํ†ต์‹  ์ฝ”๋“œ๋ฅผ ์–ด์…ˆ๋ธ”๋ฆฌ์ฝ”๋“œ์™€ C์ฝ”๋“œ๋กœ ๊ฐ„๋žตํ•˜๊ฒŒ ๊ธฐ์ˆ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ๊ทธ ์ฝ”๋“œ๋ฅผ ์ผ๋ถ€ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ–ˆ์œผ๋‹ˆ, ์›ฌ๋งŒํ•˜๋ฉด ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ๋จผ์ € ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :> 1. SPI ์„ค์ • ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , GPIOํ•€์„ ์กฐ์ž‘ํ•ด ์ง์ ‘ SPI ๊ตฌํ˜„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. - SPI_MasterInit() : ํ•€ ์„ค์ • SCK, MOSI, NSS๋ฅผ Output์œผ๋กœ์„ค์ •..

F๐Ÿ’ปW/Coding 2023.12.04

[STM32F030C6T6] Bootloader ๊ตฌํ˜„

ํŠนํžˆ ๋ถ€ํŠธ์ฝ”๋“œ๋Š” ์ตœ๋Œ€ํ•œ ๊ฐ€๋ณ๊ณ  ์งง๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ. ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Flash, UART ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ง€์šฐ๋Š” ๊ฒƒ์ด ์ข‹์Œ. ์ž„๋ฒ ๋””๋“œ ๋ณด๋“œ ์ „์› -> ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ(ROM)์—์„œ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์ž‘(H/W ์ดˆ๊ธฐํ™”)->๋ฆฌ๋ˆ…์Šค์ปค๋„์„ ๋ฉ”๋ชจ๋ฆฌ(RAM)์— ์ ์žฌ=์‚ฌ์šฉ์ž๋ช…๋ น์ฒ˜๋ฆฌ์ค€๋น„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” mcu๋Š” STM32F100x6. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ์‹œํŠธ์˜ Device overview๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ํ‘œ๊ฐ€ ๋‚˜์˜จ๋‹ค. Memory mapping์€ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฐ mcu๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ ค์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜๋ฉด ์•ˆ๋จ! STM32F100Cx ์—์„œ 4์—ด์€ ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์„ธ๋ถ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ˆœ์„œ์ด๋‹ค. C6์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ๋‘๋ฒˆ์งธ ์—ด์„ ์ฐธ๊ณ ํ•˜๊ธฐ! ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ํ•จ์ˆ˜ - ์‹œ๋ฆฌ์–ผ๋กœ ์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ ..

F๐Ÿ’ปW/Coding 2023.03.30

์†๊ฐ€๋ฝ ์ œ์Šค์ฒ˜(1~5) ํ•™์Šต ๋ฐ ํ…Œ์ŠคํŠธ -> ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ์—๋Ÿฌ

model = load_model('model.h5', compile = False) ๋กœ ์ปดํŒŒ์ผ ์˜ต์…˜์„ ์คŒ - 1๋ถ„ 30์ดˆ๋™์•ˆ ๋…นํ™”๋  ๋•Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์€๋‹คimport cv2 import mediapipe as mp import numpy as np import time, os #actions = ['come', 'away', 'spin'] actions = ['one', 'two', 'three','four','five'] seq_length = 30 secs_for_action = 30 # MediaPipe hands model mp_hands = mp.solutions.hands mp_drawing = mp.solutions.drawing_utils hands ..

F๐Ÿ’ปW/Coding 2022.07.30