AIに抗う

Aiなんかに負けてたまるか

【Python】複数のPDFを統合する

過去に(約一年前…)Pythonで画像からPDFを作成する方法を紹介しましたが↓
www.developer-sosa.com

今回はPDFを統合する方法を紹介します。

前提

Anacondaをインストールしていること

準備

必要なライブラリをAnaconda promptからインストール

pip install PyPDF2

コード

import PyPDF2,os

#複数のPDFが保存されたフォルダパス
pdf_path = r"c:/pdf/"
#統合後のPDF名
mergename = "mergepdf.pdf"

#統合するPDFの入れ物を作成
mergefile = PyPDF2.PdfFileMerger()

#入れ物にPDFを追加していく
for p in os.listdir(pdf_path):
    mergefile.append(pdf_path + p)

#統合されたPDFを保存
mergefile.write(pdf_path + mergename)
mergefile.close

 

まとめ

PDFを統合するのはPDFを作成するより簡単です。
ぜひやってみてください。
わからないことがあればお問い合わせください。

以上。
 

 

【ラズパイ】スマートロックを自作してみた

ラズパイことraspberry piで、スマートロックを作ってみました。

経緯

自宅の鍵を開けるときに鍵を出すのがめんどくさい。ググると1万円ぐらいで購入できることがわかる。ちょっと高いな…。よし作ろう。

 

費用

raspberry pi 3B(中古) 2500円

工作キット中古(ジャンパー線、モーターなど) 2400円

ダンプラ(プラスチックダンボール) 500円

その他(工具等) 2000円

 合計 7400円(結構かかってる…)

 

ハード

構想設計して→試作して…などなどありましたが、完成品はこちらです。

①まずは土台を両面テープで貼り付けて

f:id:developer-sosa:20200718134516j:plain

スマートロック①

 ②つまみの部分を長くして

f:id:developer-sosa:20200718134736j:plain

スマートロック②

③ラズパイ・モーターを設置

f:id:developer-sosa:20200718135019j:plain

スマートロック③

動いている動画はこちらです。

youtu.be

 

ソフト

Pythonで 実装しました。

 

~
import time,RPi.GPIO as GPIO

bot = 2.5
mid = 7.3
top = 12.0
angle = [bot,mid,top]

def set_angle(arg):
    return angle[arg]

def drive(arg):
    GPIO.setmode(GPIO.BCM)
    gp_out = 2 #SG90(モーター)の黄色を刺したピン
    GPIO.setup(gp_out, GPIO.OUT)
    motor = GPIO.PWM(gp_out, 50)
    motor.start(0.0)

    angle = set_angle(arg)
    motor.ChangeDutyCycle(angle)
    time.sleep(0.5)

    GPIO.cleanup()

def unlock():
    try:
        #unLock位置へ
        drive(0)

        #Home位置へ
        drive(1)
    except Exception as e:
        print("!!!エラーが発生しました!!!\n" + str(e))

def lock():
    try:
        #Lock位置へ
        drive(2)

        #Home位置へ
        drive(1)
    except Exception as e:
        print("!!!下記エラーが発生しました!!!\n" + str(e))
~

~解説~

 GPIO.setmode(GPIO.BCM) ★お約束

 gp_out = 2 #SG90(モーター)の黄色を刺したピン

 GPIO.setup(gp_out, GPIO.OUT) ★お約束

 motor = GPIO.PWM(gp_out, 50) 

 motor.start(0.0) ★お約束

 angle = set_angle(arg)

 motor.ChangeDutyCycle(angle) ★モーターを指定した角度へ駆動させる

 time.sleep(0.5)

 GPIO.cleanup()  ★お約束

 

テンキーとの連携

実際の運用では下の動画のように、テンキーを玄関のドアにくっつけて、暗証番号認証しています。

youtu.be

まとめ

結果としてはそれなりに時間と労力が掛かってしまったので、とにかく自宅の鍵をスマートロック化したい方は、市販の物を買いましょう。

