俺のクソレシピ

おもにプログラミングについて俺の趣味についてテキトーに書いています。

AviUtlで保存したファイルだけカットした後に音ズレが起こったので対処法について説明しておく

AviUtlで動画編集をしていたんですが、カットして(aupファイルで)保存して開いたら、保存する前は音ズレしなかったのに、保存したら音ズレが起こったので、その対処法について説明しておきます。
ちなみに今回の場合では、音ズレと言っても、少しずれるのではなく、映像だけ全然違うフレームから再生されるといった現象のことです。音ズレというよりは、映像ズレです。
※今回使用した入力プラグインはL-SMASH Worksですので、直らないかもしれないですし、そもそもズレないかもしれません。

音ズレした原因

なぜか分からず、ずっと悩んでいたんですが、入力プラグインの設定を開いてみると、自分が設定した内容ではなくデフォルト設定になっていることに気づきました。
その為、fpsがずれて音ズレが起きていたようです。

対処法について

対処法は、aviutl.exeと同じディレクトリに保存するか、保存したファイルにも入力プラグインの設定をする必要があります。
いちいち設定するのがめんどくさいという人は設定ファイルをコピーすれば大丈夫です。
ちなみに、L-SMASH Worksの設定ファイルはaviutl.exeと同じディレクトリにあるlsmash.iniというファイルです。
僕はコピーするこの方法で無事解決しました。

そもそも、exoファイルで保存すれば、オブジェクトファイルなのでこんな問題は起きないんですが・・・

ElectronでWindowsランチャーソフト(WLauncher)を作ってみた

ElectronでWindowsのランチャーソフト(WLauncher)を作ってみたので紹介します。

f:id:myprogramming:20171220213037p:plain

Electronとは

この記事を見ている人は知っていると思うんですが、一応説明しときます。

Electronは、GitHubが開発したオープンソースのソフトウェアフレームワークである。

ChromiumとNode.jsを使っており、HTML、CSSJavaScriptのようなWeb技術で、macOSWindowsLinuxに対応したデスクトップアプリケーションをつくることができる。

Atom、Slack、Visual Studio Codeなどで使用されている。

Electron (ソフトウェア) - Wikipedia

めんどくさくなったのでWikipediaから引用させてもらいました。
要はWEBページ作るみたいな感じでデスクトップアプリが作れるということです。
しかも、同じソースコードクロスプラットフォーム対応できて、Electron独自のAPIやNode.jsも使用できるので、かなり簡単に本格的なソフトを作ることができます。
これから、ぼちぼちElectronについて解説していけたらと思っています(すでに情報が多いので主に僕がハマったところを)。

WLauncherとは

WLauncherとは、今回、僕がElectronで開発したWindows用のランチャーソフトです。
ElectronはクロスプラットフォームなのになんでWindowsだけなのか、というと単純にMacを持ってなく、動作確認ができないからです。
Macユーザーのみなさんはごめんなさい。
今度、Mac持ってる友だちに借りれたら、Mac用も紹介しようと思います(そしたらWLauncherって名前はまずいか・・・まあ、いいや)。

Windowsインストーラーについて

今回は暇だったので生意気にもインストーラーを作らせていただきました。
使ったのはinno setupというWindowsインストーラー作成ツールです。
初めて使ったのですが、特にハマったところもなく簡単に作ることができました。
こちらは解説しないので気になったらググってください(めんどいので解説しているページのリンクも貼りません。ゴメンナサイ)。

リリース(ダウンロード)

Version 1.0.1
  • ダウンロード
  • リリースノート
    • アプリからショートカットに名前を変更しました。
    • ショートカットのパスの入力欄が空になったときに入力を促す文を表示させるようにしました。
    • ショートカットの入れ替え時に起こるバグを修正しました。
Version 1.0.0

まとめ

本当は使い方も詳しく説明したいのですが、それをやっていると、とても長くなってしまう気がしたので、使い方は次回にさせてもらいます。
おそらく使い方は説明しなくても勘でわかると思うのですが(というかそれを目指してできるだけシンプルな作りにしたのですが)一応、使い方は説明します。
念入りにデバッグしたのですが、もしバグが起きたらコメントで教えてくれるとありがたいです(要望などもコメントでお願いします)。
バグや要望があったら更新していく予定です。
ちなみに、Electronの解説はしていく予定ですが、WLauncherの解説はほぼ100%の確率で解説しないと思います。
コメント(プログラムの)を全く書いていないのと、ごちゃごちゃしすぎてとても読みにくいためです。本当にゴメンナサイ。
では今回はこれで。
ありがとうございましたm(_ _)m

