もよいめも

不定期更新ものづくりブログ

Seeeduino Xiaoでi2cを使おうとしたらコンパイルエラーが!!

Seeeduino Xiaoサイコーですよね。
あのコインサイズで強力なCortex-M0を搭載
さらにコネクターもタイプCなのでいちいちMini-Bケーブルを探してこなくて済みます。
↓以下公式の販売ページ、秋月やamazonでも購入できる&激安なのでマジおすすめです
jp.seeedstudio.com


しかしながら本日Seeeduino XiaoでMPU6050を使おうとサンプルログラムを書き込もうとしたところコンパイルエラーが!!

なんてこった

続きを読む

Arduinoへの入力電圧(9V)を測定してみた

Arduinoを9V角電池で動かそうと考えているのですが、
その時に角電池の電池残量を測りたいのです。
そこで電池の電圧を測ることにしました。

しかしながら、Arduinoのアナログピンの最大計測電圧は5Vなので
そのままアナログピンに突っ込んでも測れません。

そこでそこで今回は、分圧則を利用して
アナログピンにかかる電圧を二等分して計測していこうと思います。

f:id:moyoi:20200315223601j:plain
トップの写真用

配線

まあ単純に同じ抵抗値の抵抗器を挟んだけです。
なお、今回はそこらへんに転がってた51kΩを使いました。

配線図ですが、LCDは諸事情で付けられなかったので以下の記事を参考にしていただければと思います。
moyoi-memo.hatenablog.com

f:id:moyoi:20200315221439p:plain
配線の仕方

プログラム

プログラムはまあ適当に作りました。
0.0097という値もテスターの測定値になるべく近づくように適当に調節しただけです。
なので、9vあたりは誤差はないですが5vあたりでは結構ずれます。
そういえばアナログ値をfloatに代入しているのは、なぜかそうしないと値が四捨五入されちゃうからです。

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);//アドレスは「0x27」と「0x3F」の場合があります

void setup()
{
  lcd.init();
  lcd.backlight();
}

float a = 0;

void loop()
{
  a = analogRead(6);
  lcd.setCursor(2, 0);
  lcd.print(a*0.0097);
}

余談

動画も撮りました。

ブログ用、Arduinoへの入力電圧を測定してみた

かなり雑な記事で申し訳ございません。突然思い立って実践してうまくいったので、その流れでブログを書いているので勘弁してください。
すぐに記事にしてしまわないと一生完成しなさそうなので…
まあ、気が向いたら書き直そうかとおもいます。

【Arduino】MCP23017を複数使って、デジタルピンを最大128増やす

現在、ライブラリが更新され、従来のプログラムがそのまま使用できなくなっています。新バージョンは以下にまとめてあります

moyoi-memo.hatenablog.com


皆さん、Arduinoのピンの数たりてますか?
普段は十分足りてますが、本格的なものを作ろうとするとどうしても足りなくなってしまいます。

そこでこの「MCP23017」というICです。
akizukidenshi.com
このICはI2c通信で、プログラム上もかなり簡単にピンを増やすことのできるICです。今回はこのICについて詳しく書いていこうと思います。

ちなみにSPIで通信する「MCP23S17」もありますが、今回は割愛します。

配線の仕方

まずは配線。
以下の画像の通りに配線してください。(この場合アドレスは0x00)
Arduino nanoを使用する場合はA4がSDA、A5がSCLです。

f:id:moyoi:20200313101650p:plain
配線の仕方(画像はデータシートより)

f:id:moyoi:20200314112049p:plain
配線の仕方
なんとも適当な配線ですがつまりはMCP23017のGPB0をタクトスイッチに、GPA7のLEDにつないでるだけです。

ちなみにプログラム上のピンの番号はこちら

GPB0 8 GPA7 7
GPB1 9 GPA6 6
GPB2 10 GPA5 5
GPB3 11 GPA4 4
GPB4 12 GPA3 3
GPB5 13 GPA2 2
GPB6 14 GPA1 1
GPB7 15 GPA0 0
f:id:moyoi:20200313101650p:plain
見やすいようにもう一枚

プログラム

ライブラリー

こちらからライブラリーをZIP形式でダウンロードします。
(バージョンが1.3.0以下のものをダウンロードしてください)
github.com
そして、Arduino ideのメニューのスケッチ→ライブラリーをインクルード→zip形式のファイルをインストールからダウンロードしたファイルを選択します。ソフトを再起動させれば導入は完了です。

プログラム

