ラベル Raspberry の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry の投稿を表示しています。 すべての投稿を表示

2018年2月9日金曜日

Rapberry Pi3 のMPEG-2 ライセンスキーを買ってみた。

MPEG-2ライセンスの入手と設定は、グーグル先生で適当に


価格は2ポンド
TTSは160.12円(2018.2.3)
PAYPALで直接支払ったので327円 

3時間後にメールでコードが届きconfig.txtにコピペ

さっそくffmpegで変換。

ts => mp4 へ変換だけだと0.9倍速、
サイズ変更とインターレス解除を行うと0.35倍速。

決して早くはないけど、バッチ処理するんで問題なし。
変換中でも問題なく録画されていたので、予想以上に使える期待。

----------

インストールは、ここを参考にした。



wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar jxvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
./configure --enable-static --enable-omx-rpi --enable-mmal
make -j4
sudo make install

2018年2月8日木曜日

Raspberry Pi3で、コマンドをバックグラウンドで実行

ここを参考にした。

# バックグラウンドで実行
sleep 10 &


末尾に&をつけて実行すればOK
でも、ログアウトするとプロセスがkillされる。

# プロセスを確認
ps u


ログアウトしてプロセスを実行させるには

# バックグラウンドで実行
nohup sleep 10 &

sshでログインして、これで実行させて放置です。

2018年2月3日土曜日

cronでシェルスクリプトが動作しなかった

めちゃくちゃ苦労しました。
シェルスクリプトが動作しないのは、なぜ!?がわからず1週間かかりました。

取り急ぎcronが動いているか確認します。

ps aux | grep cron

動いているようなら下記を追記してログを確認

crontab -e
#追記
* * * * * hogehoge >>log.txt 2>>error.txt

パスが通っていないか、権限の設定が適切でないか、そんなところが原因でした。

2018年1月28日日曜日

Raspberry Pi3 jessie に、Kodiをインストール

OpenELECとかLibreELECがあるのでSDカードに焼いて立ち上げるのもいいですが、細かいところの情報を探すのに手間がかかりそうだったので、RaspbianにKodiをインストールしてみます。

ここ HOW-TO:Install Kodi on Raspberry Pi を参考にやってみました。

sudo apt-get install kodi
sudo apt-get install kodi-pvr-hts


細かいことはわかりませんがこれで完了。

hdmiが繋がっていれば、sshでコマンドから kodi で立ち上がります。

自動起動の設定が他のブログなどを参考にやってみるもうまくできなかったので、crontabで解決させます。

crontab -u pi -e

# 末行に追記
@reboot kodi

これで再起動するたびにkodiが立ち上がるのでOK、簡単でしょ。

2018年1月23日火曜日

recdvb --sid epg で、EPGから番組情報を抜き取る。

recdvb --sid hd ではEPG情報がないようなので、recdvb --sid epgで保存。

ここを参考に、PT3で録画したハイビジョンtsファイルに埋め込まれたEPGから番組情報をコマンドで取り出す これを使用。 https://github.com/youzaka/ariblib さくっと出来て便利、さて これをどう料理するかな。


全部出力
from ariblib import tsopen
from ariblib.event import events

import sys

with tsopen(sys.argv[1]) as ts:
    for event in events(ts):
        max_len = max(map(len, event.__dict__.keys()))
        template = "{:%ds}  {}" % max_len

        for key, value in event.__dict__.items():
            print(template.format(key, value))
        print('-' * 80)

タイトルあるものを出力
from ariblib import tsopen
from ariblib.event import events

import sys

sss = 0
with tsopen(sys.argv[1]) as ts:
    for event in events(ts):
        max_len = max(map(len, event.__dict__.keys()))
        template = "{:%ds}  {}" % max_len

        for key, value in event.__dict__.items():
            if key =="title":
              sss+=1
              print (sss,value)
              print (event.__dict__["start_time"])
              print (event.__dict__["duration"])
              print (event.__dict__["desc"])
              print('*' * 80)

