rss ログイン
JJ1RLWのXOOPS Cube Siteにようこそ

メインメニュー

ログイン


ユーザー名:


パスワード:





パスワード紛失  |新規登録

オンライン状況

2 人のユーザが現在オンラインです。 (2 人のユーザが xpress ブログ を参照しています。)

登録ユーザ: 0
ゲスト: 2

もっと...

アーカイブ

カテゴリー

アクセスカウンタ

今日 : 6969
昨日 : 5959
総計 : 257748257748257748257748257748257748

カレンダー

2018年8月
« 7月    
 1234
567891011
12131415161718
19202122232425
262728293031  

xpress ブログ » » PC

  カテゴリー ‘PC’ のアーカイブ
WordPress for XOOPS

Raspberry Pi3(ルーター)初めてのトラブル

Raspberry pi3(ルーター)初めてのトラブルを経験しました。

昨日(2018/08/13)16時過ぎ頃に停電(瞬間停電)があった様で、マイロSDカードのルートファイルシステムに矛盾が発生し、起動時にエマージェンシー(メンテナンス)モードになって入力待ち状態で止まって、普通に起動してくれない。

Give root password for maintenance
(or type Control-D to continue):
の様なメッセージで入力待ち状態で止まる。

ディスプレイ、マウス、キーボードを繋ぎ、入力待ち状態でrootのパスワードを入力してログインし、

umount /dev/mmcblk0p2
fsck -y /dev/mmcblk0p2
reboot

正常に起動していることを確認してトラブルシューティングは終わりです。

参考サイト
RaspbianでWelcome to emergency mode!
Linuxを強制終了した場合に、起動不良→回復方法

DDNSの情報が他のDNSに反映されない

2018/07/13~16にかけて、DDNSの情報が他のDNSに反映されない状況となり、当サイトにアクセス出来ませんでした。

当サイトが利用しているDDNS(ieServer.netのDDNSサービス)は、結構堅牢なサーバ構成をとっているので、トラブルはめったに無いのですが、一応、DDNSの管理者に連絡し対応して頂きました。

DDNSを無料で提供してくれている管理者の方に感謝します。

参考サイト
無料ダイナミックDNS(DDNS)サービス

ulogd2.xとWebfwlogを設定して見る

ulogd2.0.5とWebfwlog1.1.0を設定して見ました。

ulogdのバージョンが1.x系から2.x系になったので、最初はエラーでulogd2からMySQLのテーブルにデータが挿入出来ず、Webの情報を元に色々と試行錯誤を繰り返し、ようやく設定するととが出来ました。

ポイントは、ulogd2が起動時にチェックするMySQMのlogテーブルに「ulog」(※実態はビュー)を指定するか、取得したいデータのフィールド名(カラム名)を持つダミーのlogテーブルを用意する事でした。

私がハマッタのは、logデータを登録するテーブルだからと思い込み「ulog2」テーブルをulogd2がチェックするテーブルに指定しまって、ulogd2が起動にエラーを吐いてしまいました。(当然、MySQLにデータは登録されません)

ulogd2では、logテーブルが複数ありデータの挿入は関数(FUNCTION)で定義しており、処理を分けて複数のテーブルにデータを挿入する形を取っています。
この為、ulogd2の起動時チェック用logテーブルを用意してやる場合は、ulogd2のMySQL用データベースにある「INSERT_PACKET_FULL」と言う名前の関数(FUNCTION)のCREATEに書かれているカラムを、そのままダミーのlogテーブルを用意する。(実際にテストして見ました)

テスト環境
マシン:Raspberry Pi 3 Model B
OS:Raspbian(Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l)
MySQL:10.1.23-MariaDB-9+deb9u1 Raspbian 9.0
PHP:PHP 7.1
Webサーバ:Apache/2.4.25 (Raspbian)

手順
1.ulogd2とulogd2-mysqlをインストール
sudo apt install ulogd2 ulogd2-mysql

2.ulogd2用MySQLのデータベースとulogd2用のユーザを用意
以下にsqlファイルがあります。
/usr/share/doc/ulogd2/mysql-ulogd2.sql.gz

3.ulogd2のconfファイルの編集
sudo nano /etc/ulogd.conf
# loglevel: debug(1), info(3), notice(5), error(7) or fatal(8) (default 5)
loglevel=5

loglevel=1
にしてulogd2の起動時の状況を確認出来る様にする(※正常動作する様になったら5に戻す)