今回はタクトスイッチを押したときにLEDが点くプログラムにします。
もちろんこのICはデジタルピンを増やせる奴なので、アウトプットもインプット、さらにプルアップもできます。

ちなみに、ライブラリをインクルードする文でエラーを吐くこともあるそうなので、そういう場合は以下の文に置き換えてみてください。
これ↓

#include <Adafruit_MCP23017.h>

プログラムはこれ↓

#include <Wire.h>
#include "Adafruit_MCP23017.h"

Adafruit_MCP23017 mcp;

void setup() {
  mcp.begin(0x00);

  mcp.pinMode(7, OUTPUT);
  mcp.pinMode(8, INPUT);
  mcp.pullUp(8, HIGH);//これでプルアップ
}


void loop() {
  if (mcp.digitalRead(8) == LOW) {
    mcp.digitalWrite(7, HIGH);
  } else {
    mcp.digitalWrite(7, LOW);
  }
}

複数のMCP23S17を使う場合

右下の3つの端子(A0~A2)はアドレスを指定するためのピンなので
複数のMCP23017を使用する場合はそれぞれ別の場所につなぐようにしてください。
また、ピンとアドレスの関係は以下の図にまとめてありますので参考にしてください。
最大8つのMCPを接続できることになるのでフルに使ったら128ものデジタルピンを増やせることになります。(やったことがないので通信速度とかに問題が出るかもしれませんが)
ちなみに0がGND、1が5Vです。

A0 A1 A2 アドレス
0 0 0 0x00
1 0 0 0x01
0 1 0 0x02
1 1 0 0x03
0 0 1 0x04
1 0 1 0x05
0 1 1 0x06
1 1 1 0x07

2つのMCP23017を使う場合はこんな感じです。
ちなみに大量にLチカするプログラムです。

#include <Wire.h>
#include "Adafruit_MCP23017.h"

Adafruit_MCP23017 mcp1;
Adafruit_MCP23017 mcp2;

void setup() {
  mcp1.begin(0x00);
  mcp2.begin(0x01);
  for (int i = 0; i <= 15; i++) {
    mcp1.pinMode(i, OUTPUT);
    mcp2.pinMode(i, OUTPUT);
  }
}

void loop() {
  for (int i = 8; i <= 15; i++) {
    mcp1.digitalWrite(i, HIGH);
    delay(20);
    mcp1.digitalWrite(i, LOW);
  }
  for (int i = 8; i <= 15; i++) {
    mcp2.digitalWrite(i, HIGH);
    delay(20);
    mcp2.digitalWrite(i, LOW);
  }
  for (int i = 0; i <= 7; i++) {
    mcp2.digitalWrite(i, HIGH);
    delay(20);
    mcp2.digitalWrite(i, LOW);
  }
  for (int i = 0; i <= 7; i++) {
    mcp1.digitalWrite(i, HIGH);
    delay(20);
    mcp1.digitalWrite(i, LOW);
  }
}


ブログ用、MCP23017とArduinoで大量Lチカ

余談

Mcpの記事って結構書いている人いるんですよね、
そのせいかわかりませんがGoogleで検索しても全然この記事が出てこないんですよ。
もはや弾かれてるんじゃないかってレベルです。
まあ心あたりはありまして、文字数が少ないのが原因なんじゃないのかにらんでいます。
ということでこの余談を付け足してるんですよね。
自分で頑張って書いた記事が見てもらえないことは悲しい事です、これで見られるようになったらいいんですが...

なんか最近は結構上位に出るようで嬉しい限りです!

と言うことで皆さん、良きArduinoライフを!

【Arduino】LCDにi2cでカタカナを簡単に表示させる方法

2021/2/13 表のタが\xv0になっていたので\xc0に修正しました

みなさんLCDって使ってますか?
I2c変換基板を買えばたったの4線で表示できちゃうし、
プログラムも簡単なのでとっても便利です。

しかし、LCDにカタカナを表示させたい場合は、
文字コード」を直接指定してあげないと表示できません。
なので今回は、LCDの使い方とカタカナの表示方法を書いていこうと思います。

続きを読む

G533ヘッドセット 一ヶ月使用後レビュー

 久々のブログ更新、今回は一ヵ月前に購入したLogicoolのゲーミングヘッドセット「G533」のレビューをしていこうと思います。

G533のスペック

・DTSHeadphone:X7.1サラウンド対応
・最長15時間連続使用可能で交換もできるバッテリー(1100mAh)
・2.4GHz帯でワイヤレス通信(15m届くらしい)

その他箱の横に書いてあったこと

ドライバー:Pro-G 40mm
周波数特性:20Hz~20kHz
インピーダンス:32Ω
感度:107dB SPL/mW

