![NRF24L01-USBããã€ã¹](https://habrastorage.org/getpro/habr/post_images/171/28a/8be/17128a8becd3f170257c66462c84eefd.jpg)
å®æããããã€ã¹ãè³Œå ¥ããã»ãããèªåã§çµã¿ç«ãŠããããå®ãå ŽåããããŸãã ã¯ãããããŠèªå®¶è£œã®ããã€ã¹ã¯åžžã«ã§ã¯ãªãã誰ãããããã«èŠãããšã¯éããŸãããããã¯ãæ©åš/ææã®å ¥æå¯èœæ§ãšæã®çŽæ¥æ§ã«äŸåããŸãã
Atmelãã€ã¯ãã³ã³ãããŒã©ãŒãŸãã¯å°ãªããšãArduinoã«ç²ŸéããŠãããŠãŒã¶ãŒã¯ãEbayã§çŽ3ãã«ãããå®äŸ¡ãªUSBaspããã°ã©ããŒãããç¥ã£ãŠããã§ãããã
USBasp 2.0-3.3ãã«ãã®å®å®è£ 眮ä»ãã
USBasp 3.0ã¯ãã¹ã¿ãã©ã€ã¶ãŒã®ãªãå°ããªããŒãã§ãã ãŸããã³ãã¯ã¿ã«ã¯PD0ããã³PD1ããŒãïŒããŒããŠã§ã¢UARTïŒããããŸããã§ãããæã«æã£ãŠããªããããããã§ã¯èæ ®ããŸããã
以äžã§ã¯ãUSBaspããã°ã©ããŒãI2C-USBã¢ããã¿ãŒã«å€æããæ¹æ³ã湿床ããã³æž©åºŠã»ã³ãµãŒã®èªã¿åãæ¹æ³ãå ¥å/åºåïŒPIOïŒãRS232-USBããŒãã®ç°¡åãªã»ããã®ååŸæ¹æ³ãããã³ã¯ã€ã€ã¬ã¹ã»ã³ãµãŒãšå¶åŸ¡çšã®nRF24L01-USBããã€ã¹ã®äœææ¹æ³ã«ã€ããŠèª¬æããŸãããã€ã¹ã Arduinoãæãã人ã®ããã«ãUSBaspããã¬ããããŒããšããŠäœ¿çšããŠArduino IDEã§ããã°ã©ãã³ã°ãããããžã§ã¯ãã§ã¯äžè¬çãªV-USBã©ã€ãã©ãªã䜿çšããŠãœãããŠã§ã¢å®è£ ã§USBãæäœããŸãã
ãã¡ãŒã ãŠã§ã¢ãå«ãã¢ãŒã«ã€ãã¯ãèšäºã®æåŸã«ããŠã³ããŒãã§ããŸãã ç§ã¯æå³çã«ããã«ç§ã®ãããžã§ã¯ããžã®çŽæ¥ãªã³ã¯ãå ¬éããŸãã-ããªãã¯ããããã¢ãŒã«ã€ãã§èŠã€ããã§ãããã
USBaspããã°ã©ããŒããã€ã¹
ããã°ã©ãã¯å°æ°ã®ããŒãã§æ§æãããŠããŸãã ããã°ã©ããŒã®é è³ã¯Atmega8ãã€ã¯ãã³ã³ãããŒã©ãŒã§ãããã¯8 KBã®ãã©ãã·ã¥ã¡ã¢ãªãš1 KBã®RAMïŒSRAMïŒã®ã¿ãåããŠããŸããçŸä»£ã®æšæºã§ã¯åŒ±ããã€ã¯ãã³ã³ãããŒã©ãŒã®ããã§ãããããã§ã§ããããšã¯ãããããããŸã.USB m / cã®æ©èœã«ãããåšæ³¢æ°ã§åäœããŸã12 MHz ãããã£ãŠããã¡ãŒã ãŠã§ã¢ãäœæãããšãã¯ããããèæ ®ããå¿ èŠããããŸãã
USBaspã«ã¯ããã€ã¯ãã³ã³ãããŒã©ãŒã®6ãã³ãåºåããã10ãã³ã³ãã¯ã¿ãŒããããŸãïŒPB5ïŒSCKïŒãPB4ïŒMISOïŒãPB3ïŒMOSIãPWMïŒãPB2ïŒPWMïŒãPD0ïŒRXDïŒãPD1ïŒTXDïŒé»æº5vãŸãã¯3.3vããã¯ããžã£ã³ããŒJP1ã«ãã£ãŠåãæ¿ããããŸãã
ãã®ããŒãã«ã¯PC0ããã³PC1ãã³ã«2ã€ã®LEDãå èµãããŠãããPB0ãPB1ããã³PD2 m / kãã³ã¯USBãœãããŠã§ã¢ã«äœ¿çšãããPC2ã¯JP3ãžã£ã³ããŒã«æ¥ç¶ãããŸãã
ããã€ã¹å³ã¯ãèšäºã®æåŸã®ã¢ãŒã«ã€ãã«ãããŸãã
ããŒããžã®ããŒãããŒããŒã®ã€ã³ã¹ããŒã«
ãµãŒãããŒãã£ã®ããã°ã©ããªãã§ãã¡ãŒã ãŠã§ã¢ããã°ããå€æŽããã«ã¯ãUSBaspLoaderããŒãããŒããŒãã€ã³ã¹ããŒã«ã§ããŸãã
æ®å¿µãªãããããŒãããŒããŒã¯2 KBã®ãã©ãã·ã¥ã¡ã¢ãªã䜿çšããŸãããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæ®ãã®6 KBã§ååã§ãã
ããŒãããŒããŒã®ã€ã³ã¹ããŒã«ïŒ
Arduinoãããã°ã©ããšããŠäœ¿çšããããã°ã©ãã³ã°ããŒã ïŒ
avrdude -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m
å¥ã®USBaspãä»ããããã°ã©ãã³ã°ã³ãã³ãïŒ
avrdude -c usbasp -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m
ãã®åŸãããã°ã©ããŒãªãã§æšæºã³ãã³ãã䜿çšããŠãã¡ãŒã ãŠã§ã¢ãã¢ããããŒãã§ããŸãã
avrdude -c usbasp -p m8 -U flash:w:_.hex
USBaspLoaderãã€ã³ã¹ããŒã«ãããããã€ã¹ã«ãã¡ãŒã ãŠã§ã¢ããã¢ããããŒããããã«ã¯ããžã£ã³ããŒJP3ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãããžã£ã³ããŒJP3ã¯ãããã€ã¹ãããã°ã©ãã³ã°ã¢ãŒãã«ãããžã£ã³ããŒJP2ã®é»æºãžã£ã³ããŒïŒJP1ïŒã«æãè¿ãæ¥ç¹ãæ¥å°ããŠããã€ã¹ããªã»ããããŸãã
Arduino IDEã§ãã¬ããããŒããšããŠUSBaspã䜿çšãã
Arduino IDEã®ãã¡ãŒã ãŠã§ã¢ïŒããŒãžã§ã³1.0.xã§ãã¹ãæžã¿ïŒã®å Žåãboard.txtãã¡ã€ã«ã«æ¬¡ã®ããã¹ããå ¥åããå¿ èŠããããŸãã
atmega8usb.name=ATmega8 USB 12 MHz atmega8usb.upload.protocol=arduino atmega8usb.upload.maximum_size=6144 atmega8usb.upload.speed=19200 atmega8usb.bootloader.low_fuses=0x9f atmega8usb.bootloader.high_fuses=0xc0 atmega8usb.bootloader.path=atmega8 atmega8usb.bootloader.file=boot_m8.hex atmega8usb.bootloader.unlock_bits=0x3F atmega8usb.bootloader.lock_bits=0x2F atmega8usb.build.mcu=atmega8 atmega8usb.build.f_cpu=12000000L atmega8usb.build.core=arduino atmega8usb.build.variant=standard
ãã®åŸãArduino IDEã§ãç»å ŽããããŒãATmega8 USB 12 MHzãéžæã§ããŸãã ãã¡ãŒã ãŠã§ã¢ã¯ãããã°ã©ããŒã䜿çšããŠããŠã³ããŒããã¡ãã¥ãŒããå®è¡ãããŸãã
Arduinoã®çªå·ä»ãã«äœ¿çšå¯èœãªãã³ïŒ13ïŒSCKïŒã12ïŒMISOïŒã11ïŒMOSIãPWMïŒã10 PB2ïŒPWMïŒã1ïŒTXDïŒã0ïŒRXDïŒããžã¿ã«ãã³14ããã³15ãLEDã®å¶åŸ¡ã«äœ¿çšå¯èœããŒãäžã
Arduino V-USBã®ã©ã€ãã©ãªã䜿çšããŠUSBã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããšãã§ããŸãããCãããå°ãªããªãã·ã§ã³ããããŸãã
nRF24L01-USB
nRF24L01 / nRF24LE1ãšnRF24L01-USBããã€ã¹ãæèŒããã³ã³ãã¥ãŒã¿ãŒãšã®éã§ããŒã¿ã亀æã§ããŸãã çè«çã«ã¯ãnRF24L01 / nRF24LE1ã«åºã¥ããŠæ倧22åã®ã¯ã©ã€ã¢ã³ãïŒ32ãã€ãã®éä¿¡ãã±ããïŒããµããŒããããŠããŸããããããŸã§ã®ãšããå®éã«ã¯3ã§ããããšã確èªãããŠããŸãã 1kbãåä¿¡ãã±ããã®ãµã€ãºã¯æ倧32ãã€ãã§ãéä¿¡ãµã€ãºã¯4ãã€ãã§ãããã®å¶éã¯ãV-USBã©ã€ãã©ãªã®æäœæ¹æ³ãšé¢é£ããŠããŸãã
nRF24L01-USBã¢ããã¿ãŒã®åäœã¯ãã¯ã©ã€ã¢ã³ããç°ãªãæéã«ããŒã¿ãéåä¿¡ãããšãã®ã¿ã€ã ã·ã§ã¢ãªã³ã°ã«åºã¥ããŠããŸãã å€æ°ã®é¡§å®¢ã®å ŽåãããŒãªã³ã°æéã¯é·ããªããŸãã ãªã¢ã«ã¿ã€ã ã®ããŒã¿äº€æã®å Žåãã¯ã©ã€ã¢ã³ãã®æ°ã¯æå°ã§ãªããã°ãªããŸããã ãããŸã§ã®ãšãããããã€ã¹ã«ã¯ããã€ãã®æ¬ ç¹ããããŸãããããã¯è§£æ±ºããããšæããŸãã
ããŒã¿ã管çãèªã¿åããéä¿¡ããããã®ã¯ã©ã€ã¢ã³ããŠãŒãã£ãªãã£ã¯LinuxãšWindowsã®äž¡æ¹ã§æ©èœããŸãããæ®å¿µãªãããããŸã§ã®ãšãããåä¿¡ããããŒã¿ãèšå®ããã«ã¯ã³ã³ãã€ã«ãå¿ èŠã§ãã ãŠãŒãã£ãªãã£ãä»ããå©äŸ¿æ§ãèšå®ããããã°ã®ããã«ããã£ãã«ãé床ãå€æŽããããŒããŠã§ã¢ã®ç¢ºèªãæå¹/ç¡å¹ã«ããç¡ç·ã¢ãžã¥ãŒã«ã®ã¬ãžã¹ã¿ãçŽæ¥æäœã§ããŸãã
ãã®ããã€ã¹ã¯ãã¯ã€ã€ã¬ã¹ã»ã³ãµãŒãã¹ããŒãããŒã ã·ã¹ãã ã®å¶åŸ¡ã«äœ¿çšã§ããŸãã
ãšããã§ã315ãŸãã¯433 MHzã®åšæ³¢æ°ã®attiny13ã«åºã¥ãã¯ã€ã€ã¬ã¹æ¹¿åºŠããã³æž©åºŠã»ã³ãµãŒã®ããªã¢ã³ãã以åã«éçºããã³ãã¹ããããŸããããããã¯å¥ã®ãããã¯ã§ãã
RS232-USB
USBaspããã°ã©ããŒã«åºã¥ããŠã cdc-232ãããžã§ã¯ãã«åºã¥ããŠRS232-USBã¢ããã¿ãŒããã€ã¹ãäœæã§ããŸãã
FT232RLããããŸãã¯ä»ã®usb-uartã³ã³ããŒã¿ãŒããªãArduinoããŒãã®ããã°ã©ãã³ã°ã«é©ããŠããŸãã
PIO-USB
ããã°ã©ãã®ã³ãã¯ã¿ã«åºåããã6ã€ã®ãã³ã¯ãéåžžã®PIOãã³ãšããŠäœ¿çšããŠãLEDãšãªãŒã«ãããã«ãããããããŒãã®è«çã¹ããŒã¿ã¹ãèªã¿åã£ããã§ããŸãã èšäºã®æåŸã«ããã¢ãŒã«ã€ãã«ã¯ãç§ã®ããŒãžã§ã³ã®PIO-USBããããŸããããã¯ã湿床ã»ã³ãµãŒDHT11 / DHT22ãèªã¿åãã433/315 MHzã®ç¡ç·éä¿¡æ©ãæ¥ç¶ããå Žåããœã±ãã/ã·ã£ã³ããªã¢ãå¶åŸ¡ããã³ãŒãããããŒããã£ã¹ãããããšãã§ããŸãã æ¥ç¶ããã湿床ã»ã³ãµãŒã®æ°ãå¢ãããã°ãä¿®æ£ãããæ°ããããŒãžã§ã³ãèšç»ãããŠããŸãã
DS18B20-USB
ããã°ã©ããŒã¯ãããã€ãã®DS18B20枩床ã»ã³ãµãŒã䜿çšããããã«ãæãããããšãã§ããŸãïŒããšãã°ã USBTempãããžã§ã¯ãã䜿çšããŸãïŒã
PIO-USBãšã®çµ±åãšåæ§ã«ãããã€ã¹ã®åè·¯ãšãã¡ãŒã ãŠã§ã¢ãå®è£ ããããã®ãã®ä»ã®ãªãã·ã§ã³ããããŸãã
æ®å¿µãªããããã¡ãŒã ãŠã§ã¢ã®ãµã€ãºãåå ã§ãUSBaspLoaderãä»ããŠããŠã³ããŒãããããšã¯ã§ããŸããã
I2C-USB
ãã®ããã€ã¹ã䜿çšãããšãã»ãšãã©ãã¹ãŠã®i2cããã€ã¹ãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ã§ããLinuxãšWindows XPã®äž¡æ¹ã§ãã¹ãæžã¿ã§ããã¡ãŒã ãŠã§ã¢ã¯æåãªi2c tiny usbãããžã§ã¯ãã«åºã¥ããŠããŸãã
ç§ã®ããã€ã¹ã®äœ¿çšäŸïŒ
èªã¿åãå§åã»ã³ãµãŒBMP085ã
MCP23017ããŒããšã¯ã¹ãã³ããŒã«ãããããã®ç®¡çã«ãããã³ã³ãã¥ãŒã¿ãŒäžã§ã»ãŒåãPIOãååŸããŸãã
EEPROMã¡ã¢ãªã®ããã°ã©ãã³ã°ãç¹å®ã®ç¹å®ã®ã»ã³ãµãŒã®èªã¿åããFMã¬ã·ãŒããŒã®å¶åŸ¡ãªã©ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã
ãã¡ããããããã¯éæšæºã®æ©èœã§ããã°ã©ããŒã䜿çšããããã®ãã¹ãŠã®ãªãã·ã§ã³ãšã¯ã»ã©é ããã®ã§ãã
ãµãŒãããŒãã£ãããžã§ã¯ãã®ãã¹ãŠã®ãœãŒã¹ã³ãŒãã¯ãå ¬åŒWebãµã€ãã§èŠã€ããããšãã§ããŸãã èšäºã®æåŸã«ããã¢ãŒã«ã€ãã«ã¯ãUSBaspããŒãã®åºåã«é©åãããã¡ãŒã ãŠã§ã¢ããããŸãã
ãã¡ãŒã ãŠã§ã¢ã§ã¢ãŒã«ã€ãïŒ usbasp.zip
UPDïŒ ãRaspberry PIããã³USBaspãä»ããnRF24LE1ã®ããã°ã©ãã³ã°ãã®èšäºã§ã®USBaspã®å¥ã®äœ¿çšæ³ã