ただ建築が好きな走るエンジニア、

日系某メーカーを辞めて外資系に転職。資格、建築デザイン、転職と来て今はひたすらす走ってます。2020別大2:49:13。

今日は普通に帰宅ランできた。膝が痛くなった理由の考察、

2019-12-16 23:14:35 | ラン(~サブ50別大2020)
先週日曜ハーフ走のあとは左膝のお皿の右上が
痛かったんだけど、走れないと言う程ではなく、

火曜日に普通に帰宅ラン。

その後も特に変化はなかったんだけど、
金曜日になってなぜか左膝のお皿の左下が
痛くなり、昨日の昼頃まで歩くだけでも痛かった。

でも痛いのは膝に捻りが入るときだけで
前後動作だけでは痛くないことに気付き、

日曜日の晩にキロ6分で丁寧に12kmジョグ。
歩くより痛くないと言う不思議。

今日もまぁ、それなりに痛みは残っていたんだけど、
脚運びさえ間違えなければ走れちゃいそう。

ゆっくりでもいいやと思いつつ、
普通に辻堂から帰宅ランしていました。

今のところ何ともない。
明日の朝、さてどうなるか?

膝が痛くなった理由を少し考えたんだけど、
思い付くのは、

1. 湘南国際の疲れがまだ残っていた
2. japan boost3の着地衝撃
3. 木曜日に準備運動せずにジョグした

何となく気付いたんだけど、
実はZoom Fly系の厚底の方が
ブロネーションが抑えられていて膝にも優しいかも。

前は後ろ脚の跳ね上げ方向がやや外向きで、
妻曰く、ペンギンが走っている様だったと。

でも、この前の湘南国際のビデオを見ながら
走り方が変わったねと。

どうやら脚が外に向かわず
きれいに後ろに上がっていて
そのままスムーズに前に運べていると。

僕の脚は膝から下がやや内向きに曲がっているので、
底の薄いシューズだと着地でひねりが入るらしい。

まぁ、走り方の問題もあるんだろうけど、
厚底はその辺を上手く誤魔化してくれる。

それが脚を甘やかすと言う意見もあるみたいだけど、
僕の脚には素直に合っていると思ってもいいのかも知れない。

と言うことで、今晩はZoom Flyで走ってみました。
確かに普通に走れた。

(12/16)
MM 11C, TJD 11C
Nike Zoom Fly(851km)
[J] 1.9km 6'03/km
[M]14.1km/59:00 4'10/km 162bpm 195spm 123cm
4'24-4'14-
4'07-4'05-4'12-4'09-3'59(20'32/5km)
4'06-4'03-4'17-4'10-3'58(20'34/5km)
4'30-4'10-0'36(4'17)
VO2max = 58
Total:152km/month



Comment

走れないのでラズパイで遊ぶ、

2019-12-16 00:33:35 | 電気


走れないので家に引きこもり。

埃を被ったラズパイを取り出して
Pythonのコードを試してみる。

動体検知とメール送信を組み合わせて
監視カメラ。

面白いけど気味が悪いと家族に言われました。
昔、FMワイヤレスマイクを作った時と根は同じ?

長男だけ話に付き合ってくれました。
ただ、動くものの方がいいみたいです。

と言いつつ、やっぱり走りたくなって
夕食の後にキロ6分で12kmほどジョギングしてみました。

ジョグぐらいは大丈夫な感じ。
明日の体の反応を見て徐々に。

最後に備忘録のソースコードを少し。


import os
import cv2
import os.path
import datetime
import smtplib
from email import Encoders
from email.Utils import formatdate
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
 
#Account info
ADDRESS = "xxxx@xxxx.xx"
PASSWARD = "yyyyyyyy"
 
#SMTP server
SMTP = "smtp.xxxx.xx"
PORT = 587
 
def create_message(subject, body, mime=None, attach_file=None):

    msg = MIMEMultipart()
    msg["From"] = ADDRESS
    msg["To"] = ADDRESS
    msg["Date"] = formatdate()
    msg["Subject"] = subject
    body = MIMEText(body)
    msg.attach(body)
 
    if mime != None and attach_file != None:
        attachment = MIMEBase(mime['type'],mime['subtype'])
        file = open(attach_file['path'])
        attachment.set_payload(file.read())
        file.close()
        Encoders.encode_base64(attachment)
        msg.attach(attachment)
        attachment.add_header("Content-Disposition","attachment", filename=attach_file['name'])
 
    return msg
 
def send(msg):
    smtpobj = smtplib.SMTP(SMTP, PORT)
    smtpobj.login(ADDRESS, PASSWARD)
    smtpobj.sendmail(ADDRESS, ADDRESS, msg.as_string())
    smtpobj.close()
 
def mosaic(src):
    dst = cv2.resize(src, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_NEAREST)
    return cv2.resize(dst, src.shape[:2][::-1], interpolation=cv2.INTER_NEAREST)
 
def difference(a, b):
    if(a < b):
        return b - a
    return a - b
 
def detect(frame):
    print('Motion Detected')
    cv2.imwrite('capture.jpg', frame)
    subject = "Motion Detected!!"
    body = "Motion Detected."
    mime={'type':'text', 'subtype':'comma-separated-values'}
    attach_file={'name':'capture.jpg', 'path':'./capture.jpg'}
    msg = create_message(subject, body, mime, attach_file)
    send(msg)
 
def cnt(src, keep):
    os.system('clear')
    count = 0
    for y in range(0, 24):
        for x in range(0, 32):
            target = src[y*10][x*10]    
            diff = difference(keep[y][x],target)
            if diff > 50:
                count += 1
            keep[y][x] = target
    return count
 
cap = cv2.VideoCapture(0)
cap.set(3,320) # WIDTH
cap.set(4,240) # HEIGHT
cap.set(5,30) # FPS
keep = [[0] * 32 for i in range(24)]
busy = True
count2 = 1900
while(True):
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    mos = mosaic(gray)
    count = cnt(gray, keep)
    print('{0} {1}'.format(count,busy))
    if busy and count==0:
        busy = False
    if busy == False and count > 5:
        if count2 > 1800:
            busy = True
            detect(frame)
            count2 = 0
        else:
            count2 += 1
cap.release()
cv2.destroyAllWindows()


Comment