マイク集音特性:カーディオイド(単一指向性)
マイク駆動方式:圧力勾配エレクトレットコンデンサ
マイクサイズ:4mm
マイク周波数特性:100Hz~20kHz

パッケージ内容

・本体
f:id:moyoi:20191019204344j:plain

・USBワイヤレスアダプタ
f:id:moyoi:20191019204409j:plain

・無駄に長い2mのUSB充電ケーブル(micro-B)
f:id:moyoi:20191019204431j:plain

・色んな紙

非常にシンプルです。

使用しての感想とか

装着感

ヘッドホンは今回のものとソニーの2000円ヘッドホンしか持ってないのでいまいちどうなのかわからんですが
使っていて特に不愉快な点はありません。イヤーパッドと頭に当たる部分も布製でふわふわしています。↓
f:id:moyoi:20191019205020j:plain
f:id:moyoi:20191019205041j:plain

頭を動かしてもずり落ちませんがきついと感じないほどの良い締め付け具合で、
重さを測ったらほぼ350gでそこまで重みも感じませんでした。

音質

正直初期状態での音質では音楽は楽しめません、なんというか音源が遠くてこもった音がします。
しかしご安心を、専用のソフトでいじれば十分いい音が出ます。
少なくともSONYの2000円ヘッドホンよりもいい音は出てる感じで、ヘッドホンを耳に押し当てると低音の広がりを感じられます。気持ちいいです。

まず7.1サラウンドを切ります。こいつのせいで音源が遠く聞こえるようです。
f:id:moyoi:20191019211204j:plain

イコライザーは結構細かくいじれ、ついでに本体に保存しておけます。
f:id:moyoi:20191019211326j:plain

操作性

ヘッドセット本体には
1:電源スイッチ
2:自由に機能を割り当てられるスイッチ
3:音量調節ダイヤル
の3つのスイッチがあります。
2の自由に機能を割り当てられるスイッチでは、キーボードの好きなスイッチを割り当てることができ、同時押しにも対応しています。
3の音量調節ダイヤルはpc本体の音量を変更するタイプです。
また、マイクを跳ね上げるとミュートにできる機能も付いています。
f:id:moyoi:20191022191857j:plain

外観

全体がブラックに統一されていて、一部が鏡面になっています。指紋が付きやすいですが、まあ高級感はあります。
また、LEDは電源スイッチの上のみで、目立たずシックな雰囲気です。
f:id:moyoi:20191022192914j:plain

電池

本体の電池容量は1100mAhと少なめな感じがしますが、消費電力は70mAhほどらしく、使った後ちゃんと充電していれば途中で切れることはないと思われます。
f:id:moyoi:20191022184745j:plain

そういえば電池交換が非常に簡単で、右側面の板をくるっと回せば、すぐにバッテリーパックにアクセスできちゃいます。
f:id:moyoi:20191022185140j:plain

でも毎回充電するのって面倒ですよね。
そういう人におすすめなのがマグネット式の充電ケーブルです。
今回買ったケーブルはAmazonのレビューで見つけた少々値段の高い製品ですがなかなか便利です。

しかしこのケーブル、端子がマグネットでそこら中にくっつくのでショートしそうで怖いんですよね、
そこで私は手元にあった木材で適当なスタンドを作ってみました。

f:id:moyoi:20191022191624j:plainf:id:moyoi:20191022191640j:plain
結構いい感じじゃないですか?置くだけで充電されるのでめちゃ便利です。

まとめ

どうやらLogicoolから新しいヘッドセットも出ているようですが、こちらのほうが評価は高いのでG533のほうがいいのかもしれませんね。
しかしながらかなりゴツかったり、7.1CHを切り替えるためにいちいちソフトで切り替えしなきゃいけなかったりと不満はあります。
とは言っても、この商品は自分が買ったときは11661円で、個人的には十分にその価値のあるものだと思いました。

【Arduino】Arduinoでステッピングモーターを回してみた

今回はステッピングモーターを入手したのでArduinoで制御してみようと思います。

モータードライバー

Arduino単体では制御できないのでモータードライバー↓をポチりました。

5個もいらないですがまあしょうがないです。
ちなみに制御できるステッピングモーターは2相4線の物オンリーなのでご注意ください。
また、今回使ったステッピングモーターは1ステップ1.8度で一回転200ステップのものを使いました。

つなぎ方

テスターでステッピングモーターの線を調べて内部でつながっている物同士を
モータードライバーのそれぞれ右左につなげます。
f:id:moyoi:20190519114446j:plain

