sttsのソースコードMemoブログ

色々やってみた結果のMemo

バッテリー稼働のM5StackをDeep sleepする方法

結論

何もしていない状態のM5Stackではバッテリー稼働で32秒以上Deep Sleepすると復帰できませんでした。Deep Sleepすると低負荷になりすぎ省電力のため電源が切れてしまいます。

USBから給電している場合は復帰可能でした。

*1

しかし、新しいM5Stack Grayでは電源制御にIP5306_i2Cが使われており、I2Cで動作を変更することができました。

*2

方法

IP5306_i2Cのデータシートは↓からリンクされていました。

http://forum.m5stack.com/topic/62/ip5306-automatic-standby

 

漢字の雰囲気とGoogle翻訳で、SYS_CTL0の1bit目、"BOOST输出常开功能"がそれらしかったので"1:enable"すると32秒以上Deep Sleepできました。

BOOST=????

输出=出力

常开=常に開く

功能=機能

 

↓でSYS_CTL0の値を読み込むと10進で53、2進数だと00110101でした。

Wire.beginTransmission(0x75);
Wire.write(0x00);
if (Wire.endTransmission(false) == 0
   && Wire.requestFrom(0x75, 1)) {
    int ret = Wire.read();
     Serial.printf("ret: %ld\r\n", ret);
}

 

1bit目を1に変更して00110111(16進で0x37)を↓で書き込んだら32秒以上Deep Sleepできました。

Wire.beginTransmission(0x75);
Wire.write(0x00);
Wire.write(0x37);
esp_deep_sleep(1000000LL * 600);

python excelファイル(xlsx)を操作するopenpyxlの使い方メモ

インストールは下記

$ pip install --user openpyxl

下記で新しいexcelファイルを作る

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "hoge" wb.save("test.xlsx")

B2セルに枠線を付け、背景色を付け、C列と3行目の幅を変える例は下記

from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font

wb = Workbook()
ws = wb.active

ws["B2"] = "foo"

style=Side(border_style="thin", color="000000")
border = Border(top=style, left=style, right=style, bottom=style)
ws["B2"].border=border

fill=PatternFill("solid", fgColor="DDDDDD")
ws["B2"].fill=fill

ws.column_dimensions["C"].width = 20
ws.row_dimensions[3].height = 40

wb.save("test.xlsx")

調べていると作ろうとしたのものがもうあった。画像ファイルを読み込んでexcelファイルにするスクリプト

http://labs.timedia.co.jp/2017/07/pythonopenpypxexcel.html

ConoHaの友達紹介URL

ConoHaの友達紹介URL

VPSをConoHaに移行しました。

ついでに友達に紹介されると1000円のクーポンが貰えるらしいので、紹介される友達のいない人のために紹介URLを張っておきます。↓ぜひここから登録してください。清楚かわいいですよ。

https://www.conoha.jp/referral/?token=WAu27ixWqbUnM_te06CNhK5WDpDf.Yathr.cSiTppwjVLRR8T7g-R92

 

(紹介する側は、紹介した友達が2000円使うとクーポンが貰えるらしい。。。)

紹介する友達がいない。。。

 

 DMM mobileの友達紹介URL

さらについでにDMM mobileは、紹介した、紹介された両方に通信量1GBプレゼントだそうです。↓

https://mvno.dmm.com/-/i/?i=MSz6gz8

CentOS6でGDMとGnomeの電源ボタンを無効化する

CentOSでGDMとGnomeの電源ボタンを無効化する方法

かなりググって見つけたCentOS6では上手くいったけどCentOS7では上手くいかない。。。

/var/lib/polkit-1/localauthority/10-vendor.d/20-shutdown-restart.pklaファイルを下記内容で作成

[Disable stop/restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.stop-multiple-users;org.freedesktop.consolekit.system.restart;org.freedesktop.consolekit.system.restart-multiple-users
ResultActive=no
ResultAny=no

/var/lib/polkit-1/localauthority/10-vendor.d/20-suspend-hibernate.pkla ファイルを下記内容で作成

[Disable suspend]
Identity=unix-group:*
Action=org.freedesktop.devicekit.power.suspend;org.freedesktop.devicekit.power.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no

次を実行

# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory -t bool -s /apps/gdm/simple-greeter/disable_restart_buttons true
# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory -s /apps/gnome_settings_daemon/keybindings/power -t string ""

kml,kmz,gpxファイルからワット数を計算サイトを作った

自転車で走行中に記録したGPS情報(スマホGPSロガー)のKML/GPXファイルからワット数を計算するサイトを作りました。

[ロードバイク]GPSからワット数計算

仕組み

転がり抵抗、空気抵抗のワット数計算

GPSの緯度経度と経過時間から速度を求め、転がり抵抗と空気抵抗のワット数を計算します。
転がり抵抗と空気抵抗は、風速/路面状況等の情報が無いため適当な計算です。

登板抵抗のワット数計算

GPSの標高と経過時間から登坂抵抗のワット数を計算します。 登板抵抗はGPSと体重からで正確に計算できます。
登板抵抗が正確なため上り坂のGPSデータを推奨します。

加速、減速に費やしたワット数

計算していません。

TODO:いつか実装したい機能

さくらVPSが安かったから借りてみた

ひとまず初期設定ガイド↓を参考にiptables等の設定をした。

https://help.sakura.ad.jp/app/answers/detail/a_id/2429

あとは必要そうな物をインストール↓

# yum install httpd
# yum install php
# yum install php-pdo
# vi /etc/sysconfig/i18n
 LANG="ja_JP.UTF-8" ←書き換え