2021/10/14

Processing & Arduino: マウスのクリックでLEDの点滅を切り替える

概要

ProcessingとArduinoの組み合わせ例として,マウスのクリックでLEDを点灯したり消灯したりする方法を紹介します.

デモ

先に実行例をどうぞ. 動画内でArduino UNO R3互換ボードの一部を黒いビニルテープで隠していますが,この下にはシリアル通信時に点滅するLEDが搭載されています. プログラムで点滅させているLEDと紛らわしいためです.

開発環境

PC (Processing)側のOSはUbuntuなのですが,Windowsでも動作すると思います.未確認です.

OS Ubuntu 20.04 LTS
Processing Processing 3.5.4 Linux 64-bit
Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

今回はArduino UNOのBuilt-in LEDを使用しましたので,追加の回路は必要ありません. Arduino UNOの仕様については下記を参照してください.

ソースコード

GitHub Gistにて公開します.

製品紹介

2021/09/30

Arduino: ボタンスイッチでサーボモータの角度を切り替える

概要

Arduinoによるサーボモータの制御例を紹介します. ボタンスイッチを押下すると,サーボモータの角度が0度または180度に交互に切り替わります.

デモ

先に実行例をどうぞ. 動画内ではArduino IDEのシリアルモニタの代わりにTera Termを使用していますが,もちろんシリアルモニタでも大丈夫です.

開発環境

Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

回路図

デジタルピン2番にボタンスイッチを接続し,デジタルピン11番にサーボモータの制御信号を接続してください. Arduinoのピン配置については,公式Webページを参照してください.

回路部品

参考単価をクリックすると,秋月電子通商のページもしくはメーカーページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
R1 炭素皮膜抵抗 各社 1/4W 10kΩ 1 1円 (互換品)
SW1 ボタンスイッチ 各社 1 10円 (互換品)
M1 サーボモータ SANWA SRM-102Z 1 5500円
その他 リード線など 適量

ソースコード

GitHub Gistにて公開します.

製品紹介

サーボモータは安価に入手できるものもありますので,用途に応じて選択してください.

2021/09/28

Arduinoに接続したLEDをWindows PCのC#アプリからシリアル通信で制御する

概要

Windows PC上のGUIアプリのボタン操作により,Arduinoに接続されたLEDの点灯を制御する例を紹介します. GUIアプリはVisual Studioを使用してC#で,ArduinoのプログラムはArduino IDEを使用して作成しました.

デモ

先に実行例をどうぞ.

開発環境

OS Windows 10 Pro 20H2
Visual Studio Microsoft Visual Studio Community 2017
Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

回路図

デジタルピン3本にそれぞれにLEDを接続するだけです. LEDはアノード側を電流制限抵抗を挟んで+5Vに,カソード側をデジタルピンに接続してください. したがって,LEDはHIGHを出力すると消灯,LOWを出力すると点灯します. これを逆にしたい場合は,Arduino側のソースコードを変更する必要があります. Arduinoのピン配置については,公式Webページを参照してください.

回路部品

参考単価をクリックすると,秋月電子通商のページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
R0, R1, R2 炭素皮膜抵抗 各社 1/4W 330Ω 3 1円 (互換品)
LED0 LED 各社 緑色 1 10円 (互換品)
LED1, LED2 LED 各社 赤色 2 5円 (互換品)
その他 リード線など 適量

ソースコード

GitHubにて公開します.ページ右上付近の「Code」ボタンからダウンロードしてください.Arduinoのスケッチはarduinoフォルダ配下に,Visual Studioプロジェクトはwindowsフォルダ配下にあります.

製品紹介

2021/05/10

PetaLinux 2020.2のDockerイメージを作成する

概要

私はPetaLinuxをDocker上で使用しています.ググると同じように環境構築されている方も多いようですね. GitHubで必要なファイル一式を公開していますので,ここにDockerイメージの作成方法をメモしておきます. 私はチュートリアルに毛が生えた程度しかPetaLinuxを触りませんので,もし不具合がありましたらissueでお知らせいただけると助かります. 私は,Dockerホスト環境としてUbuntu 16.04とUbuntu 20.04を使用しています.

準備

SSDまたはHDDの空き容量を15GB程度は準備しておいてください.作成するDockerイメージは10GB程度のサイズになります. 予め,XilinxのWebサイトからPetaLinuxのインストーラをダウンロードしておきます. ここではダウンロードディレクトリを/data1/Software/Xilinxとし,PetaLinux 2020.2をインストールすることにします.

ダウンロードしたファイルは下記のパスとします.

  • /data1/Software/Xilinx/petalinux-v2020.2-final-installer.run

GitHubからファイル一式を取得します. ここではgit clone先のディレクトリ名をpetalinux-baseとしていますが,未指定で既定のままでも問題ありません.

git cloneしたディレクトリに移動します.

docker build

PetaLinuxをインストールするベースとなるDockerイメージ,keitetsu/petalinux:ubuntu16.04-baseをビルドします.

PetaLinuxのインストール

ビルドしたDockerイメージを起動し,手動でPetaLinuxをインストールします. テキストエディタでrun_base.shを開き,--volumeオプションの/data1/Software/Xilinxの部分をpetalinux-v2020.2-final-installer.runを格納したディレクトリに書き換えます. このディレクトリは,Dockerコンテナ上では/dataとしてマウントされます.

PetaLinuxはrootではなく一般ユーザでインストールする必要があります. このため,Dockerホスト上のユーザのUIDとGIDを使ってDockerコンテナ起動時にユーザが作成されます. 任意のUIDとGIDを使用したい場合は,run_base.shで指定してください. これらの処理は,entrypoint.shに記載しています.

run_base.shを実行します.

通常通りPetaLinuxのインストールを進めてください.ただし,インストールディレクトリは/opt/Xilinx/PetaLinuxとしてください. このディレクトリはDockerイメージ上に予め用意されています.

インストーラを実行すると,ライセンスに同意するかどうかの入力が求められます. ライセンス文書が表示されたら'q'キーで閉じ,'y'を入力して同意します.3項目に同意が必要です.

インストールが完了してプロンプトが返ってきたら,Dockerホスト側で,今までDockerコンテナを操作していたものとは別の端末を開きます. docker psコマンドで,keitetsu/petalinux:ubuntu16.04-baseのコンテナIDを確認します.

DockerコンテナをDockerイメージとして保存します.${CONTAINER_ID}には,先ほど確認したコンテナIDを入れてください.

これでDockerイメージを作成できました. PetaLinuxをインストールするために起動したDockerコンテナはexitで終了してください.

使用方法

作成したDockerイメージを起動するためのシェルスクリプトは,run_base.shを改変して作成します.ここではrun.shとして保存します. /workspaceには,Dockerホスト上のPetaLinuxプロジェクトを格納するディレクトリを指定してください.

run.shを起動すると,下記のようにDockerコンテナが起動してPetaLinuxでの開発準備が整います.

Vitis, VivadoのDockerイメージ

VitisとVivadoの開発環境も同様にDocker上に作成することができます.私のファイル一式は上記です. こちらはまだ手順を書くことができていないのですが,PetaLinuxと同様に,下記の要領で作成します.また手順を書きたいと思います.

  1. ベースのDockerイメージをbuild/build.shでビルド
  2. run_base/run_base.shでDockerコンテナを起動
  3. install/installを参考にVitisをバッチモードでインストール
  4. install_xrt_bdf/build.shでXRTとサードパーティのbdfをインストール
  5. docker commit
  6. run/run.shでDockerコンテナを起動