2018年1月22日月曜日

recdvb の help を和訳(意訳!?)してみる

Google翻訳は以前より使いやすくなってますね。
使い方を知りたかったので訳してみた。

Usage:使用方法

recdvb [--b25 [--round N] [--strip] [--EMM]] [--udp [--addr hostname --port portnumber]] [--http portnumber] [--dev devicenumber] [--lnb voltage] [--sid SID1,SID2] [--tsid TSID] [--lch] channel rectime destfile

Remarks:備考

if channel begins with 'bs##' or 'nd##', means BS/CS channel, '##' is numeric.
if rectime  is '-', records indefinitely.
if destfile is '-', stdout is used for output.

チャンネルがBS##かnd##で始まる場合、BS/CSチャンネル、##は数値を意味する。
rectimeが'-'の場合、無限に記録されます。
destfileが'-'の場合、標準出力に出力されます。
Options:オプション

--b25:               Decrypt using BCAS card
    BCASカードを使用して復号化する

  --round N:     Specify round number
 ラウンド数を指定する

  --strip:             Strip null stream
    nullストリームを取り除く   

--EMM:             Instruct EMM operation
    EMM操作を指示する

--udp:               Turn on udp broadcasting
    UDPブロードキャストを有効にする

  --addr hostname:   Hostname or address to connect
     ホスト名またはアドレスに接続する

 --port portnumber: Port number to connect
    接続するポート番号

--http portnumber:   Turn on http broadcasting (run as a daemon)
    httpブロードキャストをオンにする(デーモンとして実行する)

--dev N:             Use DVB device /dev/dvb/adapterN
    DVBデバイスを使用する /dev/dvb/adapterN

--lnb voltage:       Specify LNB voltage (0, 11, 15)
    LNB電圧(0、11、15)を指定します。

--sid SID1,SID2,...: Specify SID number in CSV format (101,102,...)
    SID番号をCSV形式で指定する(101,102、...)

--tsid TSID:         Specify TSID in decimal or hex, hex begins '0x'
    TSIDを10進数または16進数で指定し、16進数は '0x'

--lch:               Specify channel as BS/CS logical channel instead of physical one
     チャネルを物理チャネルではなくBS / CS論理チャネルとして指定する

--help:              Show this help
     このヘルプを表示する

--version:           Show version
    バージョンを表示する

2018年1月6日土曜日

Aliで MyGica S270 をポチった。

2018/1/6
MyGica S270 を2個ポチった。
合計 4,970円
到着は今月末を予定。

ここ「TV録画ができるサーバーを作ろうと思う話」を参考に遊んでみようと思う。
少し変化球でやってみるのも楽しいはず。


2018/1/16
無事到着。約10日で手元に届いた。

Ubuntu16.04に、インストールしてみたけど問題なく動作確認完了。
予想以上に簡単、B-CASカードを裏になっていることにすぐ気がついたしね。
2個同時で認識できてる感じ、分配器がなかったので動作確認はできなかった。

今週末にでも、RaspberryPi3にインストールしてみようか。

2018/1/19
Ubuntu 16.04で引き続き動作確認を継続。
設定は奥が深い。

このエラー”error: too many initializers for ‘const Keyset_t’”
で苦しむ。。。難しい。。。あきらめる。

2018/1/20
全体像がなんとなく。

ttps://qiita.com/

ww24/items/0adc36c013511524da80
JHiyama/items/c5cdaeef9a054c24e164

できないものは、できない。は、は、は。


試行錯誤するなら vi の使い方覚えないといけない。
Raspberry Pi は面白い。なかなか奥が深い。パズルだ。

2018/1/21
わかった気になっていただけ、わかんない、複雑。。。

npm install で必要なmoduleは揃うんですね。

さて、初期化して、次のことして遊ぼ。
chinachuのインストールは挫折、うまくいかない。



