ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Windows】バッチファイルで特定のアプリを自動起動させる方法

 Windowsを使っていて特定のアプリを立ち上げなくてはいけない場合、毎回そのアプリを手動で立ち上げるのが面倒になってくると思います。

 実際自分も3つぐらいのアプリをそれぞれ立ち上げる状態を何度かやっていて「バッチファイルで自動起動させるようにした方が楽なのでは?」と思い、バッチファイルでのアプリ起動を色々調べました。

 今回はその備忘録となります。

 バッチファイル自体あまり自分が書いたことがないので色々と不足な部分もあるかと思いますが、詳細は参考資料に挙げたページ様を参照してください。

 では始めます。


1:バッチファイルについて
 すでにご存じかとは思いますが、軽くバッチファイルについて説明しておきます。

 バッチファイルは拡張子が「.bat」で保存されているファイルです。
f:id:rikoubou:20200923161645p:plain

 テキストエディタ等で開くと中身を確認できます。中身はコマンドプロンプトで実行できる形で記述されています。そしてこのファイルをダブルクリックすると中に記述されたコマンドが実行されます。

 簡単に言うと「コマンドプロンプトで実行するコマンドをファイルとして保存しておき、ダブルクリックで自動起動できるようにしたもの」がバッチファイルになります。


2:バッチファイルで特定アプリの起動
 では本題に入ります。

 バッチファイルで特定アプリを起動させる方法は「call」と「start」の2つがあります。記述方法は以下の通りです。

call [起動したいアプリのパス]
start [起動したいアプリのパス]

 callは同一プロセスでの実行で「ひとつ前のcallアプリが終了するのを待ってから起動」、startは別プロセスでの実行で「前のアプリに関係なく起動」という違いがあります。

 実際にこの2つの起動を比べてみます。以下の2つのサンプルをそれぞれ「call_test.bat」、「start_test.bat」としてそのファイルをダブルクリックして実行してみてください。

・call_test.bat

@echo off

rem メモ帳を起動
call notepad.exe

rem 電卓を起動
call calc.exe

rem コマンドプロンプトを終了
exit /B 0


・start_test.bat

@echo off

rem メモ帳を起動
start notepad.exe

rem 電卓を起動
start calc.exe

rem コマンドプロンプトを終了
exit /B 0

 callの方はメモ帳を終了させた後に電卓が立ち上がりますが、startの方は両方立ち上がります。


3:バッチファイルで特定URLをブラウザで開く
 アプリの実行だけなら2で説明した方法でわかりましたが、特定のURLをブラウザで開きたい場合もあるかと思います。その場合の記述は以下のように引数にURLを渡してあげれば自動的にそのURLを開くことができます。

・url_test.bat

@echo off

rem Edge起動
start microsoft-edge:"https://time.is/ja/"

rem chrome起動
start "C:\Program Files\Google\Chrome\Application\chrome.exe" "https://www.yahoo.co.jp/"

rem コマンドプロンプトを終了
exit /B 0

 上記のようにEdgeの場合は「microsoft-edge:」の後にURLの文字列を、chromeの場合はインストールされているexeまでのパスの文字列とその引数にURLの文字列を記述すれば開くことができます。


 以上がバッチファイルで特定のアプリを自動起動させる方法です。

 基本的にはstartかcallで特定のアプリの.exeファイルのパスを記述すれば開くことができます。

 これを使えば割と色々なことが自動化できると思うので、使っていきたいですね。


・参考資料

【Raspberry Pi】プログラムの自動起動

 Raspberry PiはIoT機器としても使われることも多いかと思います。

 例えば、毎日朝に電源が入りデータを取得して夜には電源が落ちる、というような運用方法も割と考えられます。電源が投入される度に必要なプログラムを手動で起動するなんてことはやってられないので、Raspberry Piが起動するとプログラムも自動的に起動するようにするようにしたいところです。

 今回はそのプログラムの自動起動の手っ取り早くできる2つの方法についてです。基本的には参考資料に挙げているこちらのページ様の通りなので、詳しく知りたい方はそちらを参照してください。

 では、始めます。


1:rc.localを使う方法(root権限での実行)
 /etc/rc.localというファイルを編集することで、root権限でプログラムの自動起動ができます。

 まずはsudoコマンドでrc.localファイルを開きます。エディタはなんでもよいです。

$ sudo nano /etc/rc.local

 rc.localのファイルの中身は以下のようになっています。

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

 ファイルの最後に「exit 0」という記述があるので、その前に実行したいプログラムを記述します。例えばpython3で動かしたいプログラムがあるなら以下のように記述します。

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

python3 /path/path/hogehoge.py #追加部分

exit 0

 記述できたら上書き保存し、Raspberry Piを再起動させます。

 再起動すると該当のプログラムがroot権限で実行されます。rc.localに記述したのに実行されない場合はこちらのページ様を参照してください。


2:crontabを使う方法(ユーザ権限での実行)
 1の方法ではroot権限でしたが、crontabを使うとユーザ権限での自動起動ができます。root権限で自動実行させたいという場合はあまりないと思うので、こちらを使うのがメインになるかと思います。

 以下のコマンドを実行して、crontabを編集します。

$ crontab -e

 初回起動時にエディタの種類を尋ねられると思いますが、好きな任意のエディタを選んでください。

 エディタが立ち上がるので、自動起動させたいプログラムを記述していきます。例えばpython3で動かしたいプログラムがあるなら以下のように記述します。

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

@reboot python3 /home/pi/path/hogehoge.py #追加部分

 追記したら上書き保存します。

 ちなみにcrontabに登録されている内容を確認するには以下のコマンドを実行します。

$ crontab -l

 これで再起動すると該当のプログラムがユーザ権限で実行されます。

 またcrontabは指定した日付と時間で実行することもできるので、こちらの方が自由度は高いと思います。


3:自動起動したプロセスの確認と終了
 1と2のどちらの方法でも自動起動は可能ですが、ちゃんと動いているかの確認や手動で止めたい場合もあります。

 その場合は実行しているプログラムのプロセスを確認して、そのプロセスを終了させる必要があります。

 実行しているプロセスは以下のコマンドで確認できます。

$ ps aux

 auxの部分はオプションで、aは自分以外のユーザのプロセスも表示、uはユーザ名と開始時刻の表示、xは制御端末のないプロセスの情報も表示です。ただこれだけだとプロセスの一覧が大量に表示されてしまうので、以下のようにgrepで必要なものだけ表示させます。

$ ps aux | grep hoge

 例えば1と2で実行しているのはpythonのプログラムなので「$ ps aux | grep python」としたり、実行ファイル名である「$ ps aux | grep hogehoge」などとすると見つけやすいかと思います。

 実際に実行すると以下のようになります。

$ ps aux | grep python
root       485  0.6  0.4  11436  7680 ?        S    16:33   0:00 python3 /home/pi/path/hogehoge.py
pi        1105  0.0  0.0   3916   580 pts/0    S+   16:33   0:00 grep --color=auto python

 最初に出てくるものがrc.localで実行しているプログラムです。rootユーザが「python3 /home/pi/path/hogehoge.py」を実行していることがわかります。

 これを停止させる場合は、このプロセスをkillする必要があります。

 プロセスをkillするコマンドは以下の通りです。

$ kill プロセス番号

 ユーザ名の後にある番号がプロセス番号です。つまりこの場合、killしたいプロセス番号は「485」になります。またこのプロセスはroot権限で実行されているため、killするときもsudoを付ける必要があります。

 つまりこのプロセスをkillするコマンドは以下になります。

$ sudo kill 485

 実行した後、再度確認するとちゃんとプロセスが消えています。

$ ps aux | grep python
pi        1145  0.0  0.0   3916   548 pts/0    S+   16:34   0:00 grep --color=auto python

 crontabに登録して実行した場合は以下のようになります。

$ ps aux | grep python
pi         473  0.0  0.0   1940   372 ?        Ss   16:45   0:00 /bin/sh -c python3 /home/pi/path/hogehoge.py
pi         475  0.8  0.4  11300  7464 ?        S    16:45   0:00 python3 /home/pi/path/hogehoge.py
pi        1136  0.0  0.0   3916   548 pts/0    S+   16:45   0:00 grep --color=auto python

 上2つがcrontabで実行されているプロセスです。2つあるので面倒ですが、これを一括でkillするには以下のコマンドを使います。

$ pkill -f hogehoge

 これで「hogehoge」という名前を含むプロセスをすべて一括でkillしてくれます。

 実行した後、再度確認するとちゃんとプロセスが消えています。

$ ps aux | grep python
pi        1173  0.0  0.0   3916   560 pts/0    S+   16:52   0:00 grep --color=auto python


 以上がRaspberry Piでプログラムを自動起動させる方法になります。

 割と使う機会があると思うので、IoT関連のことをやらせるときには必要になるかと思います。


・参考資料

【Raspberry Pi/python】Raspberry Pi 4のGPIOのINPUTについて

rikoubou.hatenablog.com

 前回はRaspberry Pi 4のGPIOでのLチカ(OUTPUT)をやったので、今回はGPIOの値を読み取るINPUTについての記事です。

 では、始めます。


1:プルアップ/プルダウンの設定とREAD
 Raspberry Pi 4のGPIOでは内部的にプルアップ/プルダウンの設定ができます。

 プルダウン/プルアップについての詳しい説明は以下のページ様を参照してください。

 プルアップ/プルダウンは、簡単に言うと「タクトスイッチなどの部品を単に繋いだだけではHIGH/LOWがタクトスイッチに連動しないので、ちゃんと連動させるようにするためのもの」という感じです。

 Raspberry PiのGPIOをpythonで制御する場合、このプルアップ/プルダウンの設定は以下のようにします。

# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO

SWITCH_PIN = 27 # ピン番号

GPIO.setmode(GPIO.BCM)
GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)   # プルアップの場合
GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # プルダウンの場合

result = GPIO.input(SWITCH_PIN) # ピンの値を読み取る(HIGH or LOWの1 or 0)

 GPIO.setupのところの引数「pull_up_down」の値を「GPIO.PUD_UP」にするとプルアップ、「GPIO.PUD_DOWN」にするとプルダウンになります。

 GPIO.input(ピン番号)でそのピンのHIGH、LOWの値を読み取ります。