そして以下の通りにAdruinoに接続します。
A-1B - D8
A-1A - D9
GND - GND
VCC - VIN
B-1B - D10
B-1A - D11

動かす

Arduino IDEには初めからステッピングモーターを制御するライブラリが入っているのでそれを使います
使うプログラムは以下↓の通りです。
f:id:moyoi:20190516082104p:plain


このプログラムをマイコンに書き込むと0.5 秒ごとにステッピングモーターが少し回転します。

このプログラムをもとに、必要な角度までステッピングモーターを回すプログラムを作りました。

#include <Stepper.h>//ライブラリをインクルード

Stepper stepper(200, 8, 9, 10, 11); //(モーターのステップ数、ピン1、ピン2、ピン3、ピン4)

void setup() {
}

void stepperMotor(int d, int s) {//関数を作成
  int k = map(d, -360, 360, -200, 200);
  if (k < 0) {
    for (k; k <= 0; k++) {
      stepper.step(-1);
      delay(s);
    }
  } else {
    for (k; k >= 0; k--) {
      stepper.step(1);
      delay(s);
    }
  }
}

void loop() {
  stepperMotor(360,10);//360度まで1ms秒ずつ1.8度動かす(何度回すか、何msごとに1ステップ動かすか)
  delay(1000);
  stepperMotor(-360,10);//-360度まで1ms秒ずつ-1.8度動かす(ちなみにスピードを2ms未満にすると回らないので注意)
  delay(1000);
}

動作の様子↓

Arduinoでステッピングモータを動かす
すごくうるさいです。もしかしたら何か間違っているのかも…
あとドライバーがかなり熱くなるのでヒートシンク等をつけたほうがいいかもしれませんね。

ステッピングモーターは何となく難しそうで手を付けていませんでしたが、実際にやってみると意外とすんなりできてしまいました。
何事も挑戦が大切ですね。

流れるLED(WS2812B)をArduinoで制御してみた

流れるテープLEDって知ってますか?
名前の通り、LEDが流れるように順番に点灯していくテープLEDです。

どんな仕組みになっているのか気になっていたんですが、どうやら
LED1つ1つにICが入っていてそれが数珠つなぎになっているようです。

という事で今回はそんなIC「WS2812B」が搭載されたLEDのリングをポチったので紹介します。

買ったLED

今回はAmazonですぐに届くこちらの商品↓を購入しました。

ちょっと高いですがRGBLEDなのでしょうがないですかね。

準備

まずははんだ付けして線をはやします。
基板の後ろの「IN、VCC、GND」から3本の線をはやします。
たくさんのLEDが信号線一本で制御でできてしまうので楽ですね~

テープ状の場合も方向があるので気をつけください。
f:id:moyoi:20190914081125j:plain

配線

GND-GND
VCC-VIN
IN-D6

光らせる

まずはライブラリを入れます。
以下のようにライブラリの管理ウィンドウを開きます。
f:id:moyoi:20190517082726p:plain
開けたら他のライブラリの更新が行われるので少し待ってから検索欄に「NeoPixel」と入れます
そして多分上から3番目の「Adafruit_NeoPixel」を左下のインストールボタンを押してインストールします。
f:id:moyoi:20190517082855p:plain
そしたらIDEを再起動して完了です。

プログラム

このライブラリーにはいろいろな関数がありなかなか面倒なので、
今回は基本だけ紹介させていただきます。
(ライブラリーのサンプルプログラムから色々な光り方を試せます。)

#include <Adafruit_NeoPixel.h>

#define PIN 6 //LEDの信号線をつなぐマイコンのピン番号
#define STRIP_COUNT 12 //つなぐLEDの数

Adafruit_NeoPixel strip = Adafruit_NeoPixel(STRIP_COUNT, PIN, NEO_GRB + NEO_KHZ800); //あれこれ初期設定

void setup() {
  strip.begin();
}

void loop() {
  for (int i = 0; i <= STRIP_COUNT; i++) {
    strip.setPixelColor(i, strip.Color(0, 0, 255)); //先ほど初期設定した名前.setPixelColor(設定するLEDの番号, strip.Color(緑の強さ, 赤の強さ, 青の強さ)); ちなみにこの場合は青を最大の明るさで点灯
    strip.show(); //LEDの設定を反映
    delay(30);
    strip.setPixelColor(i, strip.Color(0, 0, 0)); //青を消灯
  }
}

といった感じで、初期設定をして設定するLEDの番号を指定して光らせる色を設定して反映させるだけです。簡単ですね。

