衛星通信と普通のインターネットの回線速度を調べてみた
- 作者: 宮崎康行
- 出版社/メーカー: オーム社
- 発売日: 2011/11/25
- メディア: 単行本(ソフトカバー)
- クリック: 13回
- この商品を含むブログ (4件) を見る
メモ
最近、新たな趣味の衛星開発エンジニアリングというので、いつもWeb触ってるから、回線速度が気になって比較してみた。衛星開発の通信ではモールス信号ができると地上と連絡がとれるということなので、モールス信号は、あんまり知らないけどツー・トンの2種類の信号で文字列処理をするわけだから、これをHTMLデータをバイナリデータにエンコードして送信して、デコードして復元すれば、あとはウェブサーバーにデータを食わせるなど環境を整えればHTTP通信ができるのでは・・・と思うのだが、どのくらいスピードが違うのだろう・・・ということで調べてみた。
調査結果
auのインターネット
auひかりは通信速度、最大1Gbps (1,000Mbps)でサービス提供を行っています。
NURO光ではさらに速い、最大2Gbps(2,000Mbps)でインターネットが利用できます。
なるほど。ここでふじ3号というアマチュア衛星をしらべると、
データ通信速度1,200bps(アップリンク:2相PSK、ダウンリンク:FM変調) および9,600bps(アップリンク:FSK(G3RUH方式)、ダウンリンク:FSK(G3RUH方式))
引用元
ふじ3号 - Wikipedia
桁が3桁ずれてるのか・・・
なつかしのISDNを比較対象に調べてみた。あの画像がゆっくりでてきて止まるやつ・・・
ISDNは1回線あたり64Kbpsのスピードです。2回線を使用すれば128Kbps
引用元
www.wanichan.com
最近のインターネット 1,000,000bps~2,000,000bps
ISDN 64,000bps~128,000bps
ふじ3号(FSK) 9,600bps(FSK方式ではない場合1,200bps)_
なるほど・・・ISDNより遅いのか・・・宇宙との通信の難しさを垣間見えますね・・・動画を送る衛星放送の衛星の通信パワーってすごいんだろうな・・・また機会があったら調べてみよう・・・
人工衛星開発プロジェクト『RymanSat』技術部門参加にあたって今後の目標。KiCadで基盤を起こせるようになる。
- 作者: 宮崎康行
- 出版社/メーカー: オーム社
- 発売日: 2011/11/25
- メディア: 単行本(ソフトカバー)
- クリック: 13回
- この商品を含むブログ (4件) を見る
人工衛星開発プロジェクト『RymanSat』に加入
今年今月に飛ぶのが00号機という初号機で、以降、01号、02号とあるのだが、自分は01号通信機開発班、02号電源開発班の開発チームに加入することにした。最初はソフトウェアで貢献しようと思っていたのだが、いつもの気まぐれ好奇心からほぼ初心者であるハードウェアにチャレンジすることにしてみた。うーん、どこまで行けるかな・・・まあ行けるところまで・・・・・・ソフトウェアの開発は独学で自分が満足できる程度で習熟できたと思っているので、行けるような気もしてる、頑張ろう^^
中期目標
- KiCADに習熟する
工場で先輩スタッフの方からレクチャーいただいたところ、電子回路を起こす仕事が01号機ではメインになりそうだったのでまずはこのKiCADというものに習熟する必要があるとのことだったのでそこからスタートする。
- 回路図完成品から基盤を起こせるようになる。
直近の目標
このあたりで簡単な回路を書いて基盤をおこせるようになる
www.slideshare.net
電子工作など関連の電力基礎知識と放熱がどのくらい出るかの目安のための自分用メモ
専門外なので、調べてみた
主にラズパイでの電子工作時にショートとか怖くて、なかなかチュートリアルから外れた配線ができないので、色々電力関係について調べてみた。
(読者の皆様:なんか違うこともあるかもしれないのでご指摘いただければ勉強させていただきます〜。)
電力の基礎知識
- 電流(A) × 電圧(V) = 電力(W)
- 一般的なコンセントに流せるアンペア数は15 Aまで
- 一つのコンセントで合計1500 Wまで使うことができます。
電流、電圧、電力の関係は次の式であらわされます。
電流(A) × 電圧(V) = 電力(W)
コンセントのデフォルト設定
一般的なコンセントに流せるアンペア数は15 Aまでです。一般家庭用の電圧は100 Vです。一つのコンセントで合計1500 Wまで使うことができます。
つまり携帯充電器1Aのものだったら、現実でおきる細かな条件を考えない場合は理論上はタコ足1,500個同時挿しできるということか・・・(やらんけど・・・youtuberでやる人おりそう・・・)
ブレーカーのデフォルト設定
一般的なブレーカーは20Aです。よって、一つの回路で合計 2000Wまで使うことができます。
20A×100V(一般家庭の電圧)=2000W
うちは30Aだから、3000Wまで同時に使える 50Aまで上げると、5000Wまで同時に使えるのか、なるほど。
- エアコン 660W /100 ==>6.6A
- 冷蔵庫450リットル 250W /100 ==>2.5A
- テレビ 210W /100 ==>2.1A
- デスクトップPC 150W~500W /100 ==>1.5A~5A
- ノートPC 30W~80W /100 ==>0.3A~0.8A
- ゲーミングPC (OMEN by HP Desktop 880 ハイパフォーマンスモデル gtx1080)38W~360W /100 ==>0.3A~3.6A
- Mac mini(Mac mini (Late 2014) 1.4GHz デュアルコア Intel Core i5、4GB 1600MHz LPDDR3、500GB (5400 RPM) HDD、Intel HD Graphics 5000) 6W~85W /100 ==>0.06A~0.85A
- ラズパイ2B 44W~65W /100 ==>0.44~0.65A
- ラズパイ3 42W~84W /100 ==>0.42A〜0.84A
だいたい1A以下で小さめの家電、でかいので5A前後って感じだな・・・
引用元 https://enechange.jp/articles/large-consumption-appliances
http://d.hatena.ne.jp/naga_sawa/20160803/1470196569
電気料金
電気料金 = 消費電力量(kWh) × 27円 例)1000 Wの電気ストーブを2時間使った場合 1000W×2時間=2000Wh(2kWh) 2kWh×27円=54円
なんかpythonで消費電力モジュールできるな、これ
引用元 電気の基礎知識 - 家電情報ポケット - Panasonic
ワット数と熱さ
11W 白熱電球60W 熱として放出されるのは11W あれも触れないくらい熱いね。。。
15W〜70W はんだごて やけどする程度に熱いよな
500W~600W 電子レンジ 加熱調理出来る時点で熱いわ
白熱電球60W(0.6A)であっつ〜いって感じだから、とにかく家電系のワット数の熱源をちょっと触ると大体体感だと熱いんやな・・・苦笑
参考記事
電気の基礎知識 - 家電情報ポケット - Panasonic
https://zh.nc-net.com/knowledge/morilog/detail/14504/
http://www.tlt.co.jp/tlt/lighting_design/design/basic/data/57_60.pdf
ラズパイ2TypeBのファイアーウォール設定メモ
たまにしかいじらないので忘れる
これ系は、そういう感じですので、ここに使ったコマンドをまとめることにします。
押さえておくポイント
ラズパイの型番は、ラズパイ2TypeB
OSはRaspbian
ファイアーウォールのパッケージは"iptables(インストール時のパッケージ名は"iptables-persistent"(のはず。昔過ぎて記憶が曖昧でごめんなさい))"
設定ファイルの場所→/etc/iptables/rules.v4
手順
0:iptables がインストールされているか確認
$which iptables /sbin/iptables
こんな感じでインストールされていなければapt-getでゲットします。
1:設定ファイルを書き込む。
$ sudo vim rules.v4
書き込み例
-A INPUT -p tcp --dport 80 -j ACCEPT
↑80番ポートは開けます(HTTP通信のため)(細かいセッティングオプションは省略)
2:書き込んだら保存
3:iptables 再起動 <ハマリポイント>
$ sudo /etc/init.d/netfilter-persistent restart [ ok ] Restarting netfilter-persistent (via systemctl): netfilter-persistent.service.
以下色々ためしましたが、自分のパッケージではエラーがでました。他のパッケージでは"sudo service iptables restart"で通るっぽい。
sudo service iptables restart sudo service iptables-persistent restart sudo /etc/init.d/iptables restart sudo /etc/init.d/iptables-persistent restart
4:反映されているか確認
$ sudo iptables -L
参考にした記事
開発日誌:ラズパイ+AWS S3でネットワークカメラもどきを作ってみるvol.4[完結編]:cronで定期的に撮影させる
これを使って遊びます。
- 出版社/メーカー: Raspberry Pi
- メディア: Personal Computers
- この商品を含むブログを見る
今までの経緯
カメラを作動させて・・・ k-mawa.hateblo.jp
pythonで動けるようにして・・・ k-mawa.hateblo.jp
撮影した画像をS3にアップして見えるようにして・・・ k-mawa.hateblo.jp
今回は仕上げで定期的に撮影してS3にアップして遠隔から状況をわかるようにします!
手順
cronです。久しぶりなのでちょっと忘れてます。
この記事が役立ちました。参考にしています。 Saba note
1:crontabを編集します。
cronのスケジュールが書いてあるcrontabを編集します。
$ crontab -e
vimでいじります。
0,10,20,30,40,50 * * * * python3 /home/[ユーザー名]/py3env/capture_and_up.py
10分間に一回撮影にしました。
編集終わったら書かれているかどうか確認。次のコマンドです。
$ crontab -l
OK書かれてます。
2:cron再起動
とりあえず久しぶりにcron触るのでちゃんと動いているか見ます。このコマンドです。
$ /etc/init.d/cron status ● cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled) Active: active (running) since 土 2018-01-06 11:17:05 JST; 4h 57min ago Docs: man:cron(8) Main PID: 405 (cron) CGroup: /system.slice/cron.service └─405 /usr/sbin/cron -f
動いていました。
再起動一応します。しなくても反映されているらしいという書き込みがありましたが、cron自信ないので、念のため。
$ sudo /etc/init.d/cron restart [ ok ] Restarting cron (via systemctl): cron.service.
これで10分おきにS3に部屋の様子がアップされるようになりました!!
ラズパイデバイスで生活がより豊かになりそうです〜^^v
開発日誌:ラズパイ+AWS S3でネットワークカメラもどきを作ってみるvol.3:カメラで撮った写真をS3へアップロード
これを使って遊びます。
- 出版社/メーカー: Raspberry Pi
- メディア: Personal Computers
- この商品を含むブログを見る
今までの経緯
カメラを作動させて・・・ k-mawa.hateblo.jp
pythonで動けるようにして・・・ k-mawa.hateblo.jp
今回は、撮影した画像をS3(Amazon AWSのストレージサービス)にアップして見えるようにします。
手順
1:S3でバケットをつくる。
S3でバケットを作ります。アクセス権限はパブリックにしてください。
BUKKET NAMEは "picamerakmawa"にしました。
2:boto3をインストール
AWSを動かす用のモジュールはboto3といいます。
(py3env) [USERNAME]:~/py3env $ pip3 install boto3 Collecting boto3 Downloading boto3-1.5.9-py2.py3-none-any.whl (128kB) 100% |████████████████████████████████| 133kB 851kB/s Collecting botocore<1.9.0,>=1.8.23 (from boto3) Downloading botocore-1.8.23-py2.py3-none-any.whl (4.0MB) 100% |████████████████████████████████| 4.0MB 44kB/s Collecting jmespath<1.0.0,>=0.7.1 (from boto3) Downloading jmespath-0.9.3-py2.py3-none-any.whl Collecting s3transfer<0.2.0,>=0.1.10 (from boto3) Downloading s3transfer-0.1.12-py2.py3-none-any.whl (59kB) 100% |████████████████████████████████| 61kB 779kB/s Collecting docutils>=0.10 (from botocore<1.9.0,>=1.8.23->boto3) Downloading docutils-0.14-py3-none-any.whl (543kB) 100% |████████████████████████████████| 552kB 254kB/s Collecting python-dateutil<3.0.0,>=2.1 (from botocore<1.9.0,>=1.8.23->boto3) Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB) 100% |████████████████████████████████| 194kB 457kB/s Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1->botocore<1.9.0,>=1.8.23->boto3) Downloading six-1.11.0-py2.py3-none-any.whl Installing collected packages: docutils, jmespath, six, python-dateutil, botocore, s3transfer, boto3 Successfully installed boto3-1.5.9 botocore-1.8.23 docutils-0.14 jmespath-0.9.3 python-dateutil-2.6.1 s3transfer-0.1.12 six-1.11.0
無事ダウンロードできました。
3:awscliインストール
これはアクセスキーとかの管理用モジュールかと思われます。とりあえずアクセスキーをラズパイ内部で機能させるのに必要ですのでインストールします。
(py3env) [USERNAME]:~/py3env $ pip3 install awscli Collecting awscli Downloading awscli-1.14.19-py2.py3-none-any.whl (1.2MB) 100% |████████████████████████████████| 1.2MB 155kB/s Collecting rsa<=3.5.0,>=3.1.2 (from awscli) Downloading rsa-3.4.2-py2.py3-none-any.whl (46kB) 100% |████████████████████████████████| 51kB 1.1MB/s Requirement already satisfied: botocore==1.8.23 in ./lib/python3.4/site-packages (from awscli) Requirement already satisfied: s3transfer<0.2.0,>=0.1.12 in ./lib/python3.4/site-packages (from awscli) Collecting colorama<=0.3.7,>=0.2.5 (from awscli) Downloading colorama-0.3.7-py2.py3-none-any.whl Requirement already satisfied: docutils>=0.10 in ./lib/python3.4/site-packages (from awscli) Collecting PyYAML<=3.12,>=3.10 (from awscli) Downloading PyYAML-3.12.tar.gz (253kB) 100% |████████████████████████████████| 256kB 596kB/s Collecting pyasn1>=0.1.3 (from rsa<=3.5.0,>=3.1.2->awscli) Downloading pyasn1-0.4.2-py2.py3-none-any.whl (71kB) 100% |████████████████████████████████| 71kB 1.1MB/s Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in ./lib/python3.4/site-packages (from botocore==1.8.23->awscli) Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in ./lib/python3.4/site-packages (from botocore==1.8.23->awscli) Requirement already satisfied: six>=1.5 in ./lib/python3.4/site-packages (from python-dateutil<3.0.0,>=2.1->botocore==1.8.23->awscli) Building wheels for collected packages: PyYAML Running setup.py bdist_wheel for PyYAML ... done Stored in directory: /home/[USERNAME]/.cache/pip/wheels/2c/f7/79/13f3a12cd723892437c0cfbde1230ab4d82947ff7b3839a4fc Successfully built PyYAML Installing collected packages: pyasn1, rsa, colorama, PyYAML, awscli Successfully installed PyYAML-3.12 awscli-1.14.19 colorama-0.3.7 pyasn1-0.4.2 rsa-3.4.2
できた〜
4:AWSアクセスキーなどラズパイ内部に登録
次に実際にawscliを使ってアクセスキーを入れます。
(py3env) [USERNAME]:~/py3env $ aws configure AWS Access Key ID [None]: *********** AWS Secret Access Key [None]: *********** Default region name [None]: *********** Default output format [None]: json
"Default output format"はjsonと入れとけばとりあえずはOK。(デフォルト設定)
configure fileができてるかなと、ためしに見てみると・・・
(py3env) [USERNAME]:~/py3env $ ls bin include lib pip-selfcheck.json test_by_python.jpg (py3env) [USERNAME]:~/py3env $ ls -a . .. bin include lib pip-selfcheck.json test_by_python.jpg
ないですね。それで大丈夫です。一番上のディレクトリに隠れフォルダで".aws"というフォルダに格納されています^^
(py3env) [USERNAME]:~/py3env $ cd ../ (py3env) [USERNAME]:~ $ ls -a . .config .python_history public_html .. .dbus .ssh py3env .Xauthority .dmrc .themes ダウンロード .anthy .gstreamer-0.10 .thumbnails テンプレート .asoundrc .idlerc .viminfo デスクトップ .aws .ipython .xsession-errors ドキュメント .bash_history .local .xsession-errors.old ビデオ .bash_logout .minecraft 2018-01-06-114036_1280x1024_scrot.png 音楽 .bashrc .pip 2018-01-06-114041_1280x1024_scrot.png 画像 .cache .profile 2018-01-06-114043_1280x1024_scrot.png 公開
なかを見てみると・・・
(py3env) [USERNAME]:~ $ cd .aws (py3env) [USERNAME]:~/.aws $ ls config credentials
ありましたね。打ち間違えたりしたらここから直接書き換えればOKです。
5:Pythonでアップローダー実装
ようやくPythonコードが打てます。次のようにします。
>>> import boto3 >>> BUCKET_NAME = 'picamerakmawa' >>> s3 = boto3.resource('s3') >>> s3.Object(BUCKET_NAME, 'test_by_python.jpg').upload_file('/home/[ユーザー名]/py3envt_by_python.jpg')
解説をしておくと、
s3.Object(BUCKET_NAME, 'test_by_python.jpg').upload_file('/home/[ユーザー名]/py3envt_by_python.jpg')
「BUCKET_NAMEで指定したバケット('picamerakmawa')に'/home/[ユーザー名]/py3envt_by_python.jpg'パスの画像を、'test_by_python.jpg'という名称でアップロードしてね。」という意味です。
バケットを見ると、無事アップロードされていますね!
ちょっと見てみましょう・・・
おや!ダイアログで選択しないと見れないとかなんとか・・・これは不便・・・
これを解説するには、オプションのプロパティをくっつけときます。ExtraArgsの部分です。
>>>s3.Object(BUCKET_NAME, 'test_by_python2.jpg').upload_file('/home/[ユーザー名]/py3env/test_by_python.jpg', ExtraArgs={'ContentType': 'image/jpg', 'ACL': 'public-read'})
これでtest_by_python2.jpgはすぐ閲覧できました。
まとめたコードがこちら(セキュリティ上パス一部改変)
""" capture """ import picamera from datetime import datetime #本番では時間も計測してファイル名に埋め込んでいる cam = picamera.PiCamera() cam.resolution = (640,480) image_name = "/home/[ユーザー名]/image_rooms/pycamera.jpg" cam.capture(image_name) """ upload """ import boto3 BUCKET_NAME = 'picamerakmawa' s3 = boto3.resource('s3') s3.Object(BUCKET_NAME, 'pycamera.jpg').upload_file('/home/[ユーザー名]/image_rooms/pycamera.jpg', ExtraArgs={'ContentType': 'image/jpg', 'ACL': 'public-read'})
開発日誌:ラズパイ+AWS S3でネットワークカメラもどきを作ってみるvol.2:カメラをPythonで制御
これを使って遊びます。
- 出版社/メーカー: Raspberry Pi
- メディア: Personal Computers
- この商品を含むブログを見る
今までの経緯
前回はカメラを機能するようにしたので、今回はPythonコードで制御できるようにしたよ。
手順
1:まずは、python-picameraというモジュールをOSにインストール。
apt-getで行う。
[ユーザー名]:~/py3env $ sudo apt-get install python-picamera [sudo] password for [ユーザー名]: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 python-picamera はすでに最新版です。 以下のパッケージが自動でインストールされましたが、もう必要とされていません: libasn1-8-heimdal libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libroken18-heimdal libwind0-heimdal libxfce4ui-1-0 xfce-keyboard-shortcuts これを削除するには 'apt-get autoremove' を利用してください。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 10 個。
なんかすでに入っていた模様・・・問題は特になし。では次。
2:仮想環境に移行
(ラズパイでの仮想環境の構築方法はこちら→ Raspbian(RaspberryPi)でvirtualenvを導入したときのメモ - まわ )
[ユーザー名]:~/py3env $ ls bin include lib pip-selfcheck.json [ユーザー名]:~/py3env $ source ./bin/activate (py3env) [ユーザー名]:~/py3env $ ls bin include lib pip-selfcheck.json
3:とりあえず動作確認・・・
(py3env) [ユーザー名]:~/py3env $ python Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import picamera Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named 'picamera' >>> exit()
あれ、"picamera"ってモジュールが無いと来た。試しにpip3で入れてみる。
4:picameraをインストール
今度はapt-getでなくpip3で入れる。
(py3env) [ユーザー名]:~/py3env $ pip3 install picamera Collecting picamera Downloading picamera-1.13.tar.gz (143kB) 100% |████████████████████████████████| 153kB 899kB/s Building wheels for collected packages: picamera Running setup.py bdist_wheel for picamera ... done Stored in directory: /home/[ユーザー名]/.cache/pip/wheels/bd/5f/88/3109bd5aa7e6c5cf62d71d6cbf444d46a9d932df4af35f2071 Successfully built picamera Installing collected packages: picamera Successfully installed picamera-1.13
オッ、行けたっぽい。再度pythonシェルへ。
5:カメラをPythonコードで制御
以下のように打つと・・・
(py3env) [ユーザー名]:~/py3env $ python Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import picamera >>> cam = picamera.PiCamera() >>> cam.resolution = (640,480) #↑撮影画像の縦横ピクセルを指定可能 >>> cam.capture(test_by_python.jpg) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'test_by_python' is not defined #↑captureするファイル名は""でくくって文字列と明示が必要 >>> cam.capture("test_by_python.jpg") >>> exit()
撮れてるかファイルを確認すると、
(py3env) [ユーザー名]:~/py3env $ ls bin include lib pip-selfcheck.json test_by_python.jpg
できてる。実際に画像も撮れていた。OK。次は、botoでS3にアップだな。