2021年5月15日土曜日

AlmaLinux8.3にflowbladeをインストールする

flowbladeは動画編集アプリケーションです。

〇flowbladeの画面

インストール方法

以下のコマンドを実行します。
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub io.github.jliljebl.Flowblade

関連情報

動画編集アプリケーションFlowbladeのまとめ

・プロジェクトwebサイト
https://jliljebl.github.io/flowblade/

・プロジェクトgithubリポジトリ
https://github.com/jliljebl/flowblade

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piとタッチセンサーのイベントを送受信する

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piとタッチセンサーのイベントを送受信するには、以下の手順を実行します。

実装手順

1. grove.pyとpaho-mqttモジュールをインストール
以下のコマンドでgrove.pyとpaho-mqttモジュールをインストールします。
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -

pip3 install paho-mqtt

2. paho MQTTでメッセージを受信するプログラムを作成する
以下のプログラムで受け取ったタッチセンサーのイベントを表示します。

mosquitto_sub_grove_touch_sensor.py
import paho.mqtt.client as mqtt

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}".format(msg.topic))
    print(str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python3 mosquitto_sub_grove_touch_sensor.py

3. 距離データの送信
以下のプログラムでタッチデータのイベントを送信します。

mosquitto_pub_grove_touch_sensor.py
import paho.mqtt.publish as publish
from grove.grove_touch_sensor import GroveTouchSensor
import time

PIN_D5 = 5
button = GroveTouchSensor(PIN_D5)

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_press(duration):
  publish.single(topic, "pressed: after released {:.2f}s".format(duration), hostname=host, port=port, keepalive=secs_keep_alive)

def on_release(duration):
  publish.single(topic, "released: after pressed {:.2f}s".format(duration), hostname=host, port=port, keepalive=secs_keep_alive)

button.on_press = on_press
button.on_release = on_release

print("touch grove touch sensor...")
while True:
  time.sleep(1)

・実行方法
以下のコマンドで送信プログラムを実行します。
python3 mosquitto_pub_grove_touch_sensor.py

関連情報

Groveデバイスまとめ

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する

2021年5月14日金曜日

AlmaLinux8.3に動画編集アプリPitiviをインストールする

Pitiviは動画編集アプリケーションです

〇Pitiviの画面

インストール方法

以下のコマンドを実行します。
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.pitivi.Pitivi

関連情報

動画編集アプリケーションPitiviのまとめ

・プロジェクトwebサイト
http://www.pitivi.org/

Raspberry Pi ZeroとGrove Base HAT for Raspberry PiとGroveタッチセンサーのイベント(押下・離す)を取得する

Raspberry Pi ZeroとGrove Base HAT for Raspberry PiとGroveタッチセンサーのイベント(押下・離す)を取得するには、以下の手順を実行します。

実装手順

1. 部品の用意と配線
以下の部品を用意して、接続します。

・Grove Base HAT for Raspberry Pi Zero
https://akizukidenshi.com/catalog/g/gM-13879/

・GROVE - スターターキットV3
※以下のセットの中にタッチセンサーが入っています。
https://www.switch-science.com/catalog/1812/

・Grove Base HAT for Raspberry PiとGroveタッチセンサー
GroveタッチセンサーをD5ポートに接続します

2. grove.pyのインストール
以下のコマンドを実行します
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -

3. タッチセンサーのイベントを取得するプログラムの作成と実行
以下のプログラムを保存して実行します。on_pressに押された時のコールバック関数、on_releaseに離された時のコールバック関数を指定します。
grove_touch_sensor.py
from grove.grove_touch_sensor import GroveTouchSensor
import time

PIN_D5 = 5
button = GroveTouchSensor(PIN_D5)

def on_press(duration):
  print("pressed: after released {:.2f}s".format(duration))

def on_release(duration):
  print("released: after pressed {:.2f}s".format(duration))

button.on_press = on_press
button.on_release = on_release

print("touch grove touch sensor...")
while True:
  time.sleep(1)

以下のコマンドでタッチセンサーのイベントを取得するプログラムを実行します。
python3 grove_touch_sensor.py

関連情報

Groveデバイスまとめ

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する

2021年5月13日木曜日

Raspberry Pi Picoとpico displayでバックライトの明るさを変更する

MicroPythonでpico displayのバックライトの明るさを変更する事が出来ます。今回は水色っぽい背景をバックライトで明るくしたり暗くしたりを繰り返すプログラムを作成します。

〇Raspberry Pi Picoとpico displayの写真

実行手順

※既に実行環境が整っている場合は手順1-3は飛ばしてください。
1. Raspberry Pi Picoとpico displayを接続します(pico displayの裏にUSBコネクタの絵が印刷されているので、Raspberry Pi PicoのUSBと向きを合わせます)。
pico displayは秋月電子で購入しました。
Pico Display Pack
https://akizukidenshi.com/catalog/g/gM-16238/

2. piromoni-picoのリポジトリの最新releaseのuf2ファイルをダウンロードする
https://github.com/pimoroni/pimoroni-pico/releases
※2021/05/06時点では、以下のファイルが最新でした。
pimoroni-pico-v0.1.4-micropython-v1.15.uf2

3. BOOTSELボタンを接続しながら、パソコンにUSBケーブルで接続します
2でダウンロードしたuf2ファイルをコピーします。

4. Thonnyで以下のプログラムをRaspberry Pi Picoにmain.pyとして保存して、実行します。
import utime
import picodisplay

# initialize
buf = bytearray(picodisplay.get_width() * picodisplay.get_height() * 2)
picodisplay.init(buf)

# clear background
picodisplay.set_pen(200, 220, 255)
picodisplay.clear()

backlight=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
    1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1]