まあ、この記事は急いで書いたのでもしかすると色々追加していくかもしれません。

それでは良きArduinoライフを~

OpenCVのトラッキング方法「GOTURN」を試す方法

どうもこんにちは
最近画像認識をはじめてOpenCVでトラッキングとかをさせてるんですけどそのトラッキングの方法の一つである
「GOTURN」のやり方がちょっと大変だったので書いておきます。

ファイルをダウンロードして展開

下のページからデータをZIP形式でダウンロードします。
github.com

ダウンロードが終わったらファイルを展開してください。
ファイルの中身はこんな感じ。
f:id:moyoi:20190429152437j:plain

ZIPファイルを統合

先ほどのファイル内に「goturn.caffemodel.zip.001」などが4つありますが
このままだと使えないのでファイルを統合します。

まずは
「goturn.caffemodel.zip.001」
「goturn.caffemodel.zip.002」
「goturn.caffemodel.zip.003」
「goturn.caffemodel.zip.004」
の四つのファイルを
こちらのサイトを参考に統合してください
etc-log.jugem.jp

統合が終わったらまたまたそのファイルを解凍してください。

ファイルをつっこむ

GOTURNのトラッキングをさせたいプログラムの直下に
先ほど統合・解凍した「goturn.caffemodel」と
最初に回答したファイル内に入っていた「goturn.prototxt」
をつっこみます。
f:id:moyoi:20190429153517j:plain

これでトラッキング方法「GOTURN」ができるようになると思います。

Spyderをアップデートする

Spyderのアップデートが来たのでアップデートします。
だだそれだけ
f:id:moyoi:20190429145011j:plain

なお、私はSpyderをAnaconda経由で入れました

アップデート方法

1「Anaconda Promptを起動」

2「Anaconda全体を更新」

このコマンドを入力します

conda update anaconda

3「Spyderを更新」

このコマンドを入力します

pip install --upgrade spyder

以上です。ありがとうございました。

おまけ

import cv2
import numpy as np
import time
import random

#テキスト表示関数の宣言
def i_print(str1,x,y,size,color):
    cv2.putText(img, str1, (x, y), cv2.FONT_HERSHEY_SIMPLEX,size, color, size, cv2.LINE_AA)

capture = cv2.VideoCapture(0)#ウェブカメラと通信を開始する(個々の番号でカメラが変わる)
camera_opened = capture.isOpened()

#変数宣言
stert=0
state=0
num = random.randint(0, 2)
pat=["GUU","CHOKI","PAA"]

while camera_opened:#カメラが起動したら
    ret, img = capture.read()#ウェブカメラから1フレームを読み込む
    
    #各画像処理
    hsvim = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    lower = np.array([0, 48, 80], dtype = "uint8")
    upper = np.array([20, 255, 255], dtype = "uint8")
    skinRegionHSV = cv2.inRange(hsvim, lower, upper)
    blurred = cv2.blur(skinRegionHSV, (2,2))
    ret,thresh = cv2.threshold(blurred,0,255,cv2.THRESH_BINARY)
    
    #輪郭線の取得
    contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contours = max(contours, key=lambda x: cv2.contourArea(x))
    
    #輪郭線を描画
    hull = cv2.convexHull(contours)
    cv2.drawContours(img, [hull], -1, (0, 255, 255), 2)
    
    #輪郭線を囲む長方形のサイズを取得
    rect = cv2.minAreaRect(contours)
    (cx, cy), (width, height), angle = rect
    wariai=int(abs(width-height))
    
    i_print(str(int(width))+','+str(int(height))+','+str(wariai),0,25,1,(255,0,0))
    
    #現在の手の状態を判定
    if wariai>100:
        state=1
    elif height<300 and width<300:
        state=0
    else :
        state=2
    i_print(pat[state],0,50,1,(255,0,0)) 
    
    #Sキーの押下を待機
    if cv2.waitKey(33) ==ord('s'):
        stert=2
        time_sta = time.time()
    time_end = time.time()
    
    #カウントダウン、勝負結果等の表示
    if stert>=1:
        if time_end- time_sta >10:
            stert=0
            i_print("Press S to start",50,250,2,(255,0,0)) 
        if time_end- time_sta >4 and stert==1:
            i_print(str(pat[num]),250,150,2,(0,0,255)) 
            if num==state:
                i_print("AIKO",200,250,3,(0,255,0)) 
            elif state == 0 and num == 1 or state == 1 and num == 2 or state == 2 and num == 0:
                i_print("YOU WIN",100,250,3,(0,0,255)) 
            else :
                i_print("YOU LOSE",100,250,3,(255,0,0)) 
        elif time_end- time_sta >4:
            random.seed()
            num = random.randint(0, 2)
            stert=1
        elif time_end- time_sta >1:
            i_print(str(4-int(time_end- time_sta)),250,250,5,(0,0,255)) 
        else :
            i_print("START",100,250,5,(0,0,255)) 
    else :
        i_print("Press S to start",50,250,2,(255,0,0))   
        
        
    i_print("Press ESC to close",0,475,1,(255,0,0)) 
    #画面更新
    cv2.imshow("KAMERA DE JYANKEN", img)
    
    #ESCキーで終了
    if cv2.waitKey(33) ==27:
        break
