๋ชจ๋ ๊ฒ์ ์ ์๊ฐ XNUMX์ฐจ ์์ฅ์์ ํฅ๋ฏธ๋ก์ด ์ฅ์น์ธ Smart Response XE(
์ด๋ฌํ ์ฅ์น๋ ๋ช ๋ ์ ์ ๋จ์ข ๋์์ผ๋ฉฐ, ํ๊ต์์ ๊ฐ๊ฐ $100-$200์ ๊ตฌ์ ํ ์ ํ์ด ํ์ฌ eBay์์ $10 ์ดํ์ ๊ฐ๊ฒฉ์ผ๋ก ํ๋งค๋๊ณ ์์ต๋๋ค. ํ๋์จ์ด๋ ๊ดด์ง ์คํ์ ๋งค์ฐ ์ ํฉํฉ๋๋ค.
- 60ํค ํค๋ณด๋
- 384ร136์ ํด์๋, ํฝ์ ๋น 2๋นํธ์ ๋์คํ๋ ์ด - BC, CGA์ ์ ์ฌํ์ง๋ง 4๊ฐ์ง ์์์ ์๋์ง๋ง ๋ฐ๊ธฐ ๊ทธ๋ผ๋ฐ์ด์
- ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ ATmega128RFA1(128kB ํ๋์ ๋ฉ๋ชจ๋ฆฌ, 4kB ROM, 16kB RAM, 802.15.4 ํธ๋์๋ฒ)
- ์ธ๋ถ(์ ์ฒด ์ฅ์น๊ฐ ์๋ ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ ๊ด๋ จ) SPI ์ธํฐํ์ด์ค๊ฐ ์๋ 1๋ฉ๊ฐ๋นํธ(128ํฌ๋ก๋ฐ์ดํธ) ํ๋์ ๋ฉ๋ชจ๋ฆฌ
- AAA ๋ถํ 4๊ฐ๋ฅผ ๋ฃ์ ์ ์๋ ์๋ฉ๊ณต๊ฐ.
๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ์ ์ด๋ฆ์ ๋ณด๋ฉด AVR ์ ํ๊ตฐ์ ์ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํฉ๋๋ค. ์ฆ, ์ฅ์น๋ฅผ Arduino์ ํธํ๋๊ฒ ๋ง๋๋ ๊ฒ์ ์ฌ์ํ ์์
์ด์์
๋๋ค.
๋ด์ค์์
๊ทธ๋ฌ๋ ์ ์๋ ์ฅ์น์์ ํ๋ ์ดํ๋ ๊ฒ์ด ์๋๋ผ ์ฐ๊ตฌํ ์ ์๋ ๊ธฐํ์ ๋ ๊ด์ฌ์ด ์์ต๋๋ค.
- ์ง๋ ฌ SPI ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ํ๋์ ๋ฉ๋ชจ๋ฆฌ
- AVR์ฉ ๋ถํธ๋ก๋
- ํ์ค 802.15.4
์๊ฐ๋ ๊ธ์ฐ๊ธฐ๋ถํฐ ์์ํ๋ค.
์ด๊ฒ์ Arduino ๋ถํธ๋ก๋๋ฅผ ์
๋ก๋ํ๊ธฐ์ ์ถฉ๋ถํ์ง๋ง ์ค์ผ์น๋ ์๋๋๋ค. ์ง๋ ฌ ํฌํธ๊ฐ ๊ฑฐ๊ธฐ์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ผ๋ฏ๋ก ์ผ์ด์ค๋ฅผ ์ด์ง ์๊ณ ๋ ์ฌ์ ํ ํ ์ ์์ต๋๋ค. ๋ํ ์ฒซ ๋ฒ์งธ ์ง๋ ฌ ํฌํธ์ TX0 ๋ฐ RX0 ๋ผ์ธ์ ํค๋ณด๋ ๋งคํธ๋ฆญ์ค์ ํด๋ง ๋ผ์ธ, ์ฆ ๋์คํ๋ ์ด ์ธก๋ฉด์ ๊ธฐ๋ฅ ํค๋ฅผ ํด๋งํ๋ ๋ผ์ธ๊ณผ ๊ฒฐํฉ๋ฉ๋๋ค. ํ์ง๋ง ๋น์ ์ ๋ฌด์์ ํ ์ ์์ต๋๊น? ์ ์๋ ์ด๊ฒ์ ๋ง๋ค์์ต๋๋ค:
๊ทธ๋ JTAG ๋ผ์ธ์ ๊ฑฐ๊ธฐ๋ก ๊ฐ์ ธ์๊ณ ์ด์ ๋ฐฐํฐ๋ฆฌ ํจ์ ์ด ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ผ์น๋ฅผ ์
๋ก๋ํ ์ ์๋๋ก ๋ ์ง๋ ฌ ํฌํธ๋ฅผ ๋ชจ๋ ๋์ผํ ์ปค๋ฅํฐ์ ์ฐ๊ฒฐํ๊ณ ์ค์์น๋ ์ถ๊ฐํ์ต๋๋ค. ๋ฐฐํฐ๋ฆฌ๊ฐ ์ค์น๋ ์ํ์์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ฅ์น๋ฅผ ๋๋ ๊ฒ์ด ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฉ๋ ์ธ๋, ๋ค์ฉ๋ ์นผ, ๊ธ๋ฃจ๊ฑด์ ์ฌ์ฉํ์ฌ ์์ ํ๋ ๋ฐ ๊ฝค ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก "๋ฌด์ "์ผ๋ก ์ค์ผ์น๋ฅผ ์ ๋ก๋ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ํธ๋ฆฌํ๋ฏ๋ก ์ด๋ฅผ ์ํ ๋ฌด์ธ๊ฐ๋ฅผ ์๊ธํ ๋ฐ๋ช ํด์ผ ํฉ๋๋ค.
Arduino IDE๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ์ค์ผ์น๋ฅผ ์
๋ก๋ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ค์ํ ๋ฐฉ๋ฒ์ ์๋ํ ๋์ ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค. ์ฅ์น์๋ SPI ์ธํฐํ์ด์ค๊ฐ ์๋ 128KB ํ๋์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ (์ ์๋ ์ด๋ฏธ ์ธก๋ฉด์ ์ปค๋ฅํฐ๊ฐ ์๋ ์ฅ์น ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ญ์์ค), ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฒํผ๋ก ์ฌ์ฉํ๊ณ ๋ฌด์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ๋๋ค. ๋ค๋ฅธ ์ฅ์น๋ก ์ฑ๋์ ๋ณด๋ด์ธ์. ์๋ ํ์ธ์ ์ฌ์ด๋น์ฝ์ ๋๋ค.
๋ผ๋์ค ์ฑ๋ ๋ฐ ๊ธ๊ผด ์์
์ ์ํ ์ฝ๋๋ฅผ ์์ฑํ ํ ๋ก๋๊ฐ 4KB๋ณด๋ค ๊ธธ์ด์ก์ต๋๋ค. ๋ฐ๋ผ์ HFUSE ๊ฐ์ 0xDA์์ 0xD8๋ก ๋ณ๊ฒฝํด์ผ ํ์ต๋๋ค. ์ด์ ๋ถํธ๋ก๋์ ๊ธธ์ด๋ ์ต๋ 8KB๊น์ง ๊ฐ๋ฅํ๋ฉฐ ์์ ์ฃผ์๋ ์ด์ 0x1E000์
๋๋ค. ์ด๋ Makefile์ ๋ฐ์๋์ง๋ง ์ฑ์ธ ๋๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
ATmega802.15.4RFA128์ 1 ํธ๋์๋ฒ๋ ์๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์๋ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ฑ๋ 15์ 26์ WiFi ๊ฐ์ญ์ ๊ฐ์ฅ ๋ ์ทจ์ฝํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ผ๋ฉฐ ์ ์๋ ๋ ๋ฒ์งธ ์ฑ๋์ ์ ํํ์ต๋๋ค. ๋ฉด์ฑ
์กฐํญ: ๋ฒ์ญ์๋ ZigBee๋ฅผ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋จ์ํํ๋ ๊ฒ์ด ํ์ฉ๋๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค. ์ข ๋ ํ๋ก๊ทธ๋๋ฐ์ ํด์ ์์ ํ ๊ตฌํํด์ผ ํ์ง ์์๊น์?
์ฒซ ๋ฒ์งธ ์ฅ์น์์๋ STK500 ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์ ํ ์ํ ๋จธ์ ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ ์ก ๋ฐ ์์ ๋๋ ๋ฉ์์ง๋ ์๊ธ์์กฑํ์ง๋ง ์ผ๋ถ๋ ์ด์ ์ ์ฑ๋์ ํต๊ณผํ ๋ฉ์์ง์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋ํ์ ๋ํ ์ค๋ช
์ด ์ ๊ณต๋ฉ๋๋ค.
์ด ๋ํ์ ์ค์ํ ๊ตฌ์ฑ ์์๋ ๋์ ์ฅ์น์ ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋กํ ํจํท์ ์ ์กํ๋ ๊ฒ์ ๋๋ค. AVR ์ ํ๊ตฐ์ ๋จ์ ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ์ ๊ฒฝ์ฐ ํ์ด์ง ํฌ๊ธฐ๋ 128๋ฐ์ดํธ์ด์ง๋ง ATmega128RFA1์ ๊ฒฝ์ฐ 256๋ฐ์ดํธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ SPI ํ๋กํ ์ฝ์ ํตํด ์ฐ๊ฒฐ๋ ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ๋์ผํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ฅ์น์ ํ๋ก๊ทธ๋จ์ ์ค์ผ์น๋ฅผ ์ ๋ก๋ํ ๋ ์ฆ์ ๋ ๋ฒ์งธ ์ฅ์น๋ก ์ ์กํ์ง ์๊ณ ์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋๋ค. Arduino IDE๊ฐ ํญ๋ชฉ์ ์ ํ์ฑ์ ํ์ธํ๋ฉด ๊ฑฐ๊ธฐ์ ์์ฑ๋ ๋ด์ฉ์ด ์ ์ก๋ฉ๋๋ค. ์ด์ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์ ์ฑ๋์ ํตํด ๋ ๋ฒ์งธ ์ฅ์น๋ก ์ ์กํด์ผ ํฉ๋๋ค. ๋์์ ์์ ์์ ์ ์ก์ผ๋ก์ ์ ํ๊ณผ ๊ทธ ๋ฐ๋๋ก์ ์ ํ์ด ์์ฃผ ๋ฐ์ํฉ๋๋ค. STK500 ํ๋กํ ์ฝ์ ์ง์ฐ์ ๋ฌด๊ด์ฌํ์ง๋ง ๋ฐ์ดํฐ ์์ค์ ํ์ฉํ์ง ์์ต๋๋ค(์ด์ํ์ง๋ง ์์์ ์ง์ฐ์ด ๋ฐ์ดํฐ ์ ์ก์๋ ์ํฅ์ ๋ฏธ์น๋ค๊ณ ๋งํ์ต๋๋ค). ๊ทธ๋ฆฌ๊ณ ๋ฌด์ ์ ์ก ์ค ์์ค์ ๋ถ๊ฐํผํฉ๋๋ค. ATmega128RFA1์๋ ์ ์ก์ ์ ํ์ฑ์ด ์์ฌ์ค๋ฌ์ธ ๋ ๋ฐ๋ณต๋๋ ์์ฒญ์ ํ๋์จ์ด๋ก ๊ตฌํํ๋ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ง๋ง ์์ฑ์๋ ์ด๋ฅผ ์ํํธ์จ์ด์์ ์ง์ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๊ทธ๋ ํจ์ฌ ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ๋ฐฉํฅ๋ณด๋ค ํ ๋ฐฉํฅ์ผ๋ก ํ๋ฅด๋ ํ๋กํ ์ฝ์ ๊ฐ๋ฐํ์ต๋๋ค.
์๋ฒฝํ์ง๋ ์์ง๋ง ์๋ํฉ๋๋ค. 256๋ฐ์ดํธ ํ์ด์ง๋ 125๊ฐ์ ์ธ๊ทธ๋จผํธ๋ก ๋๋์ด์ง๋ฉฐ, ๊ฐ ์ธ๊ทธ๋จผํธ๋ ํจํท์ผ๋ก ๋ฌด์ ์ผ๋ก ์ ์ก๋ฉ๋๋ค. ํจํท์ ์ต๋ 64๋ฐ์ดํธ์ ๋ฐ์ดํฐ์ ๊ธธ์ด 0๋ฐ์ดํธ, CRC 3๋ฐ์ดํธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ด์ง ๋ฐ ์ธ๊ทธ๋จผํธ ๋ฒํธ(XNUMX~XNUMX)์ ํจ๊ป XNUMX๋ฐ์ดํธ ๊ธธ์ด์ ์กฐ๊ฐ์ด ์ฌ๊ธฐ์ ๋ฐฐ์น๋ฉ๋๋ค. ์์ ์ฅ์น์๋ ์์ ๋ ์ธ๊ทธ๋จผํธ ์๋ฅผ ์ถ์ ํ ์ ์๋ ๋ณ์๊ฐ ์์ผ๋ฉฐ, XNUMX๊ฐ ์ธ๊ทธ๋จผํธ๊ฐ ๋ชจ๋ ๋์ฐฉํ๋ฉด ์ ์ก ์ฅ์น๋ ์ ์ฒด ํ์ด์ง๊ฐ ์์ ๋์๋ค๋ ํ์ธ์ ๋ฐ์ต๋๋ค. ํ์ธ ์์(CRC๊ฐ ์ผ์นํ์ง ์์) - ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๋ณด๋ ๋๋ค. ์ผ์ด๋ธ์ ํตํด ์ ์กํ ๋๋ณด ๋ค ์๋๊ฐ ํจ์ฌ ๋น ๋ฆ ๋๋ค. ๋ณด๋ค:
๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ค์ผ์น๋ฅผ ์ ๋ก๋ํ๊ธฐ ์ํด ์ผ์ด๋ธ์ ์ฅ์น์ ์ฐ๊ฒฐํ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง๊ณผ ๊ฐ์ด CP2102์ ์ด๋ฌํ ์ธํฐํ์ด์ค ์ปจ๋ฒํฐ๋ฅผ ๋ด๋ถ์ ๋๊ณ ๋ง์ดํฌ๋ก USB ์ผ์ด๋ธ์ ์ฐ๊ฒฐํ๊ณ ๋ถ๋ฆฌํ ๋ ํ์ ๊ฒฌ๋ ์ ์๋๋ก ๋ณด๋์ ์ ์ฐฉํฉ๋๋ค.
๋ํ 3,3V ์์ ๊ธฐ๊ฐ ์์ต๋๋ค(6V ์ ์ ๊ณต๊ธ ์ฅ์น๊ฐ ์๋ ์ฅ์น์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ - ๋์ผํ ์์ ๊ธฐ๊ฐ ์๊ณ ๋ ๊ฐ์ ๋ค์ด์ค๋๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ ๋ค์ด์ค๋๊ฐ ์ฅ์น์ ์ ์์ ๊ณต๊ธํ ์ง ์๋์ผ๋ก ์ ํํ ์ ์๋ ๊ฒฝ์ฐ). . XNUMX๊ฐ์ LED๋ฅผ ๋ชจ๋ ์ธํฐํ์ด์ค ์ปจ๋ฒํฐ ๋ณด๋์์ ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ ์ ๋ฐฐํฐ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ๋ก๋ํ๊ณ ํค๋ณด๋ ํด๋ง์ ๋ฐฉํดํ๊ณ SPI ์ธํฐํ์ด์ค๋ฅผ ํตํด ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ํฉ๋๋ค.
๋ชฉํ๋ฅผ ์ถ๊ตฌํ๋ ๊ฒ์ ๊ทธ๊ฒ์ ๋ฌ์ฑํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ํฅ๋ฏธ๋ก์ด ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ๋ฒ์ค์ ๋ํ ๋๋ด์ ํ์ํ์ง ์์ต๋๋ค). ์ ์๋ AVR ๋ถํธ๋ก๋, SPI ํ๋์ ๋ฉ๋ชจ๋ฆฌ, STK500 ํ๋กํ ์ฝ ๋ฐ 802.15.4 ํ์ค์ ๋ํด ๋ง์ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค.
์์์ ์ค๋ช
ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธ์ ๋ค๋ฅธ ๋ชจ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ถ์ฒ : habr.com