# change brightness of backlight...
while True:
    for brightness in backlight:
        picodisplay.set_backlight(brightness)
        picodisplay.update()
        utime.sleep_ms(200)

set_backlightメソッドで0.0から1.0の値を指定して、バックライトの明るさを指定します。

関連情報

Raspberry Pi Picoとpico displayで文字列を表示する

Raspberry Pi Picoとpico displayで1文字ごとに色を変えて描画する

Raspberry Pi Picoとpico displayで水玉模様を描画する

Raspberry Pi Picoとpico displayで市松模様を描画する

Raspberry Pi Picoとpico displayでフルカラーLEDを光らせる

Raspberry Pi Picoとpico displayでボタンの状態を取得する

AlmaLinux8.3にphpMyAdminとMariaDBをインストールする

phpMyAdminでwebインターフェイスからMariaDBを操作できます。

〇phpMyAdminの画面
http://<ホスト名またはIPアドレス/phpmyadmin/にアクセスします。

インストール方法

以下の手順を実行します。
1. firewallでhttpの80番ポートを開けます
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

2. MariaDBをインストール
sudo dnf -y install mariadb mariadb-server

sudo systemctl enable mariadb.service

sudo systemctl start mariadb.service

sudo mysql -uroot -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
※パスワードは適宜変更してください。

3. ApacheとPHPのインストール
sudo dnf install -y httpd \
  php \
  php-mysqlnd \
  php-json \
  php-opcache \
  php-xml \
  php-dom \
  php-mbstring \
  php-gd \
  php-curl

sudo systemctl enable php-fpm
sudo systemctl enable  httpd

4. SELinuxの無効化
sudo setenforce 0
sudo getenforce
sudo sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

5. phpMyAdminのインストール
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.0/phpMyAdmin-5.1.0-all-languages.tar.gz

tar xvfz phpMyAdmin-5.1.0-all-languages.tar.gz

sudo mv phpMyAdmin*-all-languages /opt/phpmyadmin

sudo chown -R apache:apache /opt/phpmyadmin

sudo ln -s  /opt/phpmyadmin /var/www/html

cat << EOF | sudo tee /etc/httpd/conf.d/phpmyadmin.conf
<Directory /var/www/html/phpmyadmin/data>
        AllowOverride None
        Require all denied
</Directory>
EOF

sudo service httpd restart

関連情報

・phpMyAdminに関する他の記事は、こちらを参照してください。

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piと音センサモジュールの音量データを送受信する

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piと音センサモジュールの音量データを送受信するには、以下の手順を実行します。

実装手順

1. grove.pyとpaho-mqttモジュールをインストール
以下のコマンドでgrove.pyとpaho-mqttモジュールをインストールします。
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -

pip3 install paho-mqtt

2. paho MQTTでメッセージを受信するプログラムを作成する
以下のプログラムで受け取った音量のデータを表示します。

mosquitto_sub_grove_sound_sensor.py
import paho.mqtt.client as mqtt

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}".format(msg.topic))
    print(str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python3 mosquitto_sub_grove_sound_sensor.py

3. 距離データの送信
以下のプログラムで音量データを送信します。

mosquitto_pub_grove_sound_sensor.py
import paho.mqtt.publish as publish
from grove.grove_sound_sensor import GroveSoundSensor
import time

PIN_A0 = 0
sensor = GroveSoundSensor(PIN_A0)

def read_grove_sound_sensor():
  return sensor.sound

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

val = read_grove_sound_sensor()
publish.single(topic, "read_grove_sound_sensor:{}".format(val), hostname=host, port=port, keepalive=secs_keep_alive)

・実行方法
以下のコマンドで送信プログラムを実行します。
python3 mosquitto_pub_grove_sound_sensor.py

関連情報

Groveデバイスまとめ

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する