一人称を僕にします(どうでもいいことなんですが・・・)

タイトルにある通りどうでもいいことなんですが、これからは一人称を僕にして記事を書かせていただきます。
というのも、最近全然ブログを書いていないうちに(自分でもよくわからないのですが)なぜか一人称が俺から僕になっていたんですね。
だから、ブログを書こうと思ったときに「俺」ってなんか違和感があったので「僕」にさせていただくことにしました。
皆さんには本当にどうでもいいことなんですが、これからもよろしくお願いします。

Arduino Uno PWMでLEDの明るさを制御する

今回はタイトルにある通り、ArduinoのLEDの明るさをPWMを使って制御していきたいと思います。
余談ですが、今回俺は「Arduino Web Editor」というWebサービスを使ってスケッチをArduinoに書き込んでみました。結構使いやすく、俺はインストール版よりUIが好きです。ただ、アカウントを作ってプラグインをインストールする必要があったので最初は少しめんどくさかったですね。
ということで、余談はこの辺にして今回の本題に入っていきたいと思います。

f:id:myprogramming:20170913191316j:plain

PWMとは

PWM(パルス幅変調)とは、簡単に説明すると素早くON・OFFを繰り返しONとOFFの比率を変えることによって、出力される電力を制御する方式の一つです。つまり、PWMを使うと擬似的にアナログ出力することが可能になります。

ArduinoでPWMを実現するには

ArduinoでPWMはanalogWrite関数を使うことによって実現できます。第一引数にPWM出力が可能なピン番号を、第二引数に出力する電力を0~255までの256段階で指定します。ちなみに、PWM出力が可能なピン番号は、「~」が横に書いてあるデジタルピンです。

f:id:myprogramming:20171031205146p:plain
「~」が横に書いてあるデジタルピンがPWM出力可能

だんだん明るくしてまた暗くしていくものを作ってみた

スケッチはこちら

まず、変数iを定義してfor文で0~255の範囲で増やしていきます。このiの値を使ってPWM出力し10ミリ秒待って次の値に変化させます。同じように暗くしていき、それを繰り返すことによってだんだん明るくなってまた暗くなっていく、という風に動作します。

Arduino言語の文法についてはこちら
Arduino 日本語リファレンス

回路はこちら
f:id:myprogramming:20171031210101p:plain

回路は前回のLチカの13番ピンを9番ピンに変更するだけでOKです。

実際に動作している様子

まとめ

今回はArduinoで、PWMを使ってLEDの明るさを制御していきました。このPWMを使えばLEDだけでなくDCモーターの速さやサーボモーターの角度などを制御したりすることができます。
前回はデジタル出力、今回はアナログ出力をやったので、次はデジタル入力、そしてアナログ入力という風にやっていきたいと思います。

Pythonのリストの要素を入れ替える

今まで、クソめんどい方法でやっていたのでちょっとご紹介。

f:id:myprogramming:20170627164334j:plain

list[i]をlist[j]に、list[j]をlist[i]にしてリストの要素の入れ替えをしたいわけなんですが、

とやってしまうと、list[j]がなにも変わっていないのがわかるでしょうか?

例えば、

とすると、まず、list[0]がFalseになり、それをまたlist[1]に代入してもlist[1]がFalseのままですよね。

そこで、今までやっていた方法だと、

このように入れ替える前にlist[i]を他の変数に代入していたのですが、Pythonでは複数の変数にそれぞれ値を同時に代入できるので、
 
だけで良かったみたいです。

今まで本当にアホなやり方してたんだな…

Raspberry Pi(Raspbian)にArduino IDEをインストールする

皆さんこんにちは。

突然ですが、Raspberry PiArduino IDEをインストールしてみたいなと思って適当にやってみたら普通にできてしまったのでその方法を皆さんにも紹介したいと思います。