capture.release()
cv2.destroyAllWindows()

BF5はプレイを始めるまでが戦いだった

さて、先日RTX2060を購入し、NVIDIAのキャンペーンで念願のバトルフィールド5を無料でゲットすることができました。

しかし

いざ遊ぼうと思うと色々問題が発生し、遊び始めるのに半日かかってしまったので、今回はもうそんな人がいなくなることを願い、そのことについて書いていこうと思います。

インストールが完了しない

ゲームをダウンロードするためにまずOriginをインストールする必要があります。
まあこれは何の問題もなかったです。
しかし問題はここから・・
BF5はデータを23%までダウンロードすることでシングルプレイのストリーモードがプレイできるようになるのですが、なぜかゲームが起動できない。というかエラーを吐いてダウンロードが止まってしまう。

エラーの内容は「VC++ runtime redistributable package が正しくインストールされていません。セットアップを続行できません。(1601)」というもの

結果的に言うとvisual studioの「C++によるゲーム開発」というワークロードをインストールするとできました。

直し方

1.visualstudioのツールから「ツールと機能を取得」を選択
f:id:moyoi:20190417064336p:plain

2.「C++によるゲーム開発」を選択してインストール
f:id:moyoi:20190417064340j:plain

3.再起動で完了

その解決策にたどり着いた経緯ですが、
まず出てきたエラーをそのまま検索してみて出てきたこちら↓の公式の解決法
https://help.ea.com/ja-jp/help/origin/origin/your-vc-runtime-package-has-not-installed-correctly-error-troubleshooting/
を試しましたが解決せず
いろいろ考えた末、visual studioC++ が関係しているっぽかったのでとりあえず「C++によるゲーム開発」をインストールしたら解決したという感じです。
ダメもとでやったのですが、まさかの正解で驚きました。

起動はしたけど…

さて、無事ゲームのダウンロードが完了していざゲームを起動してみると・・・

あれれ?
f:id:moyoi:20190417063758p:plain
なんかひたすら瓦礫を見せられていて一向にゲームが始めれられません。

これの解決策ですが
特定のソフトのスタートアップを無効にすることで解決できました。

直し方

1.スタートで「システム」と検索し出てきた「システム構成」を起動
f:id:moyoi:20190417063752p:plain

2.起動したソフトの「サービス」タブを選択
左下の「Microsoftのサービスをすべて隠す」にチェックを入れて
右下の「すべて無効」をクリック
そして画面下の「OK」をクリックして再起動
f:id:moyoi:20190417063757j:plain


この作業後にもう一度BF5を起動してみると…
f:id:moyoi:20190417064029p:plain

このようなメニュー画面になると思います。

ちなみにですが、
先ほどの作業でいくつかのサービスの自動起動を無効にしてしまったため、PC起動時にめちゃくちゃエラーを吐くと思います。
これが嫌な方は「すべて無効」ボタンではなく、一つずつサービスを無効にしていき原因となっているサービスを絞って
そのサービスのみを無効にしてください。

私の場合は「AsusGameFirstServis」という本来ゲームを快適にプレイするためのソフトが悪さをしていたようで
こいつを無効にしたら無事起動できるようになりました。

Novonestの簡易水冷を導入してみた

今回はパソコンのCPUクーラーを水冷に取り替えたのでそれについて書いていこうと思います。

アマゾンで購入したこちら↓のCPUクーラーに付け替えました。値段はまあまあ安いって感じです。

前のクーラーのスペック等々

前使ってたのがこちら↓

デザインがかっこよくて割と好きでした。
なにもしない状態でこんな感じです。
f:id:moyoi:20190316111506j:plain

最高が35度位ですね。
イクラで遊んでいてこんな感じ。
f:id:moyoi:20190316111549j:plain