#plugin=”/usr/lib/arm-linux-gnueabihf/ulogd/ulogd_output_MYSQL.so”
の先頭にある#を削除し
plugin=”/usr/lib/arm-linux-gnueabihf/ulogd/ulogd_output_MYSQL.so”
とする

# this is a stack for logging packet to MySQL
#stack=log2:NFLOG,base1:BASE,ifi1:IFINDEX,ip2bin1:IP2BIN,mac2str1:HWHDR,mysql1:MYSQL
stack=log2:NFLOGの先頭にある#を削除し
stack=log2:NFLOG,base1:BASE,ifi1:IFINDEX,ip2bin1:IP2BIN,mac2str1:HWHDR,mysql1:MYSQL
とする

[mysql1]
db=”ulogd2用DB名”
host=”localhost”
user=”DBのユーザ名”
table=”ulog”
pass=”DBのユーザのパスワード”
procedure=”INSERT_PACKET_FULL”

4.iptablesの設定
ulogd1.xの時に使っていたスクリプトを修正する
ULOG –nlog-group 1 –nlog-prefix “ほげほげ”

NFLOG –nflog-group 1 –nflog-prefix “ほげほげ”
に変更

iptablesの設定後の状態を保存し、起動時用復元ファイルに保存する
sudo sh -c “iptables-save > /etc/iptables.ipv4.nat”

ネットワーク(インターフェイス)を有効にする前にiptableの設定を復元する処理を追加
sudo nano /etc/network/interfaces
# インターフェイスを有効にする前にiptableの設定を復元する処理
pre-up iptables-restore < /etc/iptables.ipv4.nat

5.Webfwlogのセットアップ
ダウンロードした「webfwlog-1.1.0.tar.bz2」を解凍し、
/usr/local/webfwlog-1.1.0となる様に配置する
ディレクトリを移動してスーパーユーザになる
cd /usr/local/webfwlog-1.1.0
su
./configure
make
make install

※もし、makeが正常に終了しない場合は、automakeをインストール
apt install automake

ここまでで、/usr/local/share/webfwlogとしてWebページが出来ます

※予め、MySQLにwebfwlog用のDBとそのユーザを登録(ulod2用のユーザが操作出来る様にしました)
次にMySQL用セットアップファイルのあるディレクトに移動
cd /usr/local/webfwlog-1.1.0/mysql
./setup

スクリプトの途中の選択では、
snortのlog使うか聞かれるが、「no」を選択する
ulogd2のDBの参照するテーブルは「ulog」を指定する
local hostnameを使うか聞かれる部分では、「no」を選択する

スクリプトの処理メニューで、
v で作成したmysqlスクリプトを見る ※ここは選ばなくても良いと思います
s で作成したmysqlスクリプトをファイルとして保存する ※念のため保存した方が良いと思います
r で作成したmysqlスクリプトを実行し、webfwlogの環境をセットアップを行う ※ここは必ず行う
q でメニューを終了する

su – pi # piユーザに戻ります

GeoIP関連を使える様にする
sudo apt install libapache2-mod-geoip
sudo apt install php7.0-bcmath

フリー版GeoIPデータベースファイルを取得する
GeoLite2 Free Downloadable Databases ≪ MaxMind Developer Site
取得したデータデータベースファイルを以下のディレクトリに配置して解凍する
cd /usr/share/GeoIP
sudo gunzip GeoLite2-City.mmdb.gz
sudo gunzip GeoLite2-Country.mmdb.gz

ついでに、コマンドラインでもGeoIPを使える様にする
sudo apt install geoip-database
sudo apt install geoip-bin

webfwlogの環境設定の編集と確認
sudo nano /usr/local/etc/webfwlog.conf

日付フォーマットを変更する部分
## Default: “m/d/Y h:i:sA”
dformat = “Y/m/d H:i:s”

タイムゾーンを変更する部分
# Default: “UTC”
timezone = “Asia/Tokyo”

GeoIPを使う設定に変更する部分
お好みに応じて、GeoLite2-Country.mmdbかGeoLite2-City.mmdbを指定
# Default: off
geoip_php_lookup = on
# The location for the geoip version 2 file to use as an absolute path
## Default: none
geoip2_file = /usr/share/GeoIP/GeoLite2-City.mmdb

後は、apache2にwebfwlogのページを追加する
sudo service apache2 restart

設定したwebfwlogのページをブラウザで確認する

上手く動かない場合は、syslog、apache2、mysqlのログなど確認し、原因を探って下さい。