・2021/05/26:追記
 公式ページのドキュメントの中で以下のような記述がありました。

Pins GPIO2 and GPIO3 have fixed pull-up resistors,
but for other pins this can be configured in software.

 これは「GPIO2とGPIO3はプルアップで固定されているためソフトウェアでのプルダウンはできない」ということなので、GPIO2とGPIO3を使う場合は注意してください。


2:サンプル
 プルアップ/プルダウン、READのやり方がわかったので軽くサンプルを動かしてみます。

 今回は以下のようにプルダウンで回路を組みます(公式ドキュメントより引用して加工)。
f:id:rikoubou:20200916165132p:plain

 LEDは前回と同じで、今回はタクトスイッチを追加しています。タクトスイッチの一方を3.3V(Raspberry PiのGPIO一番左上)に、もう一方をGPIO27(Raspberry PiのGPIO左列上から7番目)に繋ぎます。

 ちなみにプルアップを使用したい場合は、タクトスイッチの3.3Vに繋いでいる側をGNDに繋ぎます。

 その状態で以下のプログラムを実行します。

・gpio_read_test.py

# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time

LED_PIN    = 17 # LEDピン番号(BCMの番号)
SWITCH_PIN = 27 # タクトスイッチのピン番号(BCM番号)

def main():
    setup_gpio() # GPIOの準備

    try:
        # 1秒ごとに点灯/消灯を繰り返す
        while(True):
            print("pin status:", read_pin(SWITCH_PIN))
            print("LED ON")
            GPIO.output(LED_PIN, GPIO.HIGH)
            time.sleep(1)

            print("pin status:", read_pin(SWITCH_PIN))
            print("LED OFF")
            GPIO.output(LED_PIN, GPIO.LOW)
            time.sleep(1)

    except KeyboardInterrupt:
        # Ctrl+Cで終了した場合、GPIO設定をクリア
        GPIO.cleanup()

# GPIOを扱う準備
def setup_gpio():
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(LED_PIN, GPIO.OUT)
    # GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # プルアップ
    GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # プルダウン

# ピンの状態を読む
def read_pin(pin_number):
    return GPIO.input(pin_number)

if __name__ == '__main__':
    main()

 実行すると、以下のようにLEDのON/OFFに加えてPINの状態も表示されます。タクトスイッチを押した状態だと1、離した状態だと0と表示されます。

$ python3 gpio_read_test.py
pin status: 0
LED ON
pin status: 0
LED OFF
pin status: 0
LED ON
pin status: 1
LED OFF
pin status: 1
LED ON
pin status: 1
LED OFF
pin status: 1
LED ON
pin status: 0
LED OFF
pin status: 0
LED ON
pin status: 0
LED OFF
pin status: 0
LED ON

^C

 プルアップの場合はタクトスイッチの押した時と離した時のピンの状態が反転します。


 以上がRaspberry Pi 4のGPIOのINPUTについてです。

 Raspberry Piというよりもプルアップ/プルダウンについての記事になってしまった感じですが、物理的なプルアップ/プルダウンを組み込まなくても内部的に設定できるので、知っていれば回路側を少し簡素化できそうですね。


・参考資料

【Raspberry Pi/python】Raspberry Pi 4のGPIOを使ってLチカをする

 Raspberry Pi 4についての記事はいくつか書いてきましたが、そういえばGPIOを扱ったことはありませんでした。

 なので今回はRaspbery Pi 4のGPIOを使ってLチカをやるまでの備忘録になります。

 基本的には参考資料に挙げているページ様の通りなので、詳しくはそちらを参照してください。

 では、始めます。


1:GPIOを使う準備
 Raspberry Pi 4でGPIOを使うには以下のコマンドを実行する必要があります。以下のコマンドを実行しないと、そもそもGPIOの状態を確認する「gpio readall」コマンドを実行することができません。

$ wget https://project-downloads.drogon.net/wiringpi-latest.deb 
$ sudo dpkg -i wiringpi-latest.deb


---- 2021/05/26:追記 ----
 上記の方法だとsudoコマンドを使ってインストールしているため、以後RPi.GPIOライブラリを使用したpythonコードを実行する際にsudoを付けないと実行できない場合があります。

 その回避方法としてpipでのインストール方法もあります。

$ pip3 install rpi.gpio

 こちらではsudoを使わずにインストールしているので、RPi.GPIOライブラリを使用したpythonコードを実行する際にsudoを付ける必要がなくなります。
---- 追記終わり ----


 このコマンドを実行したら、GPIOの状態を確認するために以下のコマンドを実行します。

$ gpio readall

 このコマンドを実行すると、以下のように各GPIOの状態が表示されます。

 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT5 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT5 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 1 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 1 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI | ALT0 | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO | ALT0 | 0 | 21 || 22 | 1 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK | ALT0 | 0 | 23 || 24 | 0 | OUT  | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | OUT  | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+

 簡単にこの表の見方を説明すると、以下のようになります。

