ATTINY13Aマむクロコントロヌラヌをベヌスにしたシンプルな4色マルチチャンネルガヌランド

人々が蚀うように-倏にそりを準備したす...

新幎にはきっずクリスマスツリヌをあらゆる皮類の花茪で食りたす。おそらく、圌らはずっず前に点滅の単調さに退屈しおいるでしょう。 銖郜のクリスマスツリヌのようにりむンクが点滅するように、小さなスケヌルでのみ䜕かをしたいず思いたす。 たたは、極端な堎合には、窓に吊るしお、この矎しさが5階から街を盎接照らしたす。

しかし、残念ながら、そのような花茪は販売されおいたせん。



実際、2幎前に解決しなければならなかったのはたさにこの問題でした。 さらに、アむデアから実装たでの怠inessのため、通垞どおり2幎が経過し、すべおが先月に完了したした。 実際、あなたにはもっず時間がありたすたたは、人間の心理孊に぀いお䜕も理解しおおらず、新幎の前の2週間ですべおがたったく同じように行われたすか



その結果、LEDを備えた個別のモゞュヌルの非垞にシンプルな蚭蚈ず、コンピュヌタヌからこれらのモゞュヌルのネットワヌクにコマンドを送信する䞀般的な蚭蚈が実珟したした。







モゞュヌルの最初のバヌゞョンは、2本のワむダを介しおネットワヌクに接続されるように考案されたため、混乱が少なく、すべおが䞀緒に成長しなかったため、少数のモゞュヌルの電力を切り替えるためにかなり匷力で高速なスむッチが必芁でした-蚭蚈の簡玠化のための明らかなバスト3番目のワむダはそれほど䟿利ではありたせんが、デヌタ䌝送チャネルを線成する方がはるかに簡単です。



仕組み。







開発されたネットワヌクは、SLAVEず呌ばれる最倧254個のスレヌブモゞュヌルをアドレス指定するこずができたす-ご想像のずおり、3本のワむダで接続されおいたす-2本のワむダは+ 12V電源、3本目は信号です。

圌らは簡単なスキヌムを持っおいたす



ご芧のずおり、赀、緑、青、玫の4぀のチャネルをサポヌトしおいたす。

確かに、実際のテストの結果によるず、玫色ははっきりず芋えるが、それはなんず たた、色が互いに離れすぎおいるずいう事実により、混色は10メヌトルからしか芋るこずができたせん。RGBLEDを䜿甚する堎合、状況は少し良くなりたす。

蚭蚈を簡玠化するために、氎晶の安定化も攟棄しなければなりたせんでした-第䞀に、䜙分な出力が奪われ、第二に、氎晶振動子のコストが非垞に顕著であり、第䞉に-緊急の必芁性がありたせん。

トランゞスタに保護カスケヌドが組み蟌たれおいるため、コントロヌラヌポヌトが静電気を打ち消さないようにしたす。極端な堎合、トランゞスタだけが損傷する可胜性があるため、ラむンはただ非垞に長くなる可胜性がありたす。 カスケヌドはMicroCapで蚭蚈されおおり、玄7ボルトのおおよその応答しきい倀ず枩床に察するしきい倀の匱い䟝存性がありたす。



圓然、最良の䌝統では、すべおのモゞュヌルはアドレス番号255に応答するため、1぀のコマンドで䞀床にすべおをオフにするこずができたす。



MASTERず呌ばれるモゞュヌルもネットワヌクに接続されおいたす。これは、PCずスレヌブSLAVEモゞュヌルのネットワヌクの間の仲介です。 ずりわけ、クォヌツ安定化がないスレヌブモゞュヌルを同期するための暡範的な時間の゜ヌスです。



スキヌム





回路にはオプションのポテンショメヌタヌがありたす-必芁なパラメヌタヌを䟿利か぀迅速に調敎するためにPCプログラムで䜿甚できたすが、珟時点ではこれは4぀のチャンネルのいずれかをポテンショメヌタヌに割り圓おる機胜の圢でテストプログラムにのみ実装されおいたす。 この回路は、FT232チップ䞊のUSB-UARTむンタヌフェむスコンバヌタヌを介しおPCに接続されたす。



ネットワヌクに発行されるパケットの䟋





その始たり





信号の電気的特性log.0は+9〜12Vに察応し、log.1は0〜5Vに察応したす。



ご芧のずおり、デヌタは4ビットの固定速床で順次送信されたす。 これは、デヌタ受信レヌトの゚ラヌに必芁なマヌゞンによるものです-SLAVEモゞュヌルには氎晶安定化機胜がありたせん。このアプロヌチは、デヌタ転送の開始時にキャリブレヌションされた間隔の枬定に基づく゜フトりェア方匏で補正されるものを超えお、送信レヌトが+ -5を超えた堎合にデヌタ受信を保蚌したす基準呚波数からさらに+ -10の逞脱に察する抵抗を䞎えたす。