なお、この記事にたどり着いた方はRaspberry PiArduinoについての知識がある方がほとんどだと思うのでRaspberry PiArduino自体については解説しません。もし気になったらググれば大量に情報があるので、ぜひ調べてみてください。

f:id:myprogramming:20170924170222p:plain

インストールする

Linuxでインストールといったらapt-getコマンドだと思ってやってみたら、普通にできちゃったのでその方法を説明します。
ブログ的にはこれでうまくいかないほうが面白いんだけど...(笑)

まず

sudo apt-get update コマンドと
sudo apt-get upgrade コマンドで

パッケージを一応更新しておいてください。

パッケージが更新できたら、

sudo apt-get install -y arduino コマンドを

叩けばOKです。

  • yオプションはすべての質問にYesで答えるようにするものです。例えば、「続行しますか」のような質問がでなくなりすべてYesで答えたことになります。

そしたらRaspberry Piを再起動してやれば、左上のアプリケーションメニューのプログラミングカテゴリーと電子工学カテゴリーに入っています。どちらも同じものなので好きな方から起動してください。ちなみに、もし表示されていなかったら設定のMain Menu Editorで表示させることができます。

もし、コマンドから起動したい、という方がいるのなら

arduino コマンドでも起動することができます。

f:id:myprogramming:20170924181325p:plain
アプリケーションメニューに表示されているArduino IDE

f:id:myprogramming:20170924181404p:plain
Arduino IDEを実際に開いてみたところ

まとめ

今回はすごく簡単でした。
俺も少し驚いていて、もっと早くやっときゃよかったな、なんて思ったりしてます。
今後、Raspberry PiArduinoの連携なんかもできたらいいなと思っているので、そちらの方も是非読んでみてください。
皆さんも是非試してみてください。

Arduino Uno(互換機)が届いたぞ! Lチカも成功!

皆さんArduinoを知っていますか?
Arduinoは誰でも始められるように作られたマイコンボードです。
今回Arduinoの互換品を購入してみたので紹介していきたいと思います。

※この記事では動作確認程度しかしていないので詳しい解説はしていません。

f:id:myprogramming:20170913191316j:plain

Arduinoの互換品

まずArduinoオープンソースハードウェアなのでたくさん互換品が世の中に出回っています。
その中で今回購入したものは、Arduinoの中で最もメジャーなArduino Unoの互換機の

EasyWordMall UNO R3開発ボード USBケーブル付属 Arduinoと互換

というものです。
これは、500円くらいで俺の場合、8日で届きました。
ハズレがあるかもと思って3台購入しておいたのですが、全てピン曲がりもなくちゃんと使える状態でした。
本家は1台3000円以上するので、これだと3台1500円位と、とてもお得ですね。
本家1台分で6台買えてしまいます。

ちゃんと動くかLチカしてみた

やはりArduinoといったらLチカ(LEDをチカチカ点滅させることで、ArduinoHello Worldみたいなもの)だと思い、俺もやってみました。
俺は一応Arduinoを以前にやっていたので、スケッチ(Arduinoのプログラム)を書くことができました。

そのスケッチはこんな感じ。

ArduinoとLEDと抵抗の回路。

f:id:myprogramming:20170913195116p:plain


さすがに何も解説がないのはまずいと思ったので、ちゃんと解説しているリンクを貼っときます。
Arduino docs
このサイトはやや情報が古いので、そこは自分の環境と比べて読み替えてください。
例えばこのサイトで紹介されている「123D Circuits」というWEBサービスは今は「Tinkercad」の「Circuits」となっています。
※今回の互換機を使うと、「ArduinoとPCを接続してみよう」の「シリアルポートの設定」の「Windowsの場合」では、デバイスマネージャーに「Arduino UNO」ではなく、「CH340」と表示されるので注意してください。ちなみに、MACについてはわからないのでもし知っている人がいたら、コメントしてくれるとありがたいです。

Lチカしている様子。


まとめ

今回はかなりお得な買い物ができたと思います。
今後、ラジコンとか作ったりできたらいいなと思っています。
これからは、Arduinoについての記事も結構書いていくと思うので、Arduinoを始めてみたいと思う人は是非参考にしてくれるとうれしいです。