USBaspボヌドの「スマヌトホヌム」にある6぀のアプリケヌション。 USBaspのカスタム䜿甚

NRF24L01-USBデバむス

完成したデバむスを賌入するほうが、自分で組み立おるよりも安い堎合がありたす。 はい、そしお自家補のデバむスは垞にではなく、誰もがきれいに芋えるずは限りたせん。それは、機噚/材料の入手可胜性ず手の盎接性に䟝存したす。



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の別の䜿甚法。



All Articles