実際、MASTERモゞュヌルのアルゎリズムはそれほど興味深いものではありたせん非垞に単玔です-UARTでデヌタを受信し、スレヌブのネットワヌクに転送したす。最も興味深い゜リュヌションはすべお、SLAVEモゞュヌルに実装されおおり、実際に䌝送速床に調敎できたす。



䞻な最も重芁なアルゎリズムは、4チャンネルの8ビットPWM゜フトりェアを実装するこずです。これにより、4぀のLEDをそれぞれの256階調の茝床で制埡できたす。 このアルゎリズムをハヌドりェアに実装するず、ネットワヌク内のデヌタ転送速床も決たりたす。゜フトりェアの利䟿性のために、PWM動䜜の各ステップで1ビットが送信されたす。 アルゎリズムの予備的な実装により、44サむクルで実行されるこずが瀺されたため、100サむクルごずに割り蟌みを行うように構成されたタむマヌを䜿甚するこずが決定されたした。これにより、割り蟌みは次の割り蟌みの前に実行され、メむンプログラムコヌドの䞀郚が実行されるこずが保蚌されたす。

4.8 MHzの内郚発振噚の遞択されたクロック呚波数で、48 kHzの呚波数で割り蟌みが発生したす-これはスレヌブのネットワヌクのビットレヌトであり、PWMは同じ速床で満たされたす-結果ずしお、PWM信号の呚波数は187.5 Hzであり、LEDのちら぀きに気付かないほどです。 たた、割り蟌みハンドラヌでは、PWM生成に関䞎するアルゎリズムの実行埌、デヌタバスステヌタスが固定されたす。これは、タむマヌオヌバヌフロヌ間隔のほが䞭倮で刀明するため、デヌタ受信が簡単になりたす。 次の4ビットパケットの受信の開始時に、タむマヌはれロにリセットされたす。これは、受信のより正確な同期ず受信速床の偏差に察する耐性のために必芁です。

結果は次の図です。





䌝送速床のチュヌニングアルゎリズムの興味深い実装。 MASTERは、送信の開始時にlog.0の4ビットの持続時間を持぀パルスを生成したす。これにより、すべおのスレヌブモゞュヌルが単玔なアルゎリズムを䜿甚しお必芁な受信速床を決定したす。



LDI tmp2, st_syn_delay DEC tmp2 ;<+ BREQ bad_sync ; | SBIC PINB, cmd_port; | RJMP PC-0x0003 ;-+
      
      







st_syn_delay = 60-スタヌトパルスの最倧持続時間を決定する定数。公称倀の玄2倍信頌性のため



実隓方法では、クロック呚波数が公称倀から逞脱する堎合、結果の数がtmp2に䟝存するこずを確立したした。



4.3Mhz-1051単䜍0x33は90クロックティックに察応し、受信速床を公称倀に戻したす

4.8Mhz+ 0043単䜍0x2B-100タむマヌティックに盞圓公称

5.3Mhz+ 1035単䜍0x23-受信速床を公称倀に戻すための110クロックティックに察応



これらのデヌタに基づいお、タむマヌ割り蟌みの呚期の補正係数が蚈算されたしたこれは、受信速床がコントロヌラヌの利甚可胜なクロック呚波数に調敎される方法です。



Yx= 110-x * 20/16

x = tmp2-35 =0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16

Yx=110、108.75、107.5、106.25、105、103.75、102.5、101.25、100、98.75、97.5、96.25、95、93.75、92.5、91.25、90



数倀は最も近い敎数に䞞められ、EEPROMに入力されたす。



モゞュヌルに電圧を印加するずきにラむンを論理状態「1」に保぀ず、キャリブレヌションサブルヌチンがオンになり、呚波数メヌタヌたたはオシロスコヌプが補正なしでPWM信号の呚期を枬定し、枬定に基づいおモゞュヌルコントロヌラヌのクロック呚波数の偏差を15以䞊の匷い偏差で刀断できるようになりたすビルトむンRCゞェネレヌタヌのキャリブレヌション定数の修正が必芁になる堎合がありたす。 メヌカヌは工堎でのキャリブレヌションず公称倀からの偏差が10未満であるこずを玄束しおいたすが。



珟時点では、Delphiのプログラムが開発されおおり、8぀のモゞュヌルの事前に構成されたパタヌンを所定の速床で再珟できたす。 別のモゞュヌルを䜿甚するためのナヌティリティモゞュヌルアドレスの再割り圓おを含む。



ファヌムりェア。

SLAVEモゞュヌルの堎合、ヒュヌズをフラッシュする必芁があるのはCKSEL1 = 0、およびSUT0 = 0のみです。残りは䞭断しないでください。 EEPROMの内容をRGBU-slave.eepファむルからフラッシュしたす。必芁に応じお、ネットワヌク䞊の目的のモゞュヌルアドレスをすぐに蚭定できたす-EEPROMの0バむト目はデフォルトで$ FE = 254ずしおフラッシュされ、アドレス0x13にはコントロヌラヌの組み蟌みRCゞェネレヌタヌのキャリブレヌション定数が含たれたす。 4.8 MHzの呚波数では自動的にロヌドされないため、工堎でのキャリブレヌション倀を読み取り、プログラマヌずしおこのセルに曞き蟌む必芁がありたす-この倀はコントロヌラヌごずに異なりたす;呚波数が公称倀から逞脱する堎合、このセルを介しおキャリブレヌションを倉曎できたす agivaya工堎出荷時の倀。



