๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์ž๋™ ๊ณต๊ฐ ๋ˆ„๋ฅด๊ธฐ
ยท
๐Ÿ Python/Project
์ œ๋ชฉ ๊ทธ๋Œ€๋กœ๋‹ค. ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ๋„ ์ธ์Šคํƒ€, ํŠธ์œ„ํ„ฐ์ฒ˜๋Ÿผ ์ข‹์•„์š” ๋ฒ„ํŠผ์ด ์žˆ๋‹ค. ๋ฐ”๋กœ ๊ณต๊ฐํ•˜๊ธฐ ์ด๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ๋‚˜์™€ ์ด์›ƒ๋œ ๋ธ”๋กœ๊ฑฐ๋“ค์˜ ํฌ์ŠคํŒ…์— ๊ณต๊ฐ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋Š” ๋งคํฌ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์•„๋ž˜ ์˜์ƒ์€ ๋ฐ๋ชจ์˜์ƒ์ด๋‹ค. https://youtu.be/1_RBb1bjl48?si=VR2HDsotghQVmPEj
๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์„œ๋กœ ์ด์›ƒ ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ver1.0, ver2.0
ยท
๐Ÿ Python/Project
์ €๋Š” ํ‹ฐ์Šคํ† ๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ๋„ ์šด์˜ํ–ˆ๊ณ  ์š”์ƒˆ ์ •์‹ ์ด ์—†์–ด์„œ ํฌ์ŠคํŒ…์„ ๊ทธ๋งŒ ๋‘” ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค. ์˜ค๋žœ๋งŒ์— ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ๋ฅผ ๋“ค์–ด ๊ฐ”๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์ด ๋„ค์ด๋ฒ„์ธก์— ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ธ€์— ๋Œ€ํ•ด์„œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์Œ... ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์„œ๋กœ ์ด์›ƒ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ฒ„์ „ ๋ณ„๋กœ ์ •๋ฆฌํ•ด์„œ ํฌ์ŠคํŒ…ํ–ˆ๋Š”๋ฐ ๊ทธ๊ฑธ ์ „๋ถ€ ๋น„๊ณต๊ฐœ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ ๊ฒƒ. ์ž‘๋…„์— ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์ด์ง€๋งŒ, ๋งŒ๋“ค์–ด ๋†“์€๊ฒŒ ์•„๊นŒ์›Œ์„œ ํ‹ฐ์Šคํ† ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์„œ๋กœ์ด์›ƒ ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ver1.2 ๋กœ์ปฌ์„ ์ฐพ์•„๋ณด๋‹ˆ ์ดˆ๊ธฐ ๋ฒ„์ „์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Œ. QT๋ฅผ ์ด์šฉํ•ด ์˜ค๋ฐ€์กฐ๋ฐ€ํ•˜๊ฒŒ ํ•œ ๋ ˆ์ด์•„์›ƒ์—์„œ ์ „๋ถ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ์—ˆ์Œ. ์ € ๋•Œ๋Š” ์‚ฌ์šฉ์•ˆํ•˜๋Š” ๋„ค์ด๋ฒ„ ๊ณ„์ •์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ๋˜ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ. ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์„œ๋กœ์ด์›ƒ ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ve..
[ํŒŒ์ด์ฌ ํ”„๋กœ์ ํŠธ] Python Struct (feat.c์–ธ์–ด)
ยท
๐Ÿ Python/Project
์•ˆ๋…•ํ•˜์„ธ์š”. ์š”์ฆ˜ LoRa์—์„œ End Device์—์„œ ๋ฐ”์ดํŠธํ˜•์‹์œผ๋กœ ์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ„ํ•ด bytearray๋กœ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์ฉ๊ณ  ์žˆ๋Š”๋ฐ, ์—ฐ๊ตฌ์‹ค ํ˜•๋‹˜์ด Python Struct์„ ์ถ”์ฒœํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Python์ด ๊ต‰์žฅํžˆ ์ž˜ ๋งŒ๋“  ์–ธ์–ด์ด์ง€๋งŒ, ๋ฐ”์ดํŠธ๋‚˜ ๋น„ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค. bytearray๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜๊ฑฐ๋‚˜ checksum ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ PTSD๊ฐ€ ์™”๋Š”๋ฐ, Python Struct๋Š” ์ •๋ง ์‹ ์„ธ๊ณ„์— ๊ฐ€๊นŒ์› ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ Struct๋Š” C์–ธ์–ด Struct์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. https://docs.python.org/3/library/struct.html struct — Interpret bytes as packed bina..
[ํŒŒ์ด์ฌ ํ”„๋กœ์ ํŠธ] Python CSV ์ด์–ด์„œ ์ €์žฅํ•˜๊ธฐ, header ๋ถ™์ด๊ธฐ
ยท
๐Ÿ Python/Project
์•ˆ๋…•ํ•˜์„ธ์š”. ์ œ๊ฐ€ ํ†ต์‹  ์ „๊ณต์œผ๋กœ ํ”„๋กœํ† ์ฝœ ๋“ฑ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ์ •ํ™•ํ•œ ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ๋„ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์š”์ฆ˜ ๋Š๋‚๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹, ํ•„ํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์œผ๋Š” ๊ฒƒ์€ ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. UART Serial ํ†ต์‹ (9600, 115200bps)์„ ํ†ตํ•ด ๊ฐ€์žฅ ์‹ฌํ”Œํ•œ CSVํ˜•์‹์ด ํ˜„์žฌ ๊ตฌ๊ธ€์—์„œ ๊ฐ€์žฅ ๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์งœ๋Š” ๊ฒƒ์ด ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์— ์ €๋ฅผ ์œ„ํ•ด ๋ฉ”๋ชจ์žฅ ๋Š๋‚Œ์œผ๋กœ ์ฝ”๋”ฉ์„ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฒˆ์—ญ๊ธฐ์— ๋Œ๋ฆฐ ํ•œ๊ตญ๋ง์ด ์•ฝ๊ฐ„ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. https://docs.python.org/ko/3/library/csv.html csv — CSV ํŒŒ์ผ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ — Python 3.9.7 ๋ฌธ์„œ ์†Œ..
[ํ”„๋กœ์ ํŠธ]Pandas Dataframe์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •
ยท
๐Ÿ Python/Project
ํ˜„์žฌ ํด๋” ๊ฒฝ๋กœ ๊ฐ ํด๋”์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ „์ฒ˜๋ฆฌ ๋˜์ง€ ์•Š์€ CSV๊ฐ€ ์กด์žฌํ•œ๋‹ค. [JS01-210210_222834_p9_๊ณ ์ •, JS02-210210_222841_p9๊ณ ์ •, JS03-210210_222859_p9_๊ณ ์ •]๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋ณ‘ํ•ฉํ•˜๊ณ , ๋ถ„์„์— ์•Œ๋งž๊ฒŒ ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ค€๋‹ค. ์•„๋ž˜๋Š” ์‹คํ—˜ ๋ฐ์ดํ„ฐ๋กœ ์ค‘๊ฐ„์— ๋นˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์ด๊ณ , ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์ด ํ•„์š”ํ•œ ์›๋ณธ ๋ฐ์ดํ„ฐ์ด๋‹ค. ์ด์ œ๋ถ€ํ„ฐ Pandas๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ถ„์„์— ์•Œ๋งž๊ฒŒ ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•  ๊ฒƒ์ด๋‹ค. (์œ„ preprocessing data๊ฐ€ ์ตœ์ข… ๋ชฉํ‘œ ๋ฐ์ดํ„ฐ) * Section 1 * 0. ๋ชจ๋“  CSV๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. 1. Null/NaN(๊ฒฐ์†) ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. ex) (df : dataframe) df.isna.sum() ๋ฅผ ํ†ตํ•ด์„œ ๊ฒฐ์†๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ..
18์ง„์ˆ˜
'๐Ÿ Python/Project' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก