/**ぶろぐ*/

コメントアウトしたくなるブログ

m5stackの開発環境構築(arduino ide編)

m5stack fireを勢いで買って開発環境を作ってハローワールドした話を書きます.

m5stack fireとは

m5stack basicと比べてPSRAMが搭載されていたり,MPU6050,マイクとかが付いていたりする.

構築環境

手順

1. ドライバの導入

公式からCP210X Driverを落としてインストールする. www.m5stack.com インストールしてm5stackを接続するとSilicon Labs CP210x USB to UART Bridgeとして認識されるようになるはず.

ちなみにteratermなどでボーレートを115200に設定し接続するとm5stack内部のmicro pythonインタプリタで簡単なプログラムが書けるようになる.

f:id:matsuneko22:20190413020647j:plain

2. arduino ideの設定

  1. 環境設定から追加のボードマネージャのURLに https://dl.espressif.com/dl/package_esp32_index.json を追加.
  2. ツール→ボード→ボードマネージャからesp32をインストール.
  3. スケッチ→ライブラリのインクルード→ライブラリの管理でm5stackを検索してインストール.

ハローワールドしてみる

新しくsketchを作成してLCDに適当な文字を表示するプログラムを書く.

#include <M5Stack.h>

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

void loop() {
  M5.Lcd.println("Hello World");
  return;
}

で下記の設定で書き込む.

  • ボード: M5Stack-Core-ESP32
  • Upload speed: 115200
  • Flash Frequency: 80MHz
  • Flash mode: QIO

書き込みが終わるとLCDに何か表示されるはず. f:id:matsuneko22:20190413172341j:plain なんかループしてる...なんで...

おわりに

公式にも手順が載っていなくてまとめてみたけど,思っていたよりやること少なかったです. arduino ideのボードの追加も調べた限り以前より簡単になっているみたい.

とりあえず今日はここまで.せっかくMPU6050載っているし何か作りたいけど,思いつかないので当分放置しそう.

おしまい

Firefox Screenshotsのオンラインに保存する機能を無効化する方法

ここ最近Firefox Screenshotsをスクショとるために使うことが多くなったけど,オンラインに保存する機能だけは全く使わないので無効化する方法を探ってみた. f:id:matsuneko22:20180619233548p:plain

  1. about:configにアクセスする.
  2. 動作保証対象外になります!の画面で危険性を承知して使用するを押下する.
  3. 検索のところにextensions.screenshots.upload-disabledを入力する.
  4. ヒットした項目をtrueに変更する.

f:id:matsuneko22:20180619234010p:plain

設定が終わればオンラインに保存するボタンが非表示になるはず. f:id:matsuneko22:20180619234235p:plain

おわり

windows10のユーザフォルダにある見えないシンボリックリンクの正体

WSLで作業しているとき, /mnt/c/Users/User/ 内で ls を実行するとアクセス権限のメッセージが出ることに気が付いた.

ls: cannot read symbolic link 'Application Data': Permission denied
ls: cannot read symbolic link 'Cookies': Permission denied
ls: cannot read symbolic link 'Local Settings': Permission denied
ls: cannot read symbolic link 'My Documents': Permission denied
ls: cannot read symbolic link 'NetHood': Permission denied
ls: cannot read symbolic link 'PrintHood': Permission denied
ls: cannot read symbolic link 'Recent': Permission denied
ls: cannot read symbolic link 'SendTo': Permission denied
ls: cannot read symbolic link 'Templates': Permission denied
ls: cannot read symbolic link 'スタート メニュー': Permission denied

こんな感じで身に覚えのないファイルが表示されるので,どうにか消せないものか調べてみた.

まずpowershellでアクセスできるか確認してみる.

PS C:\Users\User> ls


    ディレクトリ: C:\Users\User


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2017/11/12     18:33                .dlv
d-----       2017/11/16     14:53                .ssh
d-----       2017/12/15     16:31                .texlive2017
d-----       2017/10/18     22:52                .vscode
d-r---       2018/01/07      3:08                3D Objects
d-r---       2018/01/07      3:08                Contacts
d-r---       2018/01/16     16:13                Desktop
d-r---       2018/01/18     15:05                Documents
d-r---       2018/01/15     15:30                Downloads
d-r---       2018/01/07      3:08                Favorites
d-----       2017/11/04      1:11                go
d-r---       2018/01/07      3:08                Links
d-r---       2018/01/13     17:52                Music
d-r---       2017/12/08     14:21                OneDrive
d-r---       2018/01/15     18:13                Pictures
d-----       2017/10/13     10:51                Roaming
d-r---       2018/01/07      3:08                Saved Games
d-r---       2018/01/07      3:08                Searches
d-----       2017/10/20     12:22                source
d-r---       2018/01/07     14:35                Videos
d-----       2017/10/30      0:10                Workspace
-a----       2018/01/19     23:45             13 .bash_history
-a----       2017/12/15     17:20             59 .gitconfig
-a----       2017/12/26     15:00           1060 .viminfo