免責事項
この記事は学術研究目的で記載されています。学術研究の範囲を逸脱した利用はご遠慮ください。
地上波デジタル放送及び、受信した映像音声データは放送法、著作権法などにより保護されています。インターネットを介した再送信等の行為は犯罪です。取り扱いには十分ご注意ください。
この記事を参考にしたことにより生じたあらゆる損害について、著者は一切責任を負いません。


2017年9月26日火曜日

Raspberry Pi 3 で、HDMI 3.5inch LCDモニタ のタッチスクリーンを設定(ドライバー)してみる。

この記事の続きになります。

Amazonで購入した OSOYOO 3.5インチLCD のタッチスクリーンを設定(ドライバー)してみた。

Raspberry Pi(Linux OS装着)で3.5” タッチスクリーン(HDMI版)のドライバーをインストールする
このWebをみればできると思いますが、簡単にまとめてみます。

ドライバーを、ここからダウンロードする。

# ドライバーをダウンロードする。
wget http://osoyoo.com/driver/LCD_show_35hdmi.tar.gz

# 実行許可、解凍、移動、バックアップ、設定
sudo chmod 777 LCD_show_35hdmi.tar.gz
tar -xzvf LCD_show_35hdmi.tar.gz
cd LCD_show_35hdmi
sudo ./LCD_backup
sudo ./LCD35_720*480

数分後、再起動して完了です。
復元する場合は

# 復元する
sudo ./LCD_restore

私の場合、Raspberry Pi 3 をコンソールで使用している為、Python+Pygameで作動を確認しました。

#!/usr/bin/python
# coding: UTF-8

import os
import pygame
from pygame.locals import *

os.putenv('SDL_MOUSEDEV','/dev/input/event0')
dSize = (720,480)
pygame.init()
lcd = pygame.display.set_mode(dSize)

if __name__ == "__main__":
  while True:
    # Scan touchscreen events
    for event in pygame.event.get():
      if event.type == MOUSEMOTION:
        pos = pygame.mouse.get_pos()
        print pos
      if event.type == KEYDOWN:
        exit()

結果は、X方向の数値はでるものの、Y方向が0を表示したまま、タッチスクリーンは使い物になりませんでした。
もともと期待はしていませんでしたが残念です。

次は 液晶モニター3.5インチ を購入して試してみたい。

2017年9月22日金曜日

Raspberry Pi3で、コンソールからpygameを使用して画面表示に挑戦(その3)

この記事の続き。

単純に画像ファイルを表示するだけでは、変化が無く面白くないので、BeautifulSoupを使ってWebの画像とデータを表示するものを作成してみました。

Web scrapingは、個人利用か検索用に使用するに留めるべき、マナーがありますのでご利用は計画的に。

今回作成したコードは、Raspberryで個人的に閲覧できるようにしたものです。
ご指摘などございましたらコメント下さい。

#!/usr/bin/python
# coding: UTF-8

import pygame
import urllib2
from time import sleep
from bs4 import BeautifulSoup
from PIL import Image
import cStringIO

def getZaifxChart():
    # urlからhtmlを読み込み、BeautifulSoupで処理する。
    url = "http://zai.diamond.jp/fx?time=1d#charttop"
    html = urllib2.urlopen(url).read()
    soup  = BeautifulSoup(html,"html.parser")
    tagDiv = soup.find_all("div",class_="world-chart-main2 clearfix")

    listTitle  = []
    listNumber = []
    listUrl    = []
    listKey    = []
    # タイトル、URLを抽出する。
    for items in tagDiv:
        for item in items.find_all("div",class_="money-title2 clearfix"):
            for itemTitle in item.find_all("span",class_="chart-title"): # title
                listTitle.append(itemTitle.get_text().encode('utf_8'))
            for itemNumber in item.find_all("span",class_="chart-number"): # Number
                listNumber.append(itemNumber.get_text().split(" ")[0].encode('utf_8'))
        for item in items.find_all("img",class_="refresh-element"): # url,key
            listUrl.append(item["src"])
            listKey.append(item["alt"])

    # PIL で画像を処理する(拡大)。
    listChartUrl = []
    for i in range(0,len(listTitle)):
        # タイトル、価格、アドレス、キー
        listChartUrl.append([listTitle[i],listNumber[i],listUrl[i],listKey[i]])

    return listChartUrl