6.おまけで、ulogd2がmysqlより早く起動してしまうとエラーとなるので、サービスの起動順を指定
systemdのserviceファイルを探す
find /etc/systemd/system -name ulogd2.service

ulogd2(ulod2..service)は、mysql(mariadb.service)の後にする様に指定
sudo nano /etc/systemd/system/multi-user.target.wants/ulogd2.service

[Unit]
Description=Netfilter Userspace Logging Daemon
Documentation=man:ulogd(8)
After=mariadb.service #ここの部分追加する

[Service]

以上、記憶たよりに投稿しましたので、間違っていたらご免なさい。m(_ _)m

構築したWebfwlogのページの画像
構築したWebfwlogのページの画像

参考サイト
ulogd-2.x
WebFwlog
Iptables logging using NFLOG and ulogd2 on Debian Jessie
[ulogd] seems something wrong with mysql-ulogd2.sql
[arch-general] ulogd fails to start – cannot find key `oob.in’
Linuxでのサービスやデーモンの起動順
9.2. システムサービスの管理
iptablesを使ってファイアーウォール(Debian)
iptablesのLOGをNFLOGにしてみる
ulogd2.xのDBの使い方
iptables+ulogd(2.x系)+WebFwlogでサーバアクセス監視(その1-ulogd-2.xのビルド)
動かないulogdとiptablelog analyzer – from where i live…
GeoLite2 Free Downloadable Databases ≪ MaxMind Developer Site
GeoIP2を使ってIPアドレスの情報を取得 (PHP編)
ApacheでGeoIPを利用する方法
知らなきゃ損するiptablesのTips
iptablesでできるDoS/DDoS対策
Service Name and Transport Protocol Port Number Registry
プロトコル番号 ( IP Protocol Number )
コンソールからグローバルIPアドレスがどこの国のものなのか確認する
SSHの接続元IP制限(国単位)をhosts.allow, hosts.denyで
interfaces 覚書

ルーターをRaspberry pi3に交代

ルーターをOpenBlockS266からRaspberry pi3に交代しました。
以前からRaspberry pi3のルーター化を色々とテストしていまして、OpenBlockS266と同じ機能を動かすことが出来たので、交代させました。
ほかにも、XOOPS CubeやXMailの動作テストは既に済んでいますが、今回はルーターとしての機能だけで運用することにしました。
市販の無線LANルーターも有りますがこちらは無線アクセスポイントとして利用しています。
Raspberry pi3のルーターは、サーバやネットワーク管理などのお勉強用として今後も色々とテストして見ようと思います。

OpenBlockS266とRaspberry pi3の写真
OpenBlockS266とRaspberry pi3の写真

※以下、2018.05.14追記
参考サイト
Raspberry pi を DHCP + DNS サーバーにしたい
Raspberry pi を NAT ルーター兼 DHCP + DNS サーバーにしたい
PPPoEのマルチセッションとルーティング イイ(・∀・)!!
らずぱい無線LANルーター化成功
Raspberry Pi 3 アクセスポイント化 ~hostapd~
Raspberry Pi 3のWIFIをAPモードにする方法
Raspberrypi OS (stretch) のリポジトリを日本に変更する
Raspberry Pi をWifi Access Pointにする簡単な方法!
RaspberryPiをアクセスポイントにする(ブリッジモード)
raspberry Pi 3 を WiFi アクセス・ポイント化する
RPiで無線LANのブリッジアクセスポイントを作る
ラズパイで有線LANをTCP接続機器に、Wi-Fiをインターネットに接続する
Raspberry Piの時刻を合わせる
ntpdがうまく動かないのでcronでntpdateして時間合わせをした話
Linuxでのntpdateとcronを使った時刻合わせ

更新プログラム適用によるリモート デスクトップ接続への影響か?

2018年5月の更新プログラム適用によるリモート デスクトップ接続への影響かどうか判りませんが、更新プログラム適用後にWindows2008R2にリモート デスクトップ接続が出来なくなりました。

以下のサイトに情報がありました。
GW 開けの WU では RDP 接続エラーに注意(というか予告)
2018年5月の更新プログラム適用によるリモート デスクトップ接続への影響

ところが私の環境では「認証エラー」ではなく、単に「接続出来ない旨のエラー」が表示されます。
Windows2008R2の接続するネットワークは、社内ネットワークになっていた筈が、更新プログラム適用後はパブリックになってしまいました。
このためWindowsファイアウォールで、リモート デスクトップ接続のパブリックは無効にしてあった為に接続要求はブロックされた様です。
Windows2008R2の接続するネットワークを社内ネットワークに戻したら、あっさりとリモート デスクトップ接続が出来ました。
久々のトラブルシューティングでした。(^_^;

Raspberry pi3のルーター化を試し始めた

Raspberry pi3のルーター化を試し始めました。

OSとして、LEDE(OpenWrt互換)かRaspbianかと思い、Webで情報を集めてテストして見ました。

LEDEでは、http(WebのUI)でのアクセス出来るが、SSHやtelenetでのアクセスが出来ません。
また、追加したUSB接続のLANアダプターを認識してくれず、PPPoEを設定する画面も見あたりません。
私の探した方が悪いのか、設定によって現れるのかも知れません。
ただし、UIを日本語に変更したり、無線LANをアクセスポイントとして使用することは出来ました。

Raspbianでは、幸い、追加したUSB接続のLANアダプターを認識してくれて、現在使っているルーターの設定ファイルを参考にして構築出来そうな感じなので、最小限のソフトを入れてテストしようと思います。
本当に思った通りに動作するか解りせんけど...。

LEDE(Web UI)のログイン画面
LEDE(Web UI)のログイン画面

LEDE(Web UI)のステイタス画面
LEDE(Web UI)のステイタス画面

Raspbianのifconfigコマンド画面
Raspbianのifconfigコマンド画面

参考サイト
OpenWrt Project
RaspberyPi3で携帯用のWiFiのアクセスポイントを作るためにOpenWRT互換のLEDEをインストールしてみる
Raspberry Pi 3にLEDEをインストールした後の初期設定作業を自動化する
OpenWrtでPPPoEを使う
OpenWrt
LEDE(OpenWrt)でPPPoE on VLAN
DS-Lite(RFC6333)対応ルータをLinux (Raspberry Pi) で作る
格安SIM(MVNO)とRaspberry Pi(ラズベリーパイ)でモバイルルータを作った -初期設定から完成まで-
Raspberry Pi Zero WにLEDEをインストールして自分専用の携帯用WiFiアクセスポイントにする
Raspberry Pi/LEDE によるルータ化
家のWi-Fiの環境をRaspberry Pi 3BとLEDEで構築し直したお話。
ラズパイがファイアウォール付き無線LANルーターに変身、「LEDE」で簡単に
Raspberry pi を NAT ルーター兼 DHCP + DNS サーバーにしたい
Raspberry Pi をルーター&無線LANルーター化する
[Debian]linuxルーターの構築 その1 PPPoE(カーネルモード)とiptablesの設定
RaspberryPiをPPPoE対応Wifiルーターにする
Raspberry Pi をWi-Fiアクセスポイント&ルーター化する
Raspberry PI で NAT ルータを作る
Raspberry PiにPPPoE接続でグローバルIPを割り当てる。
ネット環境が壊れた?! Raspberry Piルーター化
Raspberry Piルーター化2
Raspberry Piでローカルアクセスポイントを立てる

「Raspberry Pi 3 B+」が発表された

「Raspberry Pi 3 B+」が発表されました。

変更点は、
1. CPUの動作速度が1.2GHzから1.4GHzに
2. PoE HAT用ピンヘッダを追加
3. 有線LAN 1000 Base-Tに対応
4. 無線LANがIEEE 802.11 ac 5GHzに対応
5. Bluetooth 4.2に対応

個人的には、USB 3.0に対応して欲しかった。

参考サイト
「Raspberry Pi 3 B+」発表のお知らせ
Raspberry Pi 3 Model B+ on sale now at $35

Raspberry Pi3に接続したカメラ、サーボをブラウザで遠隔コントロール

Raspberry Pi3に接続したカメラ、サーボをブラウザで遠隔コントロール出来る様にして見ました。

Raspberry Pi3でtornado(ストリーミング配信用サーバ)を構築」の記事

PCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバーでサーボを制御」の記事にpythonのCGIHTTPServerを組み合わせて、ブラウザで遠隔コントロールを実現させます。

今回は、Raspberry Pi3に接続したカメラの向きを、上下左右にそれぞれ5秒間程度15度向ける様にしました。
カメラのライブ映像を見るブラウザ画面とながら操作できる

手順
1. /home/piにtornado(ストリーミング配信用サーバ)に必要なファイル
camera.py
index.html
を配置します。
※予め、tornado(ストリーミング配信用サーバ)をサービスとして登録して置きます。
systemctl start tornado.service ※tornado(ストリーミング配信用サーバ)を起動
systemctl stop tornado.service ※tornado(ストリーミング配信用サーバ)を停止

2. CGIHTTPServerに必要なファイル
/home/pi/Adafruit_Python_PCA9685に
index.html

/home/pi/Adafruit_Python_PCA9685に
cgiserver.py

/home/pi/Adafruit_Python_PCA9685に
sg90_92r_pca9685_camera_cont_cmd.py

/home/pi/Adafruit_Python_PCA9685/cgi-binに
cam1.cgi

3. cgiserver(カメラコントロール用サーバ)をサービスに登録する
pythonのCGIHTTPServerをsystemdに登録しサービスとして自動起動」を参照

あとは、ブラウザで「http://Raspberry Pi3のIPアドレス:8000/cgi-bin/cam1.cgi」にアクセスし、[livecamera by Raspberry Pi3を起動する]のボタンをクリックし、tornado(ストリーミング配信用サーバ)を起動します。
別にブラウザを立ち上げ、「http://Raspberry Pi3のIPアドレス:8080」にアクセスするとライブ映像を見る事が出来ます。
ライブ映像を見ながらカメラを操作出来る様にふたつのブラウザ画面を適当な位置に移動させます。

※2018-01-11 文章中にリンク情報を追加、一部文言を訂正

Raspberry Pi3のライブカメラをコントロールしている様子
Raspberry Pi3のライブカメラをコントロールしている様子

参考にさせて頂いたサイトのプログラムをほとんどコピペさせて頂きました。
また、◎を付けたサイトの情報をプログラミングのヒントにさせて頂きました。
情報を提供して下さった方々に感謝します。..m(_ _)m

※Web画面を作る際に参考にしたサイト
押されたボタンを取得する – Python CGIプログラミング入門
PythonでWebアプリをつくる(ApacheもWebフレームワークもなしで)

※Python組み込みのWebサーバ関連
サーバー側でPythonスクリプトを動かし、結果をクライアント側に表示する
Python 組み込みのCGIHTTPServerやhttp.serverでcgiを動かす
Pythonで簡易CGIサーバーを利用する
iPad(ブラウザ)とRaspberry Pi 3+Webカメラで遠隔操作するタミヤのタンクを作る ③プログラム編 – OpenCV Python (Flask)
Webブラウザ上で動くアプリをPythonで作ってみる
みんなのPython Webアプリ編 – フォームの処理
Pythonで作るもっとも簡単なフォームの受け渡し
サーバ側で外部プログラムの実行
サブルーチン・関数
python 関数の基本が初心者でもわかる!引数や戻り値も理解できる!
python と php – ハックノート
Raspberry Pi で Adafruit のI2C接続 16-Channel PWM/Servo Driver を試してみた
首ふりwebカメラを作ってみる(4)(サーボ制御編)
Raspberry Pi 3でPCA9685を使う
Raspberry Pi 3 Model Bに専用カメラモジュールを接続する方法
Raspberry Pi サーボモーターとOpen CVで物体追跡カメラ(Meanshift)
raspberry pi2 + カメラ付きサーボで特定の色を追っかけるカメラを作る – Open CV PWM
Python3 OpenCV3を使って物体検出
Raspberry Pi上でTensorFlowで簡単にディープラーニングを試せるツール「tensorflow-pi」でロボホンの幻の顔認識機能に挑戦してみた – 2017-08-16
Raspberry Pi 3でpythonを使いサーボモータを動かす
Raspberrypi2 PWMでサーボモータを動かす
Raspberry Piで自動監視システム Archive
Raspberry Piでサーボモータを制御 -プログラミング, 電子工作 – 2015年11月7日 hidaka_hiroji
Raspberry Piで使うカメラのパン・チルト制御用マウントの組み立て- 電子工作 – 2015年11月14日 hidaka_hiroji
aspberry pi でロボットアームを動かす その6 ゲームパッドで動かせるようにする

pythonのCGIHTTPServerをsystemdに登録しサービスとして自動起動

最初は、pythonのCGIHTTPServerをターミナルからコマンドを入力していましたが、管理を用意にする為に、pythonのCGIHTTPServerをsystemdに登録しサービスとして自動起動できる様に設定したところ、systemdのサービスで起動するとディレクトリのルートで起動してしまい問題が発生しました。

そこで、pythonのプログラムを作成した時のpiユーザの環境変数のうち、必要と思われる環境変数をsystemdのサービスが起動する時に読み込む様にしました。

sudo nano /etc/default/cgiserver ※環境変数を読み込ませる為のファイル

sudo nano /lib/systemd/system/cgiserver.service ※systemdにサービスとして登録するファイル

※5行目はsystemdから起動する時のユーザ
※6行目はsystemdから起動する時に読み込む環境変数

sudo nano /home/pi/Adafruit_Python_PCA9685/cgiserver.py

これで、pythonのCGIHTTPServerをターミナルからコマンドを入力して起動した時とほぼ同様の動きをしてくます。

参考にさせて頂いたサイトのプログラムをほとんどコピペさせて頂きました。
また、◎を付けたサイトの情報をプログラミングのヒントにさせて頂きました。
情報を提供して下さった方々に感謝します。..m(_ _)m

※systemdに登録する時、参考にしたサイト
Python上で環境変数を取得
Systemd で環境変数を読む読む
Pythonでディレクトリを確認し移動する
systemdでユーザーの環境変数を読み込むようにする
systemdの.serviceファイルで、実行ユーザーを指定する
pythonをデーモン化するメモ
Systemdで自作スクリプトをデーモン化
Pythonコードをデーモン化する(Systemdとinit.dの違い)
Python 組み込みのCGIHTTPServerやhttp.serverでcgiを動かす
Pythonで簡易CGIサーバーを利用する
Systemd メモ書き
[Python] 環境変数を扱う
Pythonプログラムを起動時に実行する方法(Systemd)

Raspberry Pi3に接続したPCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバーでサーボを制御

Raspberry Pi3に接続したPCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバーでサーボを制御して見ました。

I2Cに接続のPCA9685は0x40と0x70です。
参考サイトのpythonプログラム sg90_92r_with_pca9685_rev1.py では、サーボの回転角度は、0度(最小値)、90度(ニュートラル位置)、180度(最大値)となります。

サーボホーンを付けただけのサーボをチャンネル0に接続して、参考サイトのsg90_92r_with_pca9685_rev1.pyを実行して終了すると、サーボホーンが90度(ニュートラル位置)で停止した状態になります。
この状態のサーボホーンの90度(ニュートラル位置)を基準として、動かしたい機器に組み込みます。

Raspberry Pi用遠隔操作カメラキットのパン用サーボ(チャンネル0)、チルト用サーボ(チャンネル1)をPCA9685に接続します。
さすがに0-90-180度のサーボ振り角は必要ないので、50-90-120

sg90_92r_with_pca9685_rev2.py

python sg90_92r_with_pca9685_rev2.py のコマンドを入力すると、
上に30度-40度-30度-ニュートラル位置-下に30度-ニュートラル位置となるアクションを繰り返します。

プログラム中の36行目
Servo = SG90_92R_Class(Channel=1, ZeroOffset=-10) #Channel=1はチルト用サーボ
の(Channel=1, ZeroOffset=-10)を(Channel=0, ZeroOffset=-10)に書き換えることで、パン用サーボもテストします。

それぞれのサーボの動き方が判りましたので、最終的には、Webサーバからブラウザでサーボを操作できる様にしたいと思います。

次のステップに備えて、キーボードからの文字入力を読んで、サーボを動かすpythonプログラムを作って見ました。
サーボの動きが速いので、おまけで、1度づつtime.sleep(sec)を使って待ち時間を設けています。
下記プログラムでは、sec = 0.01にセットしています。
sg90_92r_pca9685_camera_cont.py

実行は、python sg90_92r_pca9685_camera_cont.pyで、プログラムを終了するには、「Ctl+C」です。

参考にさせて頂いたサイトのプログラムをほとんどコピペさせて頂きました。
また、◎を付けたサイトの情報をプログラミングのヒントにさせて頂きました。
情報を提供して下さった方々に感謝します。..m(_ _)m

参考サイト
Raspberry Pi用遠隔操作カメラキット – [TSI-Pi-101-W2]販売価格: 3,980円(税別)
Raspberry Pi講座 PWMコントローラ ( PCA9685 )
Raspberry Pi講座 Python2とPython3
Pythonでキー入力
Pythonでプログラムを終了させる:sys.exit()


 

Powered by XOOPS Cube 2.2 © 2001-2016 XOOPS Cube Project Distributed by XOOPS Cube 2.2 Distribution Team.