My Documentsなんてないじゃん.と思ったけど隠しディレクトリ表示されていないので -Hidden 使って表示してみた.

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d--h--       2017/10/20     16:04                AppData
d--hsl       2017/10/20     16:04                Application Data
d--hsl       2017/10/20     16:04                Cookies
d--hs-       2018/01/18     18:27                IntelGraphicsProfiles
d--hsl       2017/10/20     16:04                Local Settings
d--h--       2017/10/20     16:10                MicrosoftEdgeBackups
d--hsl       2017/10/20     16:04                My Documents
d--hsl       2017/10/20     16:04                NetHood
d--hsl       2017/10/20     16:04                PrintHood
d--hsl       2017/10/20     16:04                Recent
d--hsl       2017/10/20     16:04                SendTo
d--hsl       2017/10/20     16:04                Templates
d--hsl       2017/10/20     16:04                スタート メニュー

で,中を見てみる.

PS C:\Users\User> cd '.\My Documents\'
PS C:\Users\User\My Documents> ls
ls : パス 'C:\Users\User\My Documents' へのアクセスが拒否されました。
発生場所 行:1 文字:1
+ ls
+ ~~
    + CategoryInfo          : PermissionDenied: (C:\Users\User\My Documents:String) [Get-ChildItem], UnauthorizedAcc
   essException
    + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

わからん.

ということで,謎のディレクトリの名前だけで調べてたぶんこれだろうと考えているものがwindowsの特殊フォルダ.

Special folder - Wikipedia

名前は一致しているからたぶんそう. わからん.


ここから追記

この記事を投稿してから,有力な情報をいただいたので書き残しておきます.

上記の隠しシンボリックリンクだと思っていたものは以前のwindowsで使われていたフォルダジャンクションだったようで,後方互換のために残っているらしい(たしかにxpでc:\My Documentsでアクセスで来ていた気がする).

なので,消せないのではという結論に至った.


また追記

WSL関係なかったので改題しました.

うんこでわかる3DCAD入門

布団の中から寒中お見舞い申し上げます.ブログ力爆age Advent Calendar 17日目を担当しますmatsuneko22です.

adventar.org

ところで皆さん,「あー,がん○む作って研究室吹っ飛ばしたい」とか思ったことありませんか?がん○むは現代の技術では作れませんが,簡単な機構であれば3Dプリンタなどで容易に作れるようになりました.日曜大工感覚で何か作ってみたいを思っている人もいるのではないでしょうか.

そんな方々向けに今回はうんこでわかる3DCAD入門と題して,初心者の私が初心者向けに簡単な3DCADの解説をうんこを作りながらやっていきます.
使用するソフトは creo parametric です.

https://www.ptc.com/en/products/cad/creo/parametric

このソフトは学生限定のアカデミックライセンスを利用するとタダで使えますがほかのライセンスはうん100万ぐらいするので*1,お財布と相談し適当なソフトを選んだ方がいいです.そのためこの解説ではcreoの詳細な使い方は記載しないで,どのソフトでも使うような概念的な内容だけ扱います.

"押し出し"でうんこを作る

押し出しとは断面となる図形を作り,高さを加えることで物体を作ることです.掘削も押し出しと同じ要領でできるので覚えておいて損はないです. ではうんこのベースを作っていきましょう.
まず,円を描き f:id:matsuneko22:20171217171311j:plain

高さを加えます. f:id:matsuneko22:20171217171316j:plain

はい,円柱ができましたね.うんこには角はないのでラウンドを使って取り除きます. f:id:matsuneko22:20171217172342j:plain

これを重ねて行ってうんこにしていきます.

f:id:matsuneko22:20171217172614j:plain
鏡餅じゃん

"回転"でうんこを作る