def main():
    #初期設定
    dSize = (720,480)
    colorBG   = (0,0,0)
    colorFont = (255,255,255)
    # pygame初期設定
    pygame.init()
    lcd = pygame.display.set_mode(dSize)
    lcd.fill(colorBG)
    txtfont = pygame.font.Font("font/tihayagothic.ttf",40)

    # チャートを表示する
    listChartUrl = getZaifxChart() # チャートのURLを取得
    for rows in listChartUrl:
        # urlから画像を読み込みPILでオープンする
        imageFile = cStringIO.StringIO(urllib2.urlopen(rows[2]).read())
        img = Image.open(imageFile).convert("RGB")
        x,y = img.size # サイズを取得する
        imgRe= img.resize((int(x*3.5),int(y*3.5)))
        # 画像データをpygameフォーマットに変換
        imggm = pygame.image.fromstring(imgRe.tobytes(),imgRe.size,imgRe.mode).convert()
        # テキストを書き出す
        fonttext  = txtfont.render(rows[0].decode('utf-8')+"  "+rows[1].decode('utf-8'),False,colorFont,colorBG)
        # 画面に画像を描画する
        lcd.fill(colorBG)
        lcd.blit(imggm,(70,10))
        lcd.blit(fonttext,(75,425))
        pygame.display.update()
        sleep(2)
main()

2017年9月20日水曜日

Raspberry Pi3で、コンソールからpygameを使用して画面表示に挑戦(その2)

Raspberry Pi3で、コンソールからpygameを使用して画面表示に挑戦(その1) の続きです。

まだ完成していませんが、ほぼいい感じにまとまり始めています。

色々試して行く中で、pygameは日本語フォントが使えず、そのままでは文字化けして表示できませんでした。 なので、こちらの記事を参考に試して見たいと思います。

試用してみるフォントとルールはこちらを参照

個人使用になるはずなので、ひとまず熟読する。
WindowsのMSゴシック、MS明朝などはコピーするとライセンス違反になりますので、技術的に難しくないですが使用しません。

コードはこんな感じ。
# 初期設定
pygame.init()
lcd = pygame.display.set_mode(dSize)
# フォントを設定する。
textfont = pygame.font.Font("ooooo.ttf",40) # 同じフォルダに入れておく。
textbuff = textfont.render("ここにテキストを入れる",False,colorFont,colorBG)
# 画面に画像を描画する
lcd.fill(colorBG)
lcd.blit(textbuff,(0,0))
pygame.display.update()

2017年9月2日土曜日

Raspberry Pi3で、コンソールからpygameを使用して画面表示に挑戦(その1)

Raspberry Pi3で、コンソールからpygameを使用して画面表示に挑戦(その1)

この記事「Raspberry Pi 3 で、SSHからコンソールに画像をfbiで出力してみた。」で、fbiコマンドを使ってみたが簡単なようで使い難かった。

pygameは標準で入っているようなので、pythonで使ってみる。

参考にしたWebは、こちら

sudoで実行すると動きます。
終了するとコンソールに戻るのでsleep入れてあります。


2019/5/12
Yさん、コメントありがとうございます。
僕も全画面で表示したく色々試した記憶があります。
その時は、HDMIの出力解像度を全画面になるよう調整したと思います。
その記事はこちら、もっと良い方法が見つかったら教えてくださいね。


#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import pygame 
import os 
from time import sleep 