グラボのほうに負荷がかかっているので正直そんなに熱くなりません。
でも以前紹介した「stick fight」をやっていると時々CPUの温度が70度超えましたよ~っていう警告がよく出ます。

簡易水冷CPUクーラーに変える

ということで付け替えて配線して、いざ電源オン
f:id:moyoi:20190316114039j:plain

おおー
f:id:moyoi:20190316114235j:plain

あーゲーミングっぽいですね~
にしても真っ青w

うーん、前よりちょっとうるさいかな?
ファンの音はそこまで気になりませんがポンプの音がビミョーに気になります。
まあ許与範囲ですけど

さて、自分にとって音はあんまり重要じゃありません。問題は冷えるかどうかです。

通常時
f:id:moyoi:20190316112027j:plain

イクラ
f:id:moyoi:20190316112537j:plain

んんんー
あんまかわんないですね。

前のCPUクーラーでやってませんでしたがCinebench20でしっかりCPUに負荷をかけてみました。
f:id:moyoi:20190316113420j:plain

64℃~65℃らへんで安定ってかんじですかね
まあたしかに、普段使いしていると前より
「CPUの温度が70℃超えましたよー」
という警告を見なくなった気がします。

あ、そういえばですがいいことがありました。
水冷はラジエーターでCPUの熱を直接ケース外に放出できますが、
そのおかげでPCケース正面があったかくなってちょっとした暖房みたいになりました。
f:id:moyoi:20190316115201j:plain
あー、あったけぇ

まとめ

えー、話をまとめますとあんまり変わらなかったです。
しかしながら高負荷でも70℃を超えることはほとんどないので前よりはちょっとはよくなったのかもしれません。
私はCPUをオーバークロックしてるので空冷よりは安心ですね。

ちなみに私の場合OCすると4GHzのCPUが4.4GHzで動きました。
f:id:moyoi:20190316115810j:plain

AQUOSのなめらか倍速表示がどれほどバッテリーを消費するか実験してみた

どうもお久しぶりです。
今回は、前に書いた当ブログのPVの半分のアクセスを閉めている記事、
moyoi-memo.hatenablog.com
で話した「なめらか倍速表示」についてどれほどバッテリーを消費するか実験して見ましたのでそれについて書いていきます。

実験1「YouTube

端末はAQUOS R compact、電池を100%まで充電後、画面の明るさと音量を最大(スピーカーに接続した状態)で、なめらか倍速表示機能がONになっている状態とOFFになっている状態で、電池残量が49%になるまでそれぞれ実験しました。

結果

なめらか倍速表示
左が「OFF」    右が「ON」

f:id:moyoi:20190106203938p:plainf:id:moyoi:20190106204003p:plain
↑OFF  実験1の結果  ON↑

はい。ほとんど変わりませんでした。強いて言うととONのほうが若干電池の減りが早いです。
おそらく、動画の場合はFPSが動画に依存するため、わざわざ倍速表示する必要がなくOFFの状態と変わらなくなっているのだと思います。

実験2「Twitter

実験1のように動画を流しただけではほとんど変化が見られなかったので、実験2ではなめらか倍速表示の良さが出るスクロールの動作を行ってみます。AQUOSには「スクロールオート」という自動でスクロールを行ってくれる便利機能がついているのでそれを使い、ひたすらTwitterのタイムラインをスクロールさせます。

端末はAQUOS R compact、電池を100%まで充電後、画面の明るさ最大で、なめらか倍速表示機能がONになっている状態とOFFになっている状態で、電池残量が49%になるまで(他のことをしていたら49%を見逃してしまいました)それぞれ実験しました。

結果

なめらか倍速表示
左が「OFF」    右が「ON」

f:id:moyoi:20190109081747p:plainf:id:moyoi:20190106203911p:plain
↑OFF  実験2の結果  ON↑

気づいた方もいると思いますが、OFFのほうのグラフを見ると色々おかしいです。
申し訳ありませんでした。ほっておいたらいつの間にかディスプレイが消えちゃってました。
とはいっても、またしても大きな変化は見られませんでした。

実験1,2の結果まとめ

はい。全然変化がありませんでした。
全体の結果のグラフを「Battery Mix」というアプリから持ってきました。

f:id:moyoi:20190109083342p:plain
実験1,2のまとめグラフ
うーん、やっぱりあんまかわんないですね。
これはまさかの勘違いっていうやつでしょうか。いやそんなことないはずです。
という事で次の実験は一日使ってみてどうなるかを調べていきます。

実験3「1日使って比較」

端末はAQUOS R compact、電池を100%まで充電後、普通に1日使ってみます。
画面の明るさやBluetoothなどは適当です。