回転とは断面の図形を回転軸を中心に回転させることです. 試しにドーナツを作成してみましょう.
まず,断面を書き回転軸を指定します. f:id:matsuneko22:20171217172951j:plain

あとは回すだけです.

f:id:matsuneko22:20171217173118j:plain
ドーナツではないなにか

ということでうんこを作っていきましょう.
まず,うんこの断面の片側だけを描きます.そもそもうんこは左右対称ではないのでこの時点でおかしいですが,気にしないで回転軸も指定します. f:id:matsuneko22:20171217173718j:plain

回転させてうんこの完成です.

f:id:matsuneko22:20171217173810j:plain
高身長の鏡餅

ヘリカルスリープでうんこを作る

ヘリカルスリープとは螺旋の物体を作るときに使用します.
f:id:matsuneko22:20171217174137j:plain

回転とは違い,回転しながら移動する方向・距離と回転軸からの距離を指定する必要があります. めんどくさそうですが,うんこ作る方法で一番簡単です.
では早速作っていきます. はい, f:id:matsuneko22:20171217175126j:plain

どーん f:id:matsuneko22:20171217175250j:plain

おわりに

適当にうんこ作って終わりですが,今回紹介したことだけでナット作ることが可能です.結構簡単に思えてきませんか?
この記事をきっかけに創作ライフを楽しんでいただければ嬉しいです.

明日はかがりくんです.全米が涙するブログを書くそうです.なんかデジャブ

*1:それと高機能すぎる

WSLでシリアル通信をする

windows10のFall creators updateからWSLからCOMポートのデバイスとシリアル通信ができるようになった。

Serial Support on the Windows Subsystem for Linux – Windows Subsystem for Linux

と言ってもあまり解説記事がないので試してみる。

WSLでのシリアル通信方法

WindowsのCOM Portは1~256まであるが、Linuxのシリアルデバイス/dev/ 以下のの任意の名前で管理されるため /dev/ttyS* の1~191でマッピングしているとのこと。
即ちデバイスのポートが COM1 の時、WSLでは /dev/ttyS1 になる。

用意するもの

  • Windows10 v1709が入ったPC
  • シリアル通信するデバイス

今回は研究室に落ちていたLPC1768を使用する。*1