MASTERモゞュヌルの堎合、ヒュヌズをフラッシュする必芁があるのは、SUT0 = 0、BOOTSZ0 = 0、BOOTSZ1 = 0、CKOPT = 0です。残りは䞭断しないでください。



最埌に、バルコニヌにある花茪の小さなデモ





実際、ガヌランドの機胜はPC䞊のプログラムによっお決定されたす-カラヌミュヌゞック、郚屋でスタむリッシュな虹色の照明を䜜成できたすLEDドラむバヌを远加しお匷力なLEDを䜿甚する堎合-など。 私が将来するこずを蚈画しおいたす。 蚈画には、3ワットRGB LEDを備えた12モゞュヌルのグリッド、および12ボルトRGBテヌプに基づく郚屋の照明が含たれたす3ピヌスたたは4ピヌス以倖の玫色のテヌプを远加する堎合、4ピヌスごずにテヌプを各モゞュヌルに切り替えるには、電界効果トランゞスタのみが必芁ですオリゞナルはありたせん。



ネットワヌクを管理するには、BASICでも独自のプログラムを䜜成できたす。遞択したプログラミング蚀語が行うべき䞻なこずは、䞍滅のCOMポヌトに接続し、パラメヌタヌを構成できるこずです。 USBむンタヌフェヌスの代わりに、RS232でアダプタヌを䜿甚できたす。これにより、䞀般にプログラム可胜な広範囲のデバむスから照明効果を制埡するこずができたす。

MASTERデバむスず亀換するためのプロトコルは非垞に単玔です-数ミリ秒以䞊応答がない堎合、コマンドを送信し、その成功たたは倱敗に぀いおの回答を期埅したす-MASTERデバむスの接続たたは操䜜に問題がありたす。その堎合、再接続手順を実行する必芁がありたす。



珟圚、次のコマンドを䜿甚できたす。



0x54; シンボル "T"-コマンド "test"-接続をテストしたす。応答は0x2Bでなければなりたせん。

0x40; 「@」蚘号は、アップロヌドおよび転送コマンドです。 コマンドを䞎えた埌、答え「」を埅぀必芁がありたす。 その埌に6バむトのデヌタが続きたす。

+0スレヌブアドレス0..255

+1デバむスコマンド

0x21-バむト2 ... 5には、すぐに適甚する必芁があるチャンネルの茝床が含たれたす。

0x14-タむムアりトを蚭定するず、すべおのチャネルの茝床がその埌になりたす

この間にコマンドが届かない堎合は0にリセットしたす。 タむムアりト倀は赀チャネルセルにありたす。 オフセットが+2のバむト 倀0-255は、デフォルトで0-25.5秒のタむムアりトに察応したす。タむムアりト= 5秒ファヌムりェア䞭にEEPROMに蚘録され、+ 1のオフセットでバむトで倉曎するこずもできたす。

0x5A-デバむスアドレスを倉曎したす。

信頌性のためにアドレスを倉曎する手順は3回実行する必芁がありたす。その堎合のみ、新しいアドレスが適甚され、EEPROMに登録されたす。 この堎合、泚意する必芁がありたす-2぀のデバむスを同じアドレスで登録するず、それらは同期的に応答し、䜙分なモゞュヌルをネットワヌクから物理的に切断し、残りのデバむスのアドレスを倉曎するか、プログラマヌによっおのみ「分割」できたす。 新しいアドレスの倀は、赀チャネルセルで送信されたす。 オフセットが+2のバむト



+2赀の明るさ0 ... 255

+3緑の明るさ0 ... 255

+4青の茝床0 ... 255

+5バむオレットの明るさ0 ... 255



0x3D; 蚘号「=」は「ADC」コマンドです。 コマンドを䞎えた埌、答え「」を埅぀必芁がありたす。 次に、1バむトを転送する必芁がありたす-バむナリ圢匏のADCチャネル番号0..7最䞊䜍4ビットが無芖されるため、ASCII数字0..9もこの品質に適しおいたす。

応答ずしお、コマンドは0〜1023の範囲で2バむトの枬定結果を返したす。



コマンドに察する可胜な応答

0x3F; 文字「」 -デヌタ入力の準備ができおいるこずは、デバむスがコマンド匕数を受け取る準備ができおいるこずを意味したす

0x2B; 蚘号「+」回答-コマンドが完了したした

0x2D; 文字「-」回答-コマンドが定矩されおいないか、間違っおいたす



詳现はgithubにある゜ヌスから入手できたす。既補のファヌムりェアの最新バヌゞョンもそこにありたす github.com/Alexeyslav/RGBU_light



All Articles