os.putenv('SDL_FBDEV', '/dev/fb0') 
pygame.init() 

lcd = pygame.display.set_mode((480, 320)) 
lcd.fill((255,0,0)) 
pygame.display.update() 
sleep(2) 

pygame.mouse.set_visible(False) 
lcd.fill((0,0,0)) 
pygame.display.update() 
sleep(2) 

2017年8月18日金曜日

Raspberry Pi 3 で、SSHからコンソールに画像をfbiで出力してみた。


Raspberry Pi 3 で、SSHからコンソールに画像をfbiで出力してみた。

sudo fbi -d /dev/fb0 -T 1 -noverbose -a img.jpg

以上。


Raspberry Pi 3のIPアドレスを固定してみた。


Raspbian Jessieのバージョン、無線LAN設定(2017/08/19)

ここを参考にしました。


Raspbian Jessieのバージョンは、
/etc/dhcpcd.confファイルへ設定内容を追記。

とりあえずバックアップする。
sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf-bk

sudo /etc/dhcpcd.conf

# 追記
interface wlan0
static ip_address=192.168.24.●●/24
static routers=192.168.24.1
static domain_name_servers=192.168.24.1


再起動できれば完了。

2017年7月15日土曜日

Raspberry pi 3 HDMI 設定


OSOYOO HDMI
3.5インチLCD
ディスプレイ モニター

を、2,980円で購入

HDMI の解像度を設定する。

sudo vi /boot/config.txt

hdmi_group=1
hdmi_mode=2

hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0
hdmi_cvt 720 480 60 6 0 0 0

にしてみて完了。



2017/9/1修正
2017/9/10修正:いろいろ試した結果、720x480がちょうど良い感じ。

2017年1月22日日曜日

Raspberry pi 3、wifiを設定してみる。

Raspberry pi 3、wifiを設定してみる。

参考にしたページはこちら。
Raspberry Pi 3を買ってMacを使ってWiFi接続とSSHの接続するまで
http://qiita.com/toshihirock/items/8e7f0887b565defe7989


自宅のSSIDPASSPHRASEを設定する。

sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'


生パスワードを削除する。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="hoge-fuga"
    #psk="xxxxxx" <-このコメントアウトを削除
    psk=eca950...
}


以上、設定完了。

Raspberry pi 3、USBカメラの画像をSimpleCVで保存

Raspberry、USBカメラの画像をSimpleCVで保存


USBカメラが余っていたので、Raspberryで有効活用を考えてみた。
監視カメラがいいですよね。
定期的にJpeg画像を保存するなら、簡単そうなのでやってみた。


USBカメラのチェック

lsusb

該当するusbデバイスが確認できればOK


今回はPythonでSimpleCVを使用してUSBカメラの画像を保存するようにします。

SimpleCVをダウンロードします。

Latest Stable Release: SimpleCV Version 1.3 Superpack
http://simplecv.org/download/


さて、ここからがインストールに時間かかりました。

ダウンロードしたdebパッケージをインストールするために

sudo apt-get install gdebi -y
sudo gdebi SimpleCV-1.3.deb

完了したら、適当なファイル名test.pyで

!/usr/bin/python
from SimpleCV import Camera, Image
from datetime import datetime
import time
path = "/home/user/Documents/raspberrypi/"
camera = Camera()
time.sleep(3)
img = camera.getImage()
fileName = datetime.now().strftime("%Y%m%d%H%M%S") + ".jpg"
img.save(path + fileName)
print("save image")
time.sleep(1)

を実行、cronに設定すれば時間毎に保存してくれます。

2017-01-11-raspbian-jessie-lite

2年ぶりに更新

 最後の記事が21年3月でしたので、27ヶ月ぶり。 2020年頃から始まったコロナ禍から在宅ワークがなくなり、通常運転に慣れてきた頃。 そろそろ新しい趣味を探していこうと思っています。 さて何するかな。。。