f:id:matsuneko22:20171209144329j:plain
けんきゅうしつにいっぱいある(いっぱいはない

入っているプログラムの仕様は把握していないが、 Nothing worked... と配信されているのは確認している。
ちなみにwindowsにmbedのシリアルドライバーは既に導入済み。

接続ポートの確認

lpc1768がどのポートに接続しているか確認する。 デバイスマネージャーからポートの項目を参照。

f:id:matsuneko22:20171208185236p:plain

WSLの設定

WSLを起動し、接続する /dev/ttyS3のアクセス権限を変更する。

sudo chmod 666 /dev/ttyS3

シリアル通信の表示

次にscreenで /dev/ttyS3 に接続する。

screen /dev/ttyS3

するとターミナルにlpc1768から流れてくるメッセージが表示される。 f:id:matsuneko22:20171209143706j:plain

結構簡単だった。

*1:LPC1768以外でもできると思う。ラズパイとかのほうが手軽に試せるんじゃないかな

docker for windowsを使ってlaravelの開発環境を作る

about

インターンでlaravelを使った案件があって,とりあえず勉強にと自宅のwindowsに開発環境を作ることにした. しかしwindowsでのphpの開発環境構築は面倒くさい印象を持っていたので,dockerとlaradockでサクッと作る.

構築する環境

  • windows10 pro

dockerをいれる

windows用のdockerが,docker for windowsという名で公式から出ている.

docs.docker.com

これはhyper-vを利用しているので,windows10 homeは使用できない.その場合はVirtualBoxを使用するdocker Toolboxを使用してみるといいかも.

www.docker.com 今回はdocker for windowsを使用する.

手順

  1. インストーラーをダウンロード・実行する.
  2. インストール完了後ログアウトされるのでログインする.(hyper-vを無効化していた場合は再起動になるかもしれない)
  3. dockerの設定からshard drivesにCドライブをあてる.(どのドライブをあてるかはお好みで) f:id:matsuneko22:20170908003648j:plain

ネットワークの設定はインストーラがやってくれるので必要ない.

laradockの導入

laradockはlarabelの開発環境をdocker上に作成するためのツールである.

github.com これを使うとDBやwebサーバのコンテナを簡単にそろえることができる.

手順

プロジェクトのフォルダの作成

  1. shard drives内の任意の場所にプロジェクトのフォルダを作成する.
  2. そのフォルダ内にlaradockをダウンロードする. ディレクトリ構造はこんな感じになる.
project
|
|_laradock

laradockの設定ファイルの編集

laradockのフォルダ内にenv-exampleがあるので,それを.envとしてコピーする. .envでは使用するコンテナの設定パラメータがあり,書き換えることでコンテナを制御することができる. 今回はNginx,postgres,redisのコンテナを利用する*1. 編集箇所は以下の通り.

1.ホストIPの設定

windowsIPアドレスに書き換える

// DOCKER_HOST_IP=10.0.75.1
DOCKER_HOST_IP=169.254.80.80

2.xdebugのインストール設定

WORKSPACE_INSTALL_XDEBUG=true
PHP_FPM_INSTALL_XDEBUG=true

3.Nginxのポート設定

windowsがすでに使用しているポートと被らないように変更.

// NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTP_PORT=8080

コンテナの起動

コンテナの起動は一つのコマンドでできる.

  1. powershellを起動し,laradockのフォルダまで移動.
  2. docker up -d nginx postgres redisを実行*2

完了すると起動しているコンテナの一覧はこうなる.

PS C:\略\project\laradock> docker-compose ps
         Name                        Command               State                      Ports
-------------------------------------------------------------------------------------------
laradock_applications_1   /true                            Exit 0
laradock_nginx_1          nginx                            Up       0.0.0.0:443->443/tcp, 0
laradock_php-fpm_1        docker-php-entrypoint php-fpm    Up       9000/tcp
laradock_postgres_1       docker-entrypoint.sh postgres    Exit 1
laradock_redis_1          docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp
laradock_workspace_1      /sbin/my_init                    Up       0.0.0.0:2222->22/tcp

laravelのプロジェクトの作成

コンテナを作成したあと,コンテナ内に入りlaravelのプロジェクトを作成する. 前項に引き続きlaradockのディレクトリ内でdocker-compose exec workspace bashを実行. 無事には入れたら,composerを使って作成.

PS C:\略\project\laradock> docker-compose exec workspace bash
root@d9443b2831a8:/var/www# composer create-project --prefer-dist laravel/laravel my_app

作成したらexitでコンテナから抜ける. 次に.envファイルのAPPLICATIONのパスを設定.

// APPLICATION=../
APPLICATION=../my_app/

そしたら docker up -d nginx postgres redisをもう一回実行*3. 完了したらhttp://localhost:8080にアクセス. こんな画面が出てきたら成功. f:id:matsuneko22:20170908015438j:plain プロジェクトフォルダの最終的な構造はこんな感じ.

project
|
|_ laradock
|
|_ my_app

ホストのwindowsの方にもmy_appのフォルダが作成されており,これを編集すると逐次コンテナのほうに反映されるらしい.

おわりに

laradock入れてlaravelのプロジェクトを作成するのはそんなに難しくはなかったけど,xdebugの設定だけがよくわからなかった. xdebugを使いたい場合は以下の記事を参考にするといいかも.

qiita.com

rosの記事はいつかまた書きます. おわり

参考

Frequently asked questions (FAQ) | Docker Documentation

Laravel開発環境をLaradockで構築する | Tips Note by TAM

Laradock

*1:ほかにもapache2やmysqlもつかえるらしいので公式見てほしい

*2:コンテナのbuildと起動を同時にやってくれる

*3:またか・・・

全米が涙するブログ書く

www.adventar.org なにかの七面鳥火炙りカレンダー2016の17日目です.みなさん,どうお過ごしでしょうか?僕は冬眠するタイミングを逃して苦しい寒い季節を過ごしています.

さて,告知していた通り,全米が涙したブログを書きたいと思います.下記をご覧ください.











2016年最初で最後の渾身のギャグ

全米「fooooo!」
このギャグは研究室でボーとしていたら思いついた,渾身のギャグです.ご堪能ください.






「RealSenseはリアルな扇子!?そんなセンスで大丈夫?」

静まり返った全米「oh...」

以上です.ありがとうございました.皆さん良いお年をお過ごしください.
一年が過ぎて行くことに気がついた全米「oh my god!!(号泣)」

明日は005nortonさんです.gitのGUIツールについての記事だそうです,楽しみですね.