個人的にはいいお勉強になったので、よしとします。

現在は暗証番号認証だけでなく、Webからも操作できるようにしているので、そのうち紹介します。

 

脆いから、木造化を検討中…

 

uTorrent が勝手に起動(自動起動)してしまう時の対処法

以前投稿した、"BitTorrent"が勝手に起動する時の対処法↓

 

www.developer-sosa.com

こちらの記事に対して検索ワードが"uTorrent"でのアクセスが多かったので、

"μTorrent"での対処法を紹介します。

※ほとんど同じです。

 

Windowsとの連携

uTorrentを起動して

左上 オプション>設定

Windows起動時にuTorrentを開始」左の✔を外して、OKクリック。

f:id:developer-sosa:20200318175612p:plain

1

 基本的にはこれでスタートアップ(PC起動時)の設定はなくなります。

 

タスクマネージャーから

上記の対応で私の環境ではタスクマネージャーからは消えましたが念のため。

Windowsマーク右クリック>タスクマネージャー

タスクマネージャーの"スタートアップ"タブ

ここに「uTorrent」がいたら、状態を「無効」へ変更。

f:id:developer-sosa:20200318181602p:plain

2

 

"uTorrent"の閉じ方

スタートアップの設定は上記の対応でなくなります。

最後に、閉じるときに注意しなければなりません。

これは気づきにくいので多くの方がやっていないかと思います。

uTorrentの左上

ファイル>「uTorrentの終了」 をクリック

f:id:developer-sosa:20200318182239p:plain

3

 

まとめ

これでも勝手に起動してしまう場合は、一度アンインストールして再インストールすることをおすすめします。

その際は、以下の記事をもとに進めればスタートアップ設定が適用されず、不要なアプリのインストールも避けられるはずです。

www.developer-sosa.com

 

以上。

 

 

 

 

 

 

 

 

uTorrent インストール手順 自動起動設定に注意せよ。

torrentファイルをダウンロードする際に必要になる"μTorrent"のインストール手順を記します。
※Winsowsです。

ダウンロード

こちらのURLからダウンロードします。
utorrent.jp.uptodown.com

赤枠内をクリックしてダウンロード。

f:id:developer-sosa:20200317234021p:plain
ダウンロード

インストール

ダウンロードしたフォルダを解凍して、インストーラ(".exe"ファイル)を取り出し、実行。
赤枠内をクリックしてください。
※画面の順番が前後していたり、表示されたりされなかったりする画面もあるようです。

f:id:developer-sosa:20200317235630p:plain
インストーラ1

f:id:developer-sosa:20200317235654p:plain
インストーラ2

f:id:developer-sosa:20200318000048p:plain
インストーラ3

"Install Opera browser"左の✔を外します。

f:id:developer-sosa:20200318000122p:plain
インストーラ4

f:id:developer-sosa:20200318000341p:plain
インストーラ5


"Yes, I want to try dashlane for free!"左の✔が外れていることを確認。

f:id:developer-sosa:20200318000556p:plain
インストーラ6

"Create Start manu entry"左の✔を外す。
※これに✔を入れておくと、スタートメニューに追加されます。ここはお好みで。

f:id:developer-sosa:20200318000629p:plain
インストーラ7

"Start uTorrent when Windows starts up"左の✔を外す。
※これに✔を入れておくと、PC起動時に自動でutorrentが起動されてしまい、とてもうざいです。

f:id:developer-sosa:20200318000658p:plain
インストーラ8

まとめ

utorrentだけでなく、torrentファイルをダウンロードするソフトのインストーラでは、関係ない別のフリーソフトをインストールさせたり、Winsowsのスタートアップに追加されたりと、後に面倒になることが多いので、一つ一つ内容を確認することをお勧めします。

以上。

ラズパイで宅内IoT化計画 ~導入編~

レッツIoT。

ラズパイ始めます。

