カニ食べたい

そこまででもない

Windows7 64bitで古いゲームのムービーが再生されない

古いゲームってのはアレですね、その、可愛い女の子とかが出てくる紙芝居ゲームとかそういうやつです

序盤のOPムービーが再生されなくて先に進めず困ったので色々やっていく

環境
Windows7 Home Premium 64bit


家に古いゲームがいっぱいあるので検証したところ、ムービーファイルが.mpgのやつが再生に失敗している事が判明

というわけでコーデックを入れていきます


ffdshowのダウンロード
ja.osdn.net
上記ページから「ffdshow_rev4533_20140929_clsid.exe」をダウンロード
PCが64bitでも_x64と書かれたほうでなく32bit版をダウンロードしてください


ffdshowのインストール
ダウンロードしたインストーラを実行
「次へ」をポチポチしてれば終わります


ffdshowの設定
スタートメニュー→ffdshow→ビデオデコーダーの設定
f:id:Tarabakani:20180512031128p:plain
MPEG-1とMPEG-2を「libavcodec」にします


④Win7DSFilterTweakerのダウンロード
インストールしたコーデックが優先的に使われるように設定するソフトです
www.codecguide.com
上記ページから「Win7DSFilterTweaker_6.3.exe」をダウンロード


⑤Win7DSFilterTweakerの設定
ダウンロードしたexeファイルを実行するとこんな画面が出てくるので
「Preferred decoders」をクリックします
f:id:Tarabakani:20180512032133p:plain

f:id:Tarabakani:20180512032515p:plain
左側の32bitの設定でMPEG-1とMPEG-2を「ffdshow」にします


おわり
無事ムービーが再生されました 良かったですね。

PowerPoint Onlineでならバックスラッシュが表示できる

できた(環境によって変わる可能性があります)

環境
OS:Windows
ブラウザ:Chrome

¥マークは挿入タブの記号から入れましょう

おわり

Ubuntuで測域センサURGのデバイス名を固定する

ロボットに積んだURG(北陽電機の測域センサ)、プログラム側でURGのディレクトリを指定してるのでデバイスを刺す順番とかで名前を変えられると困る
そこでudevを使う


環境
Ubuntu 16.04 64bit
URG (UTM-30LX) USB接続タイプ

 
まず下記のコマンドでUSBに刺さってるデバイスの一覧を出す

$  ls usb

バイスを刺したり抜いたりしてURGがどれかを特定する

自分の環境ではこう

Bus 002 Device 007: ID 15d1:0000

 

下記コマンドを実行してrulesファイルを作成します

$ sudo nano /etc/udev/rules.d/99-serial.rules

ファイル名の数字(99)は優先順位で、他にもrulesファイルがある場合数字の若いほうから処理されるらしい
 
下記コードを追加して保存

KERNEL=="ttyACM*", ATTRS{idVendor}=="15d1", ATTRS{idProduct}=="0000", SYMLINK+="ttyACM_URG", MODE="0666"

idVendorとidProductはlsusbで出た各々の値を入れてください
SYMLINKはデバイス名,MODEはパーミッションです 好きな値入れればいいと思う

USBケーブルを抜き差しし、下記コマンドを実行

$ ls -la /dev/ttyACM*

 
こんな感じで指定した名前になってればOKです

crw-rw-rw- 1 root dialout 166, 0 49 12:29 /dev/ttyACM0
lrwxrwxrwx 1 root root 7 49 12:29 /dev/ttyACM_URG -> ttyACM0


おわり

起動しないLG V10をホットプレートで治す

ロゴでフリーズするLG V10です
Download Modeに入ろうとしてもフリーズする
f:id:Tarabakani:20180420180544j:plain
画面きたね

ここから先の手順は全て自己責任でお願いしますなんたらかんたらうんたら
荒療治なのでそのうち再発します多分

とりあえずに3枚におろす
f:id:Tarabakani:20180420180315j:plain
分解方法はこの辺でも見て
jp.ifixit.com

使うホットプレートはこれ

丸型ホットプレート HK-350

丸型ホットプレート HK-350

 
f:id:Tarabakani:20180420180349j:plain
ホットプレートにアルミホイル敷いてマザーボードを置く
蓋置いて180度にセット
指定した温度に達するとパイロットランプが切れるのでそのまま1分ほど放置
終わったら冷まして組み立てれば完成

はい
f:id:Tarabakani:20180420180415j:plain

いろいろ調べてみるとこの機種、使ってると熱でemmcあたりが良くないことになるみたいですね
手作業でBGAリワークやるの憧れる(しんどそう)
youtu.be
youtu.be

おわり

mbedのオフライン開発環境の導入 MDK-ARM編

オンラインコンパイラでつらい思いをしたのでオフラインでやっていきます

環境 windows 10 64bit
マイコン Nucleo F303k8とか

使うのはArm純正のMDK-ARM
無料だとコードサイズが32KBまでという制限がありますがまあなんとかなるでしょう

開発環境をダウンロードしていく
MDK-ARM Version 5.25 Evaluation Software Request
このページで住所氏名所属やらをいい感じに入力する

f:id:Tarabakani:20180419190701p:plain
MDK525.EXEをダウンロード
この数字はバージョンなので今後増えるかも多分
800MB以上あるのでダウンロード終わるまでゆっくり待ちます