・BCM:コマンドやプログラムなどで操作する場合に使用するピン番号。
・wPi:Wiring Piというライブラリを使う場合の番号。
・Name :ピンの名前。
・Mode:ピンのモード。出力ならOUT、入力ならIN。
・V:プルアップ/プルダウン。プルアップなら1、プルダウンなら0。
・PhysicalRaspberry Piの物理的なピン番号。

 コマンドやプログラムで制御する場合は「BCM」の番号を設定するということになります。

 これでGPIOを扱う準備ができました。


2:Lチカのサンプル
 では実際にRaspberry PiのGPIOを使ってLチカをやっていきます。

 Raspberry Pi 4の物理ピンの位置は以下のようになっています(公式ドキュメントより引用)。
f:id:rikoubou:20200911172414p:plain

 この物理ピンの位置を元に以下のように回路を作ります(公式ドキュメントより引用して加工)。
f:id:rikoubou:20200911173529p:plain

 LEDのプラス側を「GPIO 17」に、LEDのマイナス側抵抗を付けてある方に「GND」を接続します。「GPIO 17」のBCM番号は「17」なのでサンプルコードで制御するピン番号はこの「17」を使います。

 回路ができたら以下のサンプルコードを記述し、ファイルを保存します。

・gpio_test.py

import RPi.GPIO as GPIO
import time

PIN = 17 # ピン番号(BCMの番号)

# GPIOを扱う準備
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN, GPIO.OUT)

try:
    # 1秒ごとに点灯/消灯を繰り返す
    while(True):
        print("ON")
        GPIO.output(PIN, GPIO.HIGH)
        time.sleep(1)

        print("OFF")
        GPIO.output(PIN, GPIO.LOW)
        time.sleep(1)

except KeyboardInterrupt:
    # Ctrl+Cで終了した場合、GPIO設定をクリア
    GPIO.cleanup()

 そして以下のコマンドでサンプルを実行します。

$ python3 gpio_test.py

 すると1秒間隔でLEDの点灯と消灯を繰り返します。終了する時はCtrl + Cで終了させます。

 以上がRaspberry Pi 4のGPIOを使ってLチカするまでの方法です。

 これでRaspberry PiのGPIOの扱い方もわかったので、センサーなどを繋げて色々遊べそうです。


・参考資料

【自作PC】自作PCをやってみた その4:ベンチマーク

 前回の記事でBIOS画面まで表示できた後、OSを入れたりドライバを入れてGPUを認識させたりするところまでの記事を書きました。

 今回はYoutube動画などでよくあるハードウェアの情報を見ることができるソフトウェアやベンチマークソフトウェアの紹介をしていきます。

 では、始めます。


1:ベンチマークを行う際に便利なソフトウェア
 ベンチマークを行う際にPCの状態などを確認できるソフトウェアを紹介していきます。詳しい使い方などは省きますが、別の機会にそれぞれ記事にするかもしれません。

CPU-Z
 CPUの型番やクロックなどかなり詳細な状態を確認できるソフトウェアです。その他にメモリ、GPUなども確認でき、CPU使用率を100%にする負荷テストも行うことができます。
 
GPU-Z
 CPU-ZGPU版のようなソフトウェアです。このソフトウェアではGPUのより詳細な情報を確認することができます。GPU性能テストを行うこともできます。

HWiNFO
 CPUやGPU、ストレージやマザーボードの各状態をリアルタイムで確認できるソフトウェアです。サーマルスロットリングが発生しているかどうかや、各種温度などもリアルタイムで確認できるので何かと便利です。

MSI Afterburner
 ベンチマーク動画でゲームの左上にFPSGPU使用率などを表示させているのをよく見かけますが、それを行うためのソフトウェアです。MSIが提供しているソフトウェアですが、MSI以外のPCでも問題なく使えます。ただしゲームの画面上に常に表示させるには色々と設定をする必要があります。


2:ベンチマークソフト
 様々なベンチマークソフトがありますが、ベンチマーク動画でよく見ていて自分がインストールしたものを紹介していきます。

CINEBENCH R20
 ベンチマーク動画でもやられていることが多いCPUのシングルとマルチを計測するベンチマークです。

FINAL FANTASY XV WINDOWS EDITION Benchmark | SQUARE ENIX
 どのベンチマーク動画でも大体行われている定番のFF15ベンチマークです。ゲームの中でもかなり重い部類に入るそうなので、このベンチマークで「快適」以上の判定になれば大体のゲームは問題なくできるのではないかと思います。大定番で数多く行われているのでスコアの比較はしやすいと思います。

ファイナルファンタジーXIV: 漆黒のヴィランズ ベンチマーク
 これまた定番のFF14ベンチマークです。FF15ベンチマークよりは軽いです。こちらも大定番で数多く行われているのでスコアの比較はしやすいと思います。

ドラゴンクエストX ベンチマーク
 こちらもまた多く行われているドラクエXベンチマークです。このベンチマークはかなり軽い部類らしく、上記のベンチマーク2つが重いかもしれないAPUやオンボードのPCで最低限のゲームができるかの確認に使われている印象です。

