Raspberry PiとiOSを使用したWS2801 LEDストリップコントロール

みなさんこんにちは!

この記事には、iOSオペレーティングシステム用のアプリケーションのソースコードが含まれています。その目的は、Raspberry PIに接続されたWS2801 LEDストリップを制御することです。





記事pbelovは、この投稿の基礎となりました-「Raspberry PiとAndroidを使用し LEDストリップを制御します」 habrahabr.ru/post/203532 WS2801チップ付きテープをRaspberry PIに接続する基本的な原則を理解する必要がある場合は、Pavelの元の記事から読み始めることをお勧めします。



少し前に、私は家の照明の組織に興味を持つようになりました。 既製のソフトウェアソリューションの検索で結果が得られましたが、RGBテープのカスタマイズの自由度を高めたいと思いました。 特に、既存のソリューションでは、カスタムアニメーション、クリープライン、またはある色から別の色へのフローをカスタマイズする機能が奪われていました。 このため、高度な色設定、テープ内の色の順序、およびスムーズなアニメーションを使用して独自のアプリケーションの作成を開始することにしました。



Github.com/PawelMolodkin/HomeLedプロジェクトリポジトリ

リポジトリのルートフォルダーにはXcodeのクライアントiOSプロジェクトが含まれ、IntelliJ IDEAのサーバーアプリケーションプロジェクトはledserverフォルダーにあります。

ledserver / puttyフォルダーには、ラズベリー上のサーバーアプリケーションの読み込みとデバッグを自動化するために記述された、生活を促進するスクリプトが含まれています。



クライアント部





これは、プログラム全体の外観です。

画像



最初のセルはテープ全体の色を調整します

画像



2番目のセルは、色のリストを作成するために使用されます。

画像

任意の色を順番に選択し、名前を付けてリストを保存できます。 アニメーションをカスタマイズするには、保存リストが必要になります。



3番目のセルは2つの機能を組み合わせます。線形アニメーションと、2番目のセルで作成された色のリストを滑らかに交互に切り替えます。

画像

アニメーションアニメーターを有効にすると、リニアアニメーションが起動します。 スピナーは、リニアアニメーションの速度を変更できます。

リストアニメーションは少し複雑です。

最初に、2番目のセルに複数のカラーリストが必要です。 次に、「カラーアニメーション」ボタンをタップします。 その中に、色を変更したい順番に必要なリストを追加します。 次に、リストの追加ダイアログから戻ります。 「保存」をクリックして、新しいアニメーションの名前を入力します。

保存したアニメーションを有効にするには、「ダウンロード」をクリックして、必要なカラーリストのアニメーションを選択します



サーバー側



サーバーは次のコマンドで起動されます

java -jar ledserver.jar 50
      
      





ここで、50はテープ内のダイオードの数です。

サーバーは、UDPポート8090でリッスンします。UDPは、ブロードキャストチャネルをリッスンするように構成されているため、ローカルネットワークへのサーバーの統合を容易にするために選択されました。したがって、iPhoneとRaspberryが同じルーターサーバーは引き続きクライアントからメッセージを受信します。



デバッグ



デスクトップでの開発とリモートRaspberry PIでのデバッグを容易にするために、IDEAでリモートデバッグ構成を作成します。



画像

「外部ツール」として「外部ツールの実行」を選択し、次にputty / launch-led-server.batスクリプトを選択します。 launch-led-server.batスクリプトで、Raspberryの正しいIPアドレスを指定する必要があることに注意してください。 また、ssh公開キーをraspberryに追加して、パテがpagentを使用して自動的にログインし、新しい.jarをアップロードして使用できるようにする必要があります。



ご清聴ありがとうございました!



All Articles