ダウンロードしたらインストーラを起動します
Next>>をポチポチしてれば大丈夫です
インストールもそこそこ時間かかる

 
インストールが終了したらオンラインのコンパイラからプログラムを引っ張ってきます

f:id:Tarabakani:20180419195619p:plain

f:id:Tarabakani:20180419195733p:plain

zipファイルに固められて落ちてくるので解凍して.uvprojxを開きます

なんかインストールしてって言われるのでインストールします
f:id:Tarabakani:20180419195913p:plain
終わるまで待つ

 
開くとこんな感じ
f:id:Tarabakani:20180419200118p:plain

 
コンパイルで.binファイルを吐き出すように設定を弄ります


f:id:Tarabakani:20180419200221p:plain
プロジェクトのフォルダのところで右クリック→「Options for Target"...」
「User」タブのAfter Build / Rebuildで
Run #1のチェックボックスを入れる
User Commandに
「fromelf --bin "#L" -o "$Poutput.bin"」
と記述してOK押す
f:id:Tarabakani:20180419200409p:plain

これで設定完了

Rebuild(↓↓ こんな感じのボタン)を押すとコンパイルが始まります
コードが数行だと一瞬で終わる


プロジェクトのあるフォルダに「output.bin」ができてるのでエクスプローラ上でマイコンボードにドラッグ&ドロップすれば終了

終わり


よく見たらスクショ内のコード、303k8にはボタン無いので動くわけないですね

TeraTermでUbuntuとSSH接続するとnano(テキストエディタ)の表示がおかしくなる

設定(S)>端末(T)で改行コードを受信送信ともに”CR”にする

おわり

初期設定だと問題ないが以前何かで弄って受信が”AUTO”になっていた

Raspberry Pi Quimat 3.5インチタッチスクリーンをUbuntuで使う

これです 

LCDがGPIOじゃなくてHDMI接続なのでGPIOが塞がらないというか実際電源供給やらで塞がるんですが、他の安物と違ってGPIOが全部使えるようにピンヘッダが外部に出ていて便利
ラズパイ用LCDはコレ一択な感じすらある


環境
Raspberry Pi 3 Model B
Ubuntu Mate 16.04


初めにconfig.txtを編集して解像度の変更とタッチパネルを有効化させます

$ sudo nano /boot/config.txt

ファイルの最下部にこれらを記述します
途中にも色々それっぽい項目はあるのですが全部コメントアウトされてるので気にしなくてよいです

hdmi_drive=2
hdmi_group=2
hdmi_mode=87
hdmi_cvt=800 480 60 6 0 0 0

dtparam=spi=on
display_rotate=2
dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150,swapxy=1

再起動するといい感じの表示になってると思います
 

タッチパネルのキャリブレーションをします

$ sudo apt-get install xinput-calibrator
$ DISPLAY=:0.0 xinput_calibrator

キャリブレーション画面になるので赤い十字のマーカーの中心をタッチしていきます
終わると結果がこんな感じで出てきます

pi@pi-desktop:~$ DISPLAY=:0.0 xinput_calibrator
    Setting calibration data: 0, 4095, 0, 4095
Calibrating EVDEV driver for "ADS7846 Touchscreen" id=6
    current calibration values (from XInput): min_x=0, max_x=4095 and min_y=0, max_y=4095

Doing dynamic recalibration:
    Setting calibration data: 206, 3949, 172, 3866
    --> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)
Section "InputClass"
    Identifier "calibration"
    MatchProduct "ADS7846 Touchscreen"
    Option "Calibration" "206 3949 172 3866"
    Option "SwapAxes" "0"
EndSection


Ubuntuの場合/usr/share/X11/xorg.conf.d/99-calibiration.confにファイルを作成します

$ sudo nano /usr/share/X11/xorg.conf.d/99-calibiration.conf


結果のSection~EndSectionをコピペするか写経します

Section "InputClass"
    Identifier "calibration"
    MatchProduct "ADS7846 Touchscreen"
    Option "Calibration" "206 3949 172 3866"
    Option "SwapAxes" "0"
EndSection

再起動して正常に動作することを確認します

おわり


追記というかなんというかおまけというか

タッチパネルに向きを合わせるためにdisplay_rotate=2で画面の向きを180度回転させてるんですけど、そうするとHDMI端子が手前側にくるんですね
自分はGPIOを手前にしたくて少し調べたんですけどタッチパネルを反転するにはX
windowのほうを設定を変えなくてはいけないみたいです
昔はlcd_rotate=2で反転できたらしいんですけど
とりあえずはそのままの向きで使おう思います


追記の追記
画面とタッチパネルの反転ができました

config.txtのdisplay_rotate=2のところを編集

display_rotate=0

下記コマンドを実行しタッチパネルを反転

$  xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1

反転が確認できたら起動時にコマンドが実行されるようにスタートアップに登録します
System>Personal>Startup Applicationsを開き上記コマンド追加します

必要に応じてキャリブレーションをしたりしましょう
ただ、自分の環境ではタッチパネルを反転させた後にキャリブレーションしたら逆にズレが大きくなったので補正の値は反転前のを使っています