仕事でraspberry pi 、通称"ラズパイ"以上のスペックを持つTinker Boardという見た目はほぼラズパイのシングルボードコンピュータを使用しまして、前々から考えていた宅内IoT化計画のヒントをもらったのでラズパイを導入してみることにしました。

 

購入したもの

ラズパイは非常に多くのモデルがありどれを買うか迷うのですが、IoT化として使うのでWi-FiBluetoothが使えるraspberry pi 3以上を探しました。

Amazonで人気の raspberry pi 3 model b + のスターターキットを、ラクマで中古6500円で購入。

 

 

 

スイッチオン

16GBのmicroSDカードには既にOSのインストーラが書き込まれていたので、電源を入れるとOS選択画面へ遷移します。ラズパイ標準OS「raspbian」を選択インストール。


f:id:developer-sosa:20200314185816j:image

20分ほど待つとインストール完了しました。

とりあえず、Wi-Fi設定して接続できるようにしときました。

osの種類としてはLinuxに分類されますが、Windowsに慣れてる方でも十分操作できるGUIになってると感じました。

 

次回

VNCSSHでの接続設定を紹介します。

 

以上。

【Windows10】エクスプローラーが重い時の対処方法

Windows10でエクスプローラーが重くてしょうがない方への記事です。

原因

デフォルトでクイックアクセスを開いているから

対処方法

エクスプローラーを開く
②表示タブを開く

f:id:developer-sosa:20190828182306p:plain
表示タブ
③右上のオプションをクリック
f:id:developer-sosa:20190828182337p:plain
オプションクリック
④全般タブ、一番上を見ると
 エクスプローラーで開く: クイックアクセス
 となっているので、"クイックアクセス"を"PC"へ変更
f:id:developer-sosa:20190828182356p:plain
フォルダーオプション

まとめ

HDD/SSDの老朽化でこの現象がより感じられるようになります。
そこまで難しくないのでHDD→SSD換装をお勧めします。

以上。

【Python】jpeg,pngなどの画像をPDF変換

久しぶりの投稿でいきなりPythonです…。
マンガを読むのが好きで、自炊本をよく作成します。
画像からpdfに変換する時は、フリーソフトを使っていましたが、
汎用性には欠けるので、今流行りのPythonを使って変換ソフトを自作しました。。

前提

Anacondaをインストールしていること。

準備

まずは必要なライブラリをインストールします。
Anaconda Promptから以下を実行。

pip install img2pdf
pip install Pathlib

コード

#さっきインストールしたライブラリをインポート
import img2pdf,os
from PIL import Image

#Pythonのファイルパス指定は色々と面倒ですが、
#下記のようにパスの頭にrをつけるとうまくいきます

#ベースとなる画像を置いてあるフォルダパス
base_Image = r"C:\Test\PDF_Test\image" 
#pdfを作成したいフォルダパス
Create_pdf = r"C:\Test\PDF_Test\pdf"
#画像の名前(拡張子含む)
Image_Name = "image1.jpg"
#pdf化したあとのファイルパス(拡張子含む)
pdf_name = Create_pdf + "\\" + str(Image_Name) + ".pdf"

#chdirでカレントディレクトリを移動
os.chdir(base_Image)

#Pillowモジュールを使用し画像の読み込み
img = Image.open(Image_Name)
#画像を回転 必要があれば使用
img = img.rotate(-90, expand = True)
#pdfファイルへ変換
cov_pdf = img2pdf.convert(Image_Name)
#pdfファイルを読み込み(pdf_nameで指定したpdfがない場合、pdf_nameをファイル名として新規にpdfファイルを作成)
file = open(pdf_name , "wb")
#pdfファイルを書き込み
file.write(cov_pdf)
#開いているファイルを閉じる
img.close()
file.close()

まとめ

今回は一枚の画像をPDF変換しましたが、複数枚変換したい場合は
for文をうまく使いましょう。必要であれば記事にしますので、
お問い合わせお願いします。
次回は複数のPDFを統合する方法を紹介します。
    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
www.developer-sosa.com

お問い合わせ