結果

全てのアプリになめらか倍速表示機能を適応した状態で1週間ほど使用してみましたが以前と比べて電池の持ちが悪くなったという感覚はありませんでした。

結果のまとめ

結果、ほとんど違いはありませんでした。
うーん、改善されたんですかね
前の状況のテストは行っていなかったので比べようがないのですが、
とりあえず『なめらか倍速表示機能はバッテリーの使用量にはあまり影響しない』
という事がわかりました。
これであのぬるぬる感をいつでも楽しめます。
やったぜ

格安3Dプリンター「Ender-3 Pro」を買ってみた

ついに買っちゃいました。3Dプリンター
今回購入したのは「Ender-3 Pro」というやつで、Amazonでポチりました。

最初はこちら↓のもう少し安いプリンターを買おうとしていたのですが、いつの間にか値上がりしていたので、どうせならと思い、フレームがアルミでしっかりしていそうな「Ender-3 Pro」を購入しました。
ついでにキャンペーン中だったので、白いPLAフィラメントも0.5㎏もらいました。

組み立て

この3Dプリンターは組み立て式なのでちょっと手間がかかります。

箱はこんな感じ。結構でかいです。
f:id:moyoi:20190111122325j:plain

中身はこんな感じ。ちゃんとしてますね。でもキッツキツに入っているので取り出すのが少し大変でした。
f:id:moyoi:20190111122436j:plain

全部出してこんな感じ。
f:id:moyoi:20190111123034j:plain

なんかペンチまでついてきました。ただし、レンチ等はもちろん安物だったので、すぐになめて使用不能になってしまいました。
f:id:moyoi:20190111122841j:plain

12ステップしかないので簡単に組み立てられます。

f:id:moyoi:20190111123145j:plainf:id:moyoi:20190111123141j:plain


という事で約1時間ほどで完成しました!
いやはや、かっこいいですね~
f:id:moyoi:20190111123410j:plain

調節とテストプリント

組み立てが終わったので次は調節をしていきます。

各軸の調節

Y軸のベルトがすこーし緩いと感じたのでちょっと張らせました。
そしてZ軸の送りネジの動きが悪かったので、ここ↓のねじを緩めました。
f:id:moyoi:20190117052052j:plain

ベットの水平出し

どうやらコピー用紙を挟んでやるのが一般的らしいですが、すごくやりにくかったので私はテストプリントをさせながら少しずつ調節していき、うまくいくところを探しました。
ちなみに水平になってないとこんな感じになってしまいます。
f:id:moyoi:20190111124618j:plain

という事でちゃんとプリントできるようになったのでいざ、テストプリント!
ノズルとベットの加熱には大体2分位かかり、温まるとすぐにプリントが始まります。
付属したSDカード内にテストプリント用の犬のデータが入っていましたが、どうやら何時間もかかるらしいので、今回はネットで拾ってきたよさげなモデルを使用します。
モデルを持ってきたら「ultimaker cura」と言うソフトでGchordに変換します。
このソフトで積層の厚さや密度、サポート材等の設定をすることができます。今回は特に設定を変えないで初期設定のままプリントしてみます。

テストプリントの結果

見てくださいよこれ、めちゃくちゃいい感じですよ。
細かい部分もしっかりと出来ています。

f:id:moyoi:20190119210649j:plainf:id:moyoi:20190119210809j:plainf:id:moyoi:20190119210844j:plain

色々作ってみた

今後作ってみたものを随時アップしていこうと思います。

改良

格安プリンターにはどんどん改良していけるという利点があります。
今回購入した3Dプリンターの公式サイトでも改良の仕方がまとめてあるページがあります。
m-all3dp-com.cdn.ampproject.org
では、今回は操作盤のカバーを作ってみます。
さっきのページに3Dモデルがあるのでダウンロードして早速印刷。
操作盤のカバーは途中でフィラメントが終わっちゃったのでフィラメントの色が2色になっちゃいました。

f:id:moyoi:20190119211300j:plainf:id:moyoi:20190119211325j:plain

ちなみにフィラメントの交換は前のフィラメントの末尾に新しいフィラメントを押し付けながらフィラメント送り器に取り込ませるだけでできました。
ついでに箱に同封されていた防塵用のチューブも付けました。

改良後

こんな感じです。
f:id:moyoi:20190117052501j:plain

まあ、そんなに変わったわけではないですね。
公式サイトにこのほかたくさんの改良方法が載っているので今後手を出していきたいと思います。
また改良したら随時更新していこうと思いますのでよろしくお願いします。