3D Mark
 こちらもかなり有名なベンチマークです。CPU性能、GPU性能、2つを合わせた総合的な性能と別々に測定してくれるベンチマーク用のソフトが数種類試せます。また計測後に他の計測値を比較するページを開くこともできます。

CrystalDiskMark
 ストレージの速度をベンチマークで測定できるソフトウェアです。


おまけ:今回の自作PCの各ベンチスコア
 誰も気にする人はいないと思いますが、これらのベンチマークを自作したPCで試した結果も掲載しておきます。裏でchromeを立ち上げたりした状態で計測しているものもあったりするのであくまで目安程度です。

CINEBENCH R20
f:id:rikoubou:20200909204531p:plain

FF15ベンチ
f:id:rikoubou:20200909204633p:plain

FF14ベンチ
f:id:rikoubou:20200909211302p:plain

ドラゴンクエストX ベンチマーク
f:id:rikoubou:20200909204937p:plain

・3D Mark(Time Spy
f:id:rikoubou:20200909205046p:plain

・3D Mark(Fire Strike)
f:id:rikoubou:20200909205139p:plain

CrystalDiskMark
f:id:rikoubou:20200909214447p:plain

 各スコアはこのようになりましたが、これが実際どれぐらい快適なのかはそのゲームをやってみないとわからないとは思います。ただ全体的にみるとフルHDのゲームであれば大体のものは快適に動く程度のスペックにはなっていそうな気がします。


 以上がベンチマークを行う際に便利なソフトウェアとベンチマークソフトの紹介です。

 Youtube動画とかでよく見る各ベンチマークをやってみてわかったのは「ベンチマークは結構時間がかかる」ということでした。何度も検証して比較動画とかを作ってる人の苦労がちょっとだけわかった気がします…。


・参考資料


・関連記事

【自作PC】自作PCやってみた その3:OSやドライバを入れる

 前回の記事で組み立てについての記事を書きました。

 BIOSの起動までは割と自作PCの動画などで紹介されていると思いますが、その後Windowsをインストールしたり、グラフィックボードのドライバを入れたりとやることは多いです。実際自分もどうすればいいのかを結構調べながらやりました。

 基本的には参考資料に挙げているこちらのYoutube動画のままですが、その備忘録や手順を記録しておこうと思った次第です。ちなみに自分が使用しているマザーボードは「ASRock B550M Pro4」、グラフィックボードは「ASRock Radeon RX 5600 XT Challenger D 6G OC」なので別の商品の場合は手順や画面が違っている場合があるので注意してください。

 では始めます。


1:BIOS画面を立ち上げてCPUやメモリを確認する
 OSの入っていない状態でPCの電源を入れてから「Del」キーを連打しているとBIOS画面が表示されます。

 自分の場合は以下のようにASRockのBIOS画面が表示されます。ちなみにBIOS画面で「F12」キーを押すと挿しているUSBメモリに画面キャプチャを保存できます。
f:id:rikoubou:20200907122833p:plain

 赤枠で囲っている部分の一番上がBIOSのバージョンで、その下にはCPUの情報が表示されています。

 緑色で囲った枠にはメモリの情報が表示されています。どのレーンにどのようなメモリが挿さっているかがわかるので、認識していないメモリがあれば一度電源を落としてもう一度挿し直してください。

 ここで問題がなければWindows 10をインストールしていきます。


2:Windows 10をインストールする
 BIOSの起動まで確認できたらWindows 10をインストールしていきます。

 自作したPCにDVDドライブがついていない人も多いと思うので、先にWindows 10のインストールメディアをUSBメモリに作成しておく必要があります。インストールメディアの作り方は以下の記事に書いています。

 基本的にはPCの電源を切っている状態でインストールメディアをUSB端子に挿してから、PCの電源を入れると自動的にWindows 10のインストールが始まるはずです。

 始まらない場合はBIOS画面の項目からUSBメモリを最初に起動するように設定します。

 これで再起動するとWindows 10のインストールが始まります。

 Windows 10のインストールは、HomeやPro、32bitか64bitかを選択して初めてWindowsをインストールするので「カスタム」の方を選びます。あとはMicrosoftが奨めてくる機能を全部OFFにしていけばOKです。

 ちなみにインストールの途中でネットに繋いでプロダクトコードの認証をする部分がありますが、後からネットに繋いで認証することもできるので後回しにしても大丈夫です。後で認証する場合はMicrosoft公式の以下のページを参考にしてください。

 簡単に説明すると、「設定」→「更新とセキュリティ」→「ライセンス認証」を開きます。ライセンスのステータスが「Windows はライセンス認証されていません」となっている場合は認証されてないので下の方にある「プロダクトキーの変更」をクリックしてプロダクトコードを入力すれば認証されます。この作業をするときにはインターネットに接続されている必要があるので注意してください。

 One Driveなども使用したい場合はMicrosoftアカウントを作成して紐づけておく必要もあります。

 Windows 10のインストールができたので早速ゲームを入れて…と行きたいところですが、タスクマネージャを開くと以下のようになっておりGPUの項目が出ていません。
f:id:rikoubou:20200907130200p:plain

 つまりこのままではグラフィックボードを認識していないので、グラフィックボードのドライバをインストールする必要があります。


3:グラフィックボードのドライバをインストールする
 今回の自作PCではAMDRadeonを使っているので、AMDRadeonのサポートページを開きます。

 自分のものはRX5600XTなのでそれを選択して「送信」ボタンをクリックします。
f:id:rikoubou:20200907131150p:plain

 該当しているOSを選択します。ここではWindows 10 64bitなのでそれをクリックします。
f:id:rikoubou:20200907131330p:plain

 表示されるドライバで一番上にあるものが最新になっているので、それをダウンロードします。
f:id:rikoubou:20200907131509p:plain

 あとはダウンロードしたインストーラを起動させて指示に従ってインストールしていきます。
f:id:rikoubou:20200907131724p:plain
f:id:rikoubou:20200907131733p:plain

 Radeonのソフトウェアの画面が立ち上がりますが、これもインストール途中で出てくる画面なので指示に従っていきます。
f:id:rikoubou:20200907131837p:plain

 この画面でグラフィックボードに対応するドライバが表示されるので、それを選択して右下にある「インストール」をクリックします。
f:id:rikoubou:20200907131855p:plain

 残り時間が表示されるので気長に待ちます。
f:id:rikoubou:20200907131954p:plain

 インストールが終わったら右下の「再起動」ボタンをクリックしてPCを再起動させます。AMDに情報を送りたくない場合は画面真ん中の項目のチェックを外しておきましょう。
f:id:rikoubou:20200907132140p:plain

 再起動後、タスクマネージャを立ち上げるとちゃんとGPUの項目が増えており、RX5600XTとして認識されています。
f:id:rikoubou:20200907132227p:plain


4:BIOSのアップデート(やらなくてもよい)
 動作に特に問題なければやる必要はないのですが、BIOSアップデートの方法も説明しておきます。
 BIOSのアップデートは失敗するとPC自体が起動しなくなる可能性があるので、何か不具合がない限りは行わない方がいいかと思います。

 今回のASRockの場合は、マザーボードのサポートページを開くとBIOSの様々なバージョンが公開されているので、まず今回使用しているマザーボード「B550M Pro4」の商品ページを開きます。

 商品ページの「サポート」→「BIOS」の項目をクリックしていくと一番上に最新のBIOSバージョンがあるので「グローバル」と書かれた方をクリックしてダウンロードします。
f:id:rikoubou:20200907142703p:plain

 ダウンロードしたzipファイルを解凍し、USBメモリの中に解凍した中身を入れます。

 一度PCの電源を落としてからUSBメモリを差し込んだ状態でPCを起動させます。ASRockの場合は、OSを入れた状態で起動させた時に「F2」キーを押すことでBIOS画面を立ち上げられます。

 BIOSのアップデートは「Tool」→「Instant Flash」の項目を選択します。これでUSBメモリの中身を読み込み、BIOSのInstant Flashの項目があれば自動的に表示されます。
f:id:rikoubou:20200907143257p:plain

 アップデートしたいBIOSの項目を選択して「OK」ボタンを押すとBIOSのアップデートが実行されます。


5:その他のドライバを入れる
 グラフィックボードの認識はできましたが、マザーボードのオーディオ関係やその他のドライバがインストールされていないのでそれをインストールしていきます。ASRockの場合は自動的にドライバを検索してインストールしてくれるソフトがあるのでそれを入れていきます。

 以下のページを開きます。

 ページを少しスクロールした先にある「Download」ボタンをクリックします。
f:id:rikoubou:20200907135846p:plain

 zipファイルがダウンロードされるので、それを解凍した中にあるインストーラを起動させます。
f:id:rikoubou:20200907140109p:plain

 あとは指示通りにインストールしていきます。デフォルトのままでOKです。
f:id:rikoubou:20200907140233p:plain

 インストールしたASRock App Shopを立ち上げると以下のような画面になります。
f:id:rikoubou:20200907140658p:plain

 今回はドライバを入れたいので「BIOS & Drivers」をクリックして表示し、必要なドライバの項目にチェックを入れた状態で「Update」ボタンをクリックします。
f:id:rikoubou:20200907140734p:plain

 すると自動的に最新のドライバがインストールされます。
f:id:rikoubou:20200907140948p:plain
f:id:rikoubou:20200907140956p:plain

 ドライバによっては再起動が必要なことがあるので、その場合は再起動させます。自動的に再起動する場合もあります。


 以上が自作PCを作った直後からのOSやドライバを入れるまでの手順になります。

 自作PCの解説動画などではWindowsのインストールぐらいまではやってると思いますが、その後どうすればいいかまで解説してるものはあまりなかった印象だったので、わからない人の少しでも手助けになれば幸いです。


 次はベンチマーク動画などでよく見かけるソフト紹介の記事を書いて、ひとまず自作PC関連の記事は一段落しようかと思っています。


・参考資料


・関連記事

【自作PC】自作PCやってみた その2:組み立て

 前回の記事でパーツ選定についての記事を書きました。

 今回はその続きで実際に組み立ててケースに押し込んで配線するまでの話です。作業中の写真などを一切撮ってなかったのですが、前回の記事でも触れた「舞黒透maikurosuke(MK-01W)」というケースでの配線にめちゃくちゃ手こずりました。ちなみにケースに納めて配線するだけで4時間ぐらいかかりました…それぐらい大変でした…。

 なので、その内容を残しておこうと思った次第です。

 では始めます。


1:舞黒透maikurosuke(MK-01W)について
 製品ページは以下の通りです。

 まずこのケースにはろくな説明書らしい説明書がついてきません。HDDやSSDなどの取り付け方と同梱ネジの本数だけ書かれた紙が1枚入ってるだけなので、初めて自作する人にはオススメはできません。ネジも種類と本数しか書かれていないので、どれがどのネジかを仕分けするところからやらないといけません。

 また前回の記事でも少し触れましたが、舞黒透maikurosuke(MK-01W)はかなり小さいサイズのケースなのでATX電源の奥行きを考慮する必要があります。今回自分が購入した電源は「Cooler Master: MWE 550 Bronze - V2」というATX電源なのですが、奥行きは140mmです。ATX電源の奥行きとしてはメジャーな部類ですが、このサイズでもかなり厳しかったです。

 どれぐらい厳しいかというと、奥行き140mmのATX電源を取り付けるとスペースとしては以下のように埋まります(商品ページの画像より引用して加工)。
f:id:rikoubou:20200905142328p:plain
 
 電源ケーブルを裏に回す穴の半分ぐらいが埋まってしまいます。今回購入した電源はプラグイン式ではないので全部のケーブルが電源から伸びています。つまり「電源から出ているケーブルを裏に回す穴に入れるのがまず大変」という状態になります。

 それに裏配線できると言っても隙間が1cm程度しかないので、ケーブル2本が重なる程度の厚みでバックプレートが閉まらなくなります。幸い今回購入した電源は平べったいケーブルだったのでなんとか無理やり押し込めることに成功しましたが、太いケーブルを使った電源だとそもそも裏に通しただけでバックプレートが閉まらなくなる可能性もあります。

 内臓DVDドライブなどを取り付ける場合は、先の電源のスペースを示した画像からわかる通り電源を先に取り付けると後ろから入れるスペースが無くなります。なので先に内臓ドライブを取り付けてから電源を取り付けるか、電源を取り付けた後ケースの前面パネルを外してそこから内臓ドライブを設置するという方法になります。

 つまり「取り付ける順番を考えながらケースに納めていく必要がある」ということです。自分がケースに納めた時もかなり試行錯誤しましたし、取り付けたものも一度外して順番を変えたりなどして非常に大変でした。

 色々長く書いてきましたが、このケースについて言える注意点は以下になります。
ATX電源は「奥行きが可能な限り短く、プラグイン式で、ケーブルが平べったいもの」を選ぶ
・ケースに取り付けるパーツの順番はちゃんと考える

 これらを最初から知っていると、組み立てる時に少しは楽になるかと思います。


2:実際に組み立てた時の順番
 では実際に組み立てた時の順番について記述していきます。基本的にB550m Pro4に付属している説明書通りにやっていけばOKです。組み立てには家庭用ドライバーセットなどいくつかの種類のドライバーが必要になるので、予め購入しておく必要があります。


2−1:マザーボードの組み立て
 最初はB550m Pro4マザーボードに取り付けられるものを全部取り付けていきます。自分は以下の順番でやっていきました。

  1. CPUソケットにCPUを取り付ける
  2. メモリスロットに2本メモリを挿す
  3. CPUにリテールクーラーを取り付ける
  4. リテールクーラーのコネクタをCPU FANのピンに接続する
  5. M.2のスロットにSSDを取り付ける

 説明書に手順が書いてあるのとYoutubeで勉強していたこともあり、特に難しいことはなくすんなりできました。またどのマザーボードでも基本的にこの手順は同じだと思います。


2−2:ケース側にMicro ATX用のナットを取り付ける
 続いてケース側に取り掛かります。

 舞黒透maikurosuke(MK-01W)には最初からいくつかマザーボード固定用のナットが取り付けられていますが、Micro ATX固定用のナットはいくつか自分で取り付ける必要があります。なので不足している分のナットを手で取り付けていきます。


2−3:内臓ドライブを取り付ける(ドライブが必要な場合)
 今回内臓ドライブは取り付けなかったのですが、電源を取り付けるより前に内蔵ドライブを取り付けて置いた方が色々楽だと思います。


2−4:電源を取り付ける
 Micro ATX用のナット取り付けが終わったらマザーボードを、と行きたいところですが、マザーボードを先に取り付けてしまうと電源を取り付けるのが大変だったので先に電源を取り付けておきます。ただ安物ケースだけに自分の場合はこの電源を固定する4箇所のねじ穴が全く合わず、電源の取り付けだけで1時間ぐらい苦戦しました。

 最終的に4箇所全部固定することは諦めて3箇所のねじ止めのみで固定することにしました。コンセントへ繋ぐコードを抜き差ししてもずれることはないので、3箇所でも十分だと思います(そもそも1箇所は完全にねじ穴が隠れてしまうので取り付けられない…)。

 また電源を取り付ける際には、先に電源コードを全て裏へ回して表へ出しておくことをオススメします。というのも以下の画像を見ていただきたいのですが、Micro ATXマザーボードを取り付けると、青色の2つの穴はマザーボードに隠される形になります(商品ページの画像より引用して加工)。
f:id:rikoubou:20200905151624p:plain

 なので「マザーボードを組み付けてから裏に回したコードを表に出す」ということが難しいため、電源取り付け時点で必要なコードを全て表に出しておく必要があります。自分の場合は裏に回した配線は以下の部分から表に出しました(商品ページの画像より引用して加工)。
f:id:rikoubou:20200905152437p:plain


2−5:マザーボードを取り付ける
 電源の取り付けと表に配線を回すことができたら、続いてマザーボードを取り付けました。

 IOパネルを所定の位置にかなり強めに押しつけて固定します。四角それぞれに力を入れて「カチッ」と音がするまで押し込みます。マザーボードの穴とナットの位置が合わない場合はIOパネルの押し込みが足りていないので、ちゃんとIOパネルは押し込むようにしてください。

 IOパネルを押し込んでマザーボードの穴とナットの穴が一致したらねじ止めしていきます。


2−6:配線をする
 ここまでできたらあとはひたすら配線です。説明書通りに様々な線をマザーボードのピンに接続していきます。

 一番厄介というか間違いが起きそうな部分は、ケース側のPOWER SWやLEDなどの部分だと思います。特にそこはマザーボードの説明書をちゃんと読んでプラスマイナスを間違えないようにしましょう。

 ちなみにケーブル全てが黒色でぱっと見でプラスがどっちかわからない場合は、コネクタの先に「▲」のマークがある方がプラスです。


2−7:グラフィックボードを取り付ける
 最後にグラフィックボードを取り付けます。

 グラフィックボードを取り付ける前に、グラフィックボードと干渉するケース裏面の金具部分を折り曲げて取り外しておきます(商品ページの画像より引用して加工)。
f:id:rikoubou:20200905153522p:plain

 マザーボードのPCIeのソケットのラッチを開いて、グラフィックボードを押し込んで固定してねじ止めします。

 あとはグラフィックボード用の電源ケーブルをつなげば一応は完成です。


2−8:余計なケーブルを整理する(やらなくてもよい)
 繰り返しになりますが、今回購入した電源はプラグイン式ではなかったので使わないケーブルが結構あります。

 自分は内臓ドライブは取り付けなかったので、その他の余分なケーブルを全て内蔵ドライブ側へ押し込みました(商品ページの画像より引用して加工)。
f:id:rikoubou:20200905155927p:plain

 こうすることで、だいぶ見た目がすっきりします。


3:動作確認
 全ての配線が終わったので電源を入れて動作確認をします。一番緊張する瞬間だと思います。

 コンセントに電源コードを繋いで、ATX電源の後ろ側にあるスイッチを「|」に倒してケースにある電源ボタン一度押し込んで離すと起動します。

 ディスプレイに画面が表示されれば、とりあえず問題なく起動できていることになります。


4:動作確認時に動かなかった場合
 自分の場合は初めて電源を入れた時、1秒ぐらいCPUファンが回っただけですぐに停止し、一切動かないという症状が発生しました。何度やっても同じ現象を繰り返していたため色々ネットで調べてみると「とりあえず最小構成で試せ」みたいな情報を見つけたので「配線の確認と余分なものを取り外す」ことを試しました。

 マザーボードの説明書と配線をもう一度確認し、さらになくても困らないもの(異常が発生した時に鳴るブザーや内臓ドライブなど)をとりあえず外して電源を入れてみました。自分の場合はブザーを外すと正常に画面が出力され、Delキー連打をしているとBIOS画面が表示されました。

 BIOS画面ではCPUやメモリ、SSDなどを確認できる項目があるのでそこでちゃんと認識されているかもチェックしておいた方がいいです。

 自分の場合はメモリが片方認識してなかったので、一度電源を切ってメモリを奥までちゃんと押し込み直しました。ラッチが閉まってからもさらに強く押し込むぐらいじゃないと認識しない場合があります。

 もう一度BIOS画面を立ち上げるとちゃんと合計32GBで認識されていました。

 まとめると、動作確認で何か異常があった場合は以下のこと確認してみると良いかと思います。
・配線がちゃんとしているかもう一度確認
・接続していなくても問題ない部品を外す(少しずつ部品を外して動作確認)
・メモリが認識しない場合は挿し直す(ラッチが閉じてからもさらに強く押し込む)


 以上が自作したPCの組み立てについてです。

 ケースに苦戦したり、すんなり起動しなかったりと色々問題が発生して大変でしたが、なんとか動作確認まで持ってこれた時は嬉しかった記憶があります。

 ただここまでではまだ普通のPCとしては使えるところまで行っていないので、次の記事ではWindowsのインストールとグラフィックボードのドライバをインストールすることに関する記事でも書こうと思っています。


・参考資料


・関連記事