エンジニアパパ初めての育児 - 生後1か月までに買ったもの(2020年春版)

はじめに

4月に我が家に家族が増え、1か月とちょっと育児をしてきましたが、ここまでの間で買ったものについてまとめます。

自分の備忘録と、これから育児を始める方の役に立てば幸いです。

家族クレジットカード

いきなり買い物ではないものですが、クレジットカードの「家族カード」を申し込みました。我が家は共働きなので、共用物を買ったときは折半しています。これまではレシートなどを頼りに月末に合計して、折半していたのですが、育児が始まるにあたり、この手間を省略するために家族カードを使うようにしました。

これにより、ほとんどの買い物の明細が1か所にまとまり月末の合計作業が楽になりました。

リサイクルショップ・フリマサービスの活用

ヤフオクやメルカリなどのフリマサービスを活用して、中古で構わないものを購入しました。

  • ベビーベッド
  • ベビージム
  • 抱っこ紐
  • バウンサー

抱っこ紐はベビージョルンの古い型のもの(シナジー)バウンサーもベビージョルンの古い型のものを買いました。

www.g-mark.org

(↑ 2008年・・結構古いが特に問題なく使えてます)

百円ショップの活用

意外と100均で揃うものもありました

  • 風呂の温度計(ほとんど使わなかった)
  • ミルク用の温度計(ほとんど使わなかった)
  • 哺乳瓶用ブラシ(ただし哺乳瓶の乳首用のブラシは簡単に壊れてしまい、別のものを購入した)
  • 赤ちゃん用爪切りはさみ

服周り

正直赤ちゃんの服は全然わからなかったので、ひとまず「20点セット」みたいなのを買いました。

加えて短肌着、スタイ(よだれかけ)、ガーゼハンカチを買い増しました。結果、短肌着5枚、スタイ5枚、ガーゼのハンカチ10枚くらいを用意しました。

スタイはまだ使っていませんが、徐々によだれが出てくるようになってくるでしょう。

ロンパース、コンビ肌着、ドレスオールなどいろいろセットに入っていましたが、今のところ「肌着」と「それ以外」くらいの区別で使い分けています。

ということで、今のところは、20点セットよりも必要な服を必要な枚数買ったほうが良かったかな、という感じです。

 

「おくるみ」もこれから暑くなってくると寝るときに使えるかなと思い薄手のものを2枚買いました。春の間はバスタオルを「おくるみ」として利用していましたが、これからは暑くなってくるので薄手がよさそうです。

 

赤ちゃん用の服は種類が多くScrapboxに自分でメモを書いて理解を深めました(が、まだ肌着とそれ以外程度の知識で何とかなっています)

f:id:inajob:20200529175020p:plain

体温計

体温計は赤ちゃん用のさっと測れるものということで鉄板のオムロンの体温計にしました。

オムロン電子体温計 MC-682

オムロン電子体温計 MC-682

  • メディア: ヘルスケア&ケア用品
 

 (なぜか今すごく値上がりしています・・)

15秒程度で測れるので割と簡単です。おでこで測れる体温計や、耳で測れる体温計もあるようですが、値段が高かったりエラーが多いなどのレビューを見て、普通に脇で測る体温計にしました。

(MC-682は先端が曲がるのですが、今のところ そのありがたさはよくわかっていません)

寝具

前述したようにベビーベッドはリサイクルショップで購入しました。

ベビー布団は8点セットを購入し、カバー系は買い増しました。

  • 掛け布団
  • 敷き布団
  • 掛け布団カバー(買い増して2枚)
  • フィッティングシーツ(敷き布団カバー、買い増して2枚)
  • 枕カバー
  • 防水シーツ
  • キルトパッド(買い増して2枚)

寝具も値段はピンキリでした。洗濯ができるという一点のみにこだわって、安いものを買いました。

敷き布団の上にかけるものがたくさんあって驚きました(防水シーツの上に汗取りパッドを重ねその上にシーツ)

これから暑くなってくるのでタオルケットも買いました。

授乳用品

哺乳瓶は選択肢が多く、何を買えばよいか悩みました。結局エイヤでプラスチック+クロスカットの下記を買いました。

ロスカットの乳首ということで、ワンサイズで離乳期まで行けるということで、これを選びました。

ただ、生後数週間は飲む量が少ないことがあり、丸穴の下記も買いましたが、あまり使っていません。人によってはクロスカットだと吸う力が弱くて飲めないということもあるようです。

 哺乳瓶の殺菌は電子レンジで殺菌できる下記を買いました。

 通常3本の哺乳瓶を殺菌できるようですが、スリム型の哺乳瓶なら無理やり4本殺菌できます。4本あれば1晩分あるので、夜中に殺菌をする羽目にならず助かっています。

 

前述したように哺乳瓶のブラシは百均で買いましたが、乳首用のブラシがすぐに壊れてしまったので、下記を買いました。こっちは丈夫で、まだまだ使えそうです。

 粉ミルクも種類が多いのですが、エイヤで下記を利用しています。

和光堂 レーベンスミルク はいはい810g×4缶

和光堂 レーベンスミルク はいはい810g×4缶

  • 発売日: 2017/05/11
  • メディア: 食品&飲料
 

 お湯はティファールで沸かして入れてます(もとからうちにあった)。

 

沐浴用品

ベビーバスは下記を買いました。おしりを固定するでっぱりがあり、ここに座らせてあげると、沐浴時にあまり泣かなくて助かっています。(泣くときは泣きます)

 ボディソープは下記を買いましたが、デリケートな顔周りはお湯で流すのみとしています。

wowma.jp

ワセリンは下記を買っていますが、まだあまり活躍していません。

ピジョン ワセリン 60g

ピジョン ワセリン 60g

  • 発売日: 2015/02/14
  • メディア: ヘルスケア&ケア用品
 

最近髪の毛が伸びてきて風呂上がりに落ち武者みたいになってきたので、ブラシを買いました。

wowma.jp

おむつ周り

おむつは産院でもらった下記がいい感じだったので継続

 生後しばらくは新生児用よりさらに小さな「3S」というのを使いました。

グーン テープ 新生児用小さめ (1.8~3kg) 36枚 まっさらさら通気

グーン テープ 新生児用小さめ (1.8~3kg) 36枚 まっさらさら通気

  • 発売日: 2016/07/20
  • メディア: ヘルスケア&ケア用品
 

 おしりふきは下記

ムーニー おしりふき やわらか素材 純水99% 詰替 1920枚(80枚×24)【ケース品】
 

 一度だけ本体を買って後は詰め替えて運用しています。

 おむつごみ

臭うおむつは下記で個別に包んで捨てています。先日200枚使い切りました(祝200うんち!)。

 室内のごみ箱はこちら、内側にパッキンがあるのでふたを閉めていれば比較的匂いは漏れない。

ゴミの日までに結構たまってしまうのでベランダ用に下記を購入。こちらはパッキンなどはないので少々臭いますが屋外なら問題なし。90Lはやや大きすぎな感もありますが安心感があります。

 リビング周り

 今後のことも考えて6畳分くらいのマットを購入。1cm厚を買ったが思ったより硬いので2cmでもよかったかも。

 親が座るための座椅子も購入、赤ちゃんが指を詰めそうなリクライニングのレバーが無い下記。

その他

 夜番した日の昼に眠る際に、熟睡できるように購入。かなり快眠できておススメです。

サイレンシア レギュラー バリューパック 10ペア入
 

空気清浄機は花粉症対策で買ったのですが、部屋に充満するうんちのにおいを除去する際も役に立っています。

娘が夜寝る部屋の照明ですが、天井にある豆電球だと明るすぎるし、目に直接光が入る気がしたので、下記を使っています。もともと玄関にセンサーライトとして設置していたのですが、普通にランタンとして使っています。夜中泣き出したら、床に立ててあるこれのスイッチをそっと点けて対応しています。 倒れやすい形状なので、もう少しそれ用のランタンみたいな電灯を買っても良いかなと思っています。

 

 

 

自分流買い物管理術

 育児に必要なものは育児本を見れば大体わかるので、ひとまずそれらをScrapboxに記載して、それがどういうものなのかと、価格帯、要不要をまとめて それを基に購入しました。購入価格などもまとめておくとあとで買い足す時などにも便利です。

f:id:inajob:20200529180631p:plain

まとめ

実際に育児を始めるにあたりどんなものを購入したかを記載してみました。今生後1か月くらいなのでこれ以降に必要なものはこれから買いそろえていこうと思います。

おススメのグッズがあればぜひ教えてください。

エンジニアパパの育休1か月目のスケジュール

はじめに

「育休」の間、どのような生活スタイルになるのか、全く想像がつきませんでした。

きっと、世の中にはかつての自分のような人は多くいるだろうという思いと、後になってこの時期のことを思い出すきっかけにでもなればと思い、育休1か月目(生後1か月目)までの育休中の自分の生活をまとめてみます。

 

育休開始までの話はこちら↓

inajob.hatenablog.jp

前提

  • 東京近郊住み
  • 夫・妻+娘の3人暮らし
  • 親戚には頼らないスタイル

大まかな1日のスケジュール

f:id:inajob:20200515200942p:plain

この図に書いたのがすべてですが・・少し細かく書いていきます。

育児で大変なのが「夜」です。新生児は時間の感覚もなく、また胃も小さいので、2~4時間ごとに目覚めて、ミルクを要求するために泣きます。

親はそれに合わせて授乳おむつ替えをする必要があるため、夜ぐっすり眠ることが難しいです。

我が家では夫である自分がこの「夜」を担当することにしました。

「夜」番は睡眠時間が十分に確保できないので、朝方に妻にバトンタッチして、午前中は睡眠します。

「夜」番は楽な日は結構楽で、ミルクを与えるとストンと寝てくれる日もありますが、大変な日は本当に大変で、ミルクを与えても3時間起きたままでずっとぐずっていることもあります。

前述したように「朝」は妻の時間です。6時ごろに起き、ゴミ捨てや、「朝散歩」(妻は体調を整えるためにこういう習慣を実践している)、洗濯、哺乳瓶の消毒などをしたのちに「夜」番である私とバトンタッチします。

「朝」も「夜」と同様、楽な時は楽なようですが、大変な日も多いようです。妻は娘の横で一緒に寝たり、娘が眠っている場合は自分の作業をしたりしているようです。

昼前になると「夜」番の私も起きてきて、お昼ご飯を準備し始めます(大体朝7時~11時くらいの間寝ています)。

自分はここで少しだけPCに触れたりする時間を確保したりしています。

昼は娘が寝ていれば一緒に食べることができますが、大抵は起きているので順番に食べることになります。

昼1

昼を食べた後、妻は昼寝に入ります。出産後の妻はとても疲れやすくなっており、いつもより多めに睡眠が必要なようです。その間は私が娘の面倒を見ます。

折角の昼間なので、起きているようなら話しかけたり、たくさん抱っこしたりすることを心掛けています。娘が寝ている場合はここは自由時間です。夜ごはんに向けて作り置きのおかずを作ったりすることもあります。

昼2

妻が起きてきます。必要な買い物などがあればこのタイミングで行きます。何の予定無く、娘も寝ている場合はここは自由時間です。

また夜のスケジュールがたてこまないように、16時頃に風呂に入ります。風呂の前には運動不足解消のためにWiiFitをしたりすることもあります(1年継続!自宅ダンスダンスレボリューションからの1000円追加でWii Fitへの挑戦 - inajob's blog)。

17時頃に娘を沐浴します。その後、夜ごはんの準備をします。娘がいい感じに寝ついている場合は妻もこのタイミングで入浴します。(が、最近は元気で眠る様子が無いので、なかなかそうはいかない。)

沐浴を上がると赤ちゃんにとっては「夜」です。部屋を暗くしてベッドでなるべく過ごすようにします。また「夜」番に向けて哺乳瓶を殺菌したり用意をします。なぜか大体この時間は娘も良く起きており、夫婦どちらかは娘をあやしています。あやしていないもう片方の親はすこし自由時間が取れます。

そして、21時頃を目安に「夜」番の時間となり、妻は就寝し、「夜」番の自分も娘と同室で眠り始めます(すぐに起こされるが・・)

まとめ

以上ざっくりと、新生児の子守をする育休パパ(+ママ)の1日の流れをまとめてみました。

大きなところだと「夜」の子守をどのように行うかがカギとなるように感じました。また生後1か月になってくるとどんどん起きていられる時間が増え、結果として親の自由時間はどんどん削られていきます。

まぁ、せっかく取得した育休です。仕事をする必要はないので、起きている娘は思い切りかわいがっていこうと思います。

 

エンジニアパパの育休序章

はじめに

いつもは技術ネタなどが多いこのブログですが、珍しくプライベートな話を少し・・

我が家に新しい家族が増えた話です。

育休

両親に頼らず育児する環境にあったので、育休取得を前提に会社と調整していました。

妻はつわりがひどく休職、からの産前産後休業(からの育休)ということでしばらくは完全2オペ体制で育児に臨みます。

生まれる前(妊娠初期)

妻はつわりが長かったので、自分も妊娠の比較的初期のころから生活の変化を意識することができました。

仕事はなるべく定時に切り上げ、家事に積極的に取り組み妻の負担を減らすべく行動しました。また勉強会などの参加の頻度も減らし、参加するときは妻と認識を合わせ、家事もあらかじめする、など「調整」をしっかりすることを心掛けました。

 

ドラム型洗濯機、ロボット掃除機などはすでに我が家は導入済みだったので、そもそもの家事が少ないという点は良かったです。

 

よく「妻が先に母親になり、夫との自覚の違いからトラブルになる」という事例を耳にしたので、自分も妊娠していないながら、「父親」の自覚を持てるように、まずは本を読むことから始めました。

 

極端な知識に偏りすぎてしまうのも違うのだろうと思いつつ、複数の本を読むことで、なるべくニュートラルに情報を摂取することを心掛けました。また、可能な限り夫婦で同じ情報を共有しておきたかったので、互いが読んだ本を交換して読み合いました。

幸い図書館には妊娠・出産周りの本がたくさんそろっており、大変助けられました。その中で、「これは我が家に置いておきたい」というものについては購入しました。

「つわり」については、食べられるものが少なくなり辛そうでした。それに合わせて食事を用意することに注力しました、理系な自分は「何か法則があるのでは?」と考えがちでしたが、結局突発的に「今食べられるもの!」が降ってくるような状況のようで、素直に要求に従って料理を用意しました。

生まれる前(妊娠中期)

つわりがひと段落し始めたころ、夫婦ともに育児への不安が募ってきました。

「無知が恐怖を呼ぶのでは?」ということでこれまたいくつかの本を読んだり、既に子育てを始めている友人宅にお邪魔したりすることで、過度に不安がらないように工夫しました。育休を取得する段取りを始め、それに向けても本を読みました。

地域のパパママ教室的なものにも参加し、「おもり」を使った妊婦体験や、人形を使った沐浴体験もしました。

同じ回に参加した貴重なパパ・ママ友の方とはLINEを交換したりしました。

妊娠後期になると、今度はいわゆる「マイナートラブル」というもので妻が苦しみ始めました。頻繁にこむら返りになったり、骨盤の痛みを訴えたりしていました。

寝る前のマッサージを手伝ったり、率先して物を運んだりと、できるサポートをしていました。

生まれる前(妊娠後期)

そろそろ出産が近づいてくる時期になると、産褥期産後鬱など、産後のトラブルについて心配が募ってきました、ここでも本で事前に知識を身につけました。

産褥記 産んだらなんとかなりませんから!

産褥記 産んだらなんとかなりませんから!

 
ふたりは同時に親になる: 産後の「ずれ」の処方箋
 

 また、これにより出産後の生活がイメージできるようになり、妻がまともに活動できない期間が1か月ほどあることを想定し、宅配弁当や、買い溜めのためのスーパーへ行くための車運転の練習などを始めました。(ちょうど家の近くにTimesのシェアカーがあったので、Timesの会員になりました)

また、赤ちゃんの睡眠のリズムについてもいくつか本を読みました。

赤ちゃんにもママにも優しい安眠ガイド

赤ちゃんにもママにも優しい安眠ガイド

  • 作者:清水 悦子
  • 発売日: 2011/11/23
  • メディア: 単行本(ソフトカバー)
 

 出産後すぐに必要な育児用品についても買いそろえました。特に新品にこだわりはなかったので、大物についてはリサイクルショップメルカリで調達しました。

出産

無痛分娩を選択したため、出産は計画分娩でした。そのため私も出産予定のその日から産院に赴き、その過程に立ち会うことができました。ただし、コロナの影響で出産当日のみ面会可能ということで、出産日以降の数日の入院期間は面会できず寂しい思いをしました。

 

出産は妻がとても頑張ってくれて、母子ともに健康な立派なものとなりました。

ひとまずここでひと段落ですが、ここからが育休のスタートです。

育休1週目

育児用品はやはり用意しておいたものでは不十分で、次々と必要なものが判明してきます。産婦人科で妻が「必要だ」と思ったものについて、リストで送ってきてくれたので、早速練習した車の運転を活用して、近所の西松屋に買い物に行ったりしました。

 

病院から帰った妻から、ささっと最低限の赤ちゃんの世話についてレクチャーを受け、自分もできるように教わりました。(おむつの替え方、沐浴の仕方、抱っこの仕方など)

出産直後の妻はとても疲れやすくなっているようで、想定していた通り、家事の大半を自分がこなすことになりました。また、夜に赤ちゃんと一緒に寝て、泣き出したときにミルクをやるという役割(夜番と呼んでいる)も自分が担当することにしました(その分は午前中寝ています)。

 

家事については、掃除周りは妊娠中も自分が大半を担当するようにしていたので、いつも通りという感じ、大きく変わったのが食事の用意です。

育休ということで1日中家にいるわけで、2人分朝・昼・夜の食事を用意する必要があります。せっかくのこの機会、”料理を楽しもう”と思い、この1週間は「作り置き」をいろいろ試しています。

ただ自分は「夜番」をしているため、午前中は寝不足分を補うために昼頃まで寝ており、昼ごはんの準備ができるかどうか怪しいということで、そこは冷凍食品・冷凍弁当・作り置きをうまく利用して手抜きをしています。

 

ここまでのまとめ

1週間もこういう生活をしていると、隙間時間にこうやってブログを書いたり、プログラムを書いたりと、少しずつ自分の時間を確保できるようになってきましたが、やはり赤ちゃんが泣きだすと、もちろんそちらが優先なので、今までのようにガッと「集中」して作業するというのはできなくなっています。

まぁせっかくの機会なので、自分の子供と触れ合える時は、じっくりとかわいがっていこうと思います。そのための育休です!

 

タイトルにもある通り、ここまではまだ「序章」にすぎません。これからも気合を入れつつ、楽しい育児をしていこうと思います。

おまけ・IT夫婦の生活管理術

以前、家事スプレッドシートがバズったことがありますが、我が家は夫婦ともにIT系で、生活のいろいろなところでITを活用しようとしています。

nlab.itmedia.co.jp

はてなブログをご覧の皆様も、IT系の方が多いと思うので、ここで少し我が家での生活管理方法を紹介します。(そして、ほかの方のこういうTipsもぜひ教えてほしいです)

運動習慣はWiiFit

育児をしていると、どうしても家の中にずっといることになってしまい、運動不足が心配です。私は、ここ1年くらいWiiダンスダンスレボリューションWiiFitを使って、屋内でも運動する習慣を実践していました。育児を始めたことで生活リズムが変わり「毎日」実施することがまだできていませんが、この習慣は続けていきたいです。

ちなみに、両方試しましたが体力を維持するためには「ダンスダンスレボリューション」よりWiiFit」のほうがおすすめです。

inajob.hatenablog.jp

inajob.hatenablog.jp

 

1か月単位の予定はTrello

夫婦でTrelloのプロジェクトを作って運用しています。

trello.com

カラムに「2020/04」「2020/04 done」などを作り、終わったタスクをdoneに順次移行していきます。月末に残っているタスクを棚卸し、来月のカラムに移動させ、その月のdoneカラムはアーカイブ化します。

f:id:inajob:20200429234006p:plain

調査系はScrapboxにぶち込む

あれ、これってどうなんだっけ?と思ったことは2行とかでも良いので、Scrapboxにページを作って残しました。

scrapbox.io

特に育児にまつわる買い物は、知らないものが多く、そもそもどういう種類があるのか?価格帯は?といったことを調査し、結果をScrapboxにまとめました。

こうしておくとあとから夫婦で確認でき、何度も同じことを調べる手間が省けました。

また「あれ調べといて?」「OK?」みたいなやり取りから生まれたタスクは、ともすれば聞くだけ聞いて流されているのでは?と思うようなこともあったので、調べた結果を簡単で良いのでまとめるようにしました。

主に自分の備忘録としてですが、役立っています。

f:id:inajob:20200429234255p:plain

日付に関連する事項はTimeTree

日付にかかわる事項はTimeTreeで共有しています。自分だけの予定もカテゴリを変更して追加し、「飲み会で遅い」みたいな内容も共有しています。

play.google.com

また、この内容をリビングから、さっと確認できるように「おうちサイネージ」を作りました。

inajob.hatenablog.jp

育児の記録は「ぴよログ」

いつ授乳した?いつおむつを取り替えた?という内容を夫婦で共有するためにぴよログを使っています。「夜番」交代時に細かく夜の様子を説明することなくバトンタッチすることができるので大変有用です。

各イベントに「メモ」が残せるので、その時感じた発見や異常も共有することができます。

piyolog.mystrikingly.com

 

おまけのまとめ

まぁ、正直なところ「便利」で使っているツールが半分。自分の「趣味」で使っているツールが半分といったところですが、これをご覧の皆様の生活の役に立てば幸いです。

 

電子ペーパー手書きタブレット BOOX Nova Pro のススメ

手書き端末の夢

私は「手書き端末」が好きで、古くはPalm(VisorCLIEも含む)に始まり、シャープの電子ノートや、ペン付きのWindows端末、enchantMOONなど様々な手書きデバイスを試してきました。

 

(enchangMOONまだ売ってる!)

enchantMOON 16GB Standard Edition

enchantMOON 16GB Standard Edition

  • メディア: エレクトロニクス
 

 シャープの電子ノートも昔は使っていました。

シャープ 電子ノート ブラック系 WG-S50

シャープ 電子ノート ブラック系 WG-S50

  • 発売日: 2017/10/13
  • メディア: オフィス用品
 

 

今使っている電子ノート

古くは「NoteSlate」なんていう「出す出す詐欺」の製品がインターネットを騒がせたこともあったので眉唾ものかと思っていたのですが、最近は電子ペーパー(e-ink)」を使った電子ノートが結構出てきています。

 

私が使っているのはBOOX Nova Proです。

特徴を少し書くと・・ 

  • 7.8インチ 1872×1404
  • フロントライト
  • Wacomのペンと指のデュアルタッチ
  • Android
  • バッテリーが長持ち
  • 技適取得済み

といったスペックです。

BOOX社の電子ノートは他にも10インチのものがありますが、私はこの7.8インチの大きさ感が気に入っています。

また技適を取得済み」というのは日本で使う上では必須の項目です。(しかしほかの多くの電子ノートはこの要件を満たしていません)

 

一方残念ポイントもたくさんあります。

  • Androidなのでアプリをインストールできるが、画面更新が遅すぎなので利用できるアプリは限られる。(私は実質ノートアプリしか使っていないです)
  • ノートアプリで線を描くのは快適だが、ページ送りや一覧ページへの遷移がもっさりしている
  • ファームウェアは積極的にアップデートされているが、不具合が多い。

ということで、かなり「使う人を選ぶ」製品です。

電子工作プロトタイピングに便利

ちょっと私の活用事例を紹介します。

電子工作をしていると、ちょっと配線をメモして、そのメモ通りにはんだ付けし、プロトタイプを作るということをよく行いますが、このメモをテキトーなメモ用紙などにすると、後でなくしてしまって、回路がどうなっているのかわからなくなってしまいます。

このような、手軽に書き込めて、後からも参照でき、かつ電子工作中にいつでも見ることができる、という要件に電子ノートはぴったりです。

 

電子ペーパー電力を消費せずに表示することができるので、電子工作の間ずっと出しておきたい回路図などを表示するのにぴったりです。

f:id:inajob:20200405123300p:plain

f:id:inajob:20200405122032p:plain

レーザーカットの工程管理と試行錯誤に便利

また、レーザーカッターで作業をするときに、どの部品まで作業が終わったかを把握するために書いたメモも役立ちました。

ノートサイズなので、工作スペースで作業するときもかさばらず、さっと確認と編集ができるのが素晴らしいです。

f:id:inajob:20200405122353p:plain

イデア出しにも便利

手書きは「アイデアだし」にも有効です。キーボードで文字を打つよりも柔軟にアイデアを描く事ができます。特にハードウェアやユーザインターフェースの設計をする際には、自由に描くことができるということは非常に重要だと感じます。

f:id:inajob:20200405122544p:plain

f:id:inajob:20200405123726p:plain

このように電子ノートは、キーボードよりも手軽に編集ができ、紙よりも安全に保存ができるため、「清書未満のメモ」を書くのに非常に向いていると感じます。

 

電子書籍リーダーとしても使える

まぁ、もともとは電子ペーパー端末は電子書籍リーダーとして出てきたものなので、当然電子書籍リーダーとしても利用できます。

任意のPDFを表示できるので、後で読みたいな と思ったちょっと重ためのブログ記事をPDF化して入れておいたりすることもできます。

 

ペンがあるので、気になった個所にメモを描いたりした線を引いたりと、まぁできそうなことはたいていできます。

と、ここまで書きましたが、私はあまり電子書籍を読まないので、この機能は実際のところはあまり活用していません。

f:id:inajob:20200405122840p:plain

まとめ

趣味の電子工作をする人にとって手書きできる電子ノートがいかに便利かということを紹介しました。

電子ノートはまだまだ発展途中のデバイスで、正直なところ「使う人を選ぶ製品」です。しかし、どういうところで使えて、どういう欠点があるかを把握したうえで利用すれば、電子工作のお供として非常に便利なツールです。

 

私が使っているBOOXは不便なこともありますが技適取得済み」WACOMペン」電池が非常に長持ち(私の作業量だと2週間くらいは充電なしで使える間隔)」という3点が非常に気に入っています。

家電量販店などでもデモ機を展示していたりもするようなので、気になった人は探してみてはどうでしょうか? 

(ほかの電子ノートを使っている人は、ぜひ使い心地を教えてほしいです!)

 

Arduinoを内部発振器で動かす時の誤差とその補正について

内部発振器を使ったArduino

Arduinoの回路はAtmega328に16MHzの水晶発振子を接続したものが一般的です。しかし、Atmega328は内部発振器も持っています。

f:id:inajob:20200315214525p:plain

独自でArduino互換回路を作る際に、内蔵発振器を使うと、部品点数を減らすことができ、さらに水晶発振子を接続するための2本のピンをGPIOとして使うことができるようになります。

ここまでだと良いことづくしなのですが、内蔵発振器は8MHzで16MHzの水晶発振子と比べると遅いです。また、水晶発振子ではなく、RC発振で実装されているため、精度は水晶発振子に比べるとかなり劣ります。その後差は±10%とされていますが、動作させる電圧や、気温でも大きく変化します。この誤差のために、内部発振器で動作するArduinoは115200bpsでのシリアル通信は非推奨となっています。

 

これらのメリット・デメリットを踏まえたうえで、内部発振器を使うかどうかを判断する必要があります。

内部発振器の誤差による問題

内部発振器の誤差があると様々な問題が生じます。そのうちで最も大きなものは「外部機器との同期がずれる」というものがあります。特にシリアル通信でこの問題が起きるとArduinoとしての書き込みができなくなってしまい、使い物になりません。

 

私が、今作っているHACHIBAR(https://inajob.github.io/hachibar/)というゲーム機は内部発振器を使ったArduinoを利用しているのですが、まさにこの問題が起きました。ほとんどの個体は正しくArduinoとしてプログラムを書き込むことができるのですが、一部(今のところ5個中1つ)の個体で書き込みができないのです。115200bpsが非推奨ということで19200bpsまで周波数を下げたのですが、それでも書き込めません。

 

おかしなAtmega328はICSP経由ではプログラムを書き込むことができたので、一見うまく動いているようなのですが、Arduinoブートローダを書き込んでもうまくPCからの書き込みができないという状態でした。

 

始めはAtmega328か、USBシリアル変換ICが壊れているのかと思っていたのですが、個別に挙動を確認するとうまく動いているように見えるので、何か変だな?と思っていました。

 

内部発振器に誤差があることは知っていたのですが、シリアル通信ができないほどずれているものがあるというのは知らなかったので、しばらくはどうしようもない問題としてほったらかしていました。しかし内部発振器の誤差を調整する方法があることを知り、このおかしな挙動をするAtmega328もArduinoとして使用できるのでは?と思いさらに調査を進めることにしました。

 

OSCCALによる内部発振器の補正

 内部発振器の誤差を調整する方法とはOSCCALというレジスタを利用することです。このレジスタは、起動時にAtmega328のシグネチャバイトに工場出荷時に記録された値が設定されています。

このOSCCALはプログラムから書き込むことができ、それにより内部発振器の周波数をクロックアップしたり、クロックダウンさせることができます。

例えば下のようなコードを書く事で内部発振器で動作するArduinoの速度を標準より早くしたり遅くしたりすることができます。この値を変化させるとシリアル通信ができなくなったり、delayの待ち時間がずれたりと、様々なおかしなことが起きます。

void setup(){
  OSCCAL = 100; // 好きな値に設定
}
void loop(){
  // Lチカ
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
} 

内部発振器の誤差が大きくてシリアル通信がまともにできないAtmega328でも、このOSCCALを変更することで、通信ができるようになることが想像できました。

OSCCALはリセットで初期値に戻る

しかし、話はそう簡単ではありませんでした。前述したようにOSCCALは起動時にAtmega328のシグネチャバイトに工場出荷時に記録された値が書き込まれるようになっています。

そのため、Arduinoブートローダが動作しているときのOSCCALをいじる方法がありません。先程の例のようにArduinoのスケッチ内でOSCCALが変更できても何の意味もありません。

ブートローダーを改造する

Arduinoブートローダーに何かOSCCALを調整する機能があれば良いのでは?と思いちょっと調べたのですが、そういうIssueはちらほら見かけたのですが、そのものずばりの機能が見当たりませんでした。

ということで「ないなら作ればいいじゃない!」ということでブートローダーに手を加えてみることにしました。改造する対象は本家Arduinoではなく、互換ブートローダであるOptiboot(https://github.com/Optiboot/optiboot)にしました。

変更はいたって単純で、makeする際にOSCCAL_VALUEというオプションが設定されている場合は、ブートローダーのmain関数の頭でOSCCALの値を書き換えるというものです。

 

この改造を行い、かつ適切なOSCCAL_VALUEを設定したブートローダを焼きこむことでおかしな周波数だったボードでも無事シリアル通信ができるようになり、Arduinoとして書き込むことができるようになりました。

補正値の求め方

 補正値を正しく求めるために、AnalogWriteの際のPWMの周波数をテスターで読み取って補正しました。

幸い、今回問題になった基板はゲーム機の基板で、良い具合にたくさんのスイッチが搭載されています。そこであるピンでAnalogWriteで128の値を出力し、↑、↓ボタンでOSCCALの値を変更するようなプログラムを書き、そのPWM周波数の変化をテスターで観測し、適切な補正値を求めました。

 

たまたま購入していた下記テスターが周波数測定の機能を持っていたので役立ちました。

 

本家にPullRequest

この調査をする中で、結構多くの人が内部発振器で動かすArduinoでのOSCCALの値の変更に悩んでいることがわかりました、そこで、私の変更を本家にPullRequestができるのでは?と思いカジュアルにPullRequestを出してみたところ、無事マージされました!

ArduinoやOptibootには日々お世話になっていたので、良いPullRequestで貢献することができてうれしかったです。

github.com

Tips: Dockerでビルドする

私は普段Windowsを使っているのですが、Optibootをビルドするためにいろいろ環境を整えるのが面倒だったのでDockerを利用しました。下記のような感じでビルドすることができたので、環境を用意するのが面倒な人にはお勧めです。

$ cd optiboot/optiboot/bootloaders/optiboot/
$ docker run -v /`pwd`:/src -w //src rubberduck/avr make BAUD_RATE=19200 OSCCAL_VALUE=145 atmega328_pro8

他の解決策 

github.com

これは外部のRTCを使い、内部発振の誤差を測定し、その誤差を設定するような特殊なブートローダーを書き込むというプロジェクトです。RTCが手元にあるなら、これを使うのがよさそうです。

まとめ

内部発振器で動作するArudinoを使う際には、その誤差に気を付ける必要があります。個体によってはシリアル通信がまともに出来ないことがあります。Arduinoとして書き込み機能ができないほどに誤差がある場合は、ブートローダ内でOSCCAL値を書き換えるなどを行い、クロックを補正する必要があります。

 

今回のPullRequestによりOptiboot(https://github.com/Optiboot/optiboot)では、この変更が簡単に出来るようになりました。

https://github.com/pkarsy/rcCalibratorもよくできているプロジェクトです。

 

参考書籍

 たまたま買ったこの本にOSCCALについて書かれていたのが非常に参考になりました。Arduinoに慣れてきてAVRのことも気になってきた方にお勧めの一冊です。リファレンスの名の通り、そばに1冊置いておくと安心できそうです。

 

Raspberry Piでおうちサイネージを作ってみよう!

おうちサイネージとは

おうちサイネージというのは、家のリビングなどに設置するスマートディスプレイのことです。

日常生活で役に立つ情報をいい感じに表示することで、生活がより便利になります。

f:id:inajob:20200229180713p:plain

おうちサイネージの要件

ここで扱うおうちサイネージに求める要件はこんな感じです。

  • 常時起動せず必要な時に起動する(電気代削減)
  • ディスプレイをほかの機器と共用する
  • 直近の予定を表示する
  • 時刻を表示する

基本的な構成

基本的な構成はRaspberry PiとPCモニタです。

(いま新たに買うならRaspberry PI 4のほうがおすすめですが、我が家にはRaspberry Pi 3が転がっていたのでこれを使っています。)

我が家ではHDMI出力のあるテレビチューナをPCモニタにつなげてリビングに置いています。そこにRaspberry Piを追加するということです。

 

f:id:inajob:20200229174006p:plain

必要な時に起動する

「常時起動せず必要な時に起動する」「ディスプレイをほかの機器と共用する」を実現するためには、Raspberry Piをスリープモードに出来れば良さそうですが、実際のところRaspberry Piはスリープすることができません。

ここでは妥協案として「HDMI出力を停止する」ことでこの要件を達成します。

一般的なPCモニタはHDMI出力を停止するとスタンバイモードに入ります、また複数の入力を受け付けるモニタや切り替え機の「自動切換えモード」も、出力がある機器に自動的に切り替えてくれるため、おうちサイネージの起動のためにリモコンで入力切替をする必要がありません。

 

XOrgの機能として、「一定時間入力がないと勝手に画面がブランクになる」というものがあり、まずはこれを当てにしていたのですが、どうもこの「ブランクになる」という動作ではHDMI信号は出続けており、ディスプレイも点いたままですし、ほかの機器を起動しても、Raspberry Piの「黒い画面」を表示し続けてしまいました。(入力切替を手動で実行すると切り替わりますが・・)

 

いろいろ調べているとtvserviceというコマンドでHDMI接続したモニタの電源を操作できることがわかりました。

具体的には下記のコマンドでディスプレイの電源が切れます。

$ tvservice -o

そして下記のコマンドでディスプレイの電源が点きます(環境によってパラメータが違うかもしれません)。

$ tvservice -p
$ fbset -depth 8
$ fbset -depth 32
$ xrefresh -d :0.0

起動のトリガを作る

 プログラムからRaspberryPiと接続されたPCディスプレイの電源をON/OFFできることがわかりましたが、どうやって「必要な時に起動する」を実現するかが問題です。

ここでは「Escキー」を押すことでおうちサイネージを起動するようにしました。起動後は3分経過すると再びPCディスプレイの電源を落とすことにします。

 

キーボードの入力を受けるためには、一般的に考えると、そのウィンドウにフォーカスが当たっている必要ありそうですが、おうちサイネージとしてはいくつかのプログラムを画面分割して動作させたいと考えていたので、ウィンドウにフォーカスが当たっていなくてもキーの入力をキャプチャしたいと考えました。

 

ちょっと調べてみると、まさにこれを実現するためのPythonのライブラリを発見しました。

github.com

 これを使うことで、CUIのプログラムから、どのウィンドウにフォーカスがあってもキー入力をキャプチャできるようになりました。

前述のPCディスプレイの電源周りのコードと合わせてプログラムにするとこんな感じです。

import keyboard
import subprocess
import time

while True:
    # standby
    subprocess.run(["tvservice", "-o"])
    
    # wait untill escape pressing
    keyboard.wait('esc')
    
    # resume
    subprocess.run(["tvservice", "-p"])
    subprocess.run(["fbset", "-depth", "8"])
    subprocess.run(["fbset", "-depth", "32"])
    subprocess.run(["xrefresh", "-d", ":0.0"])
    
    # start timer
    time.sleep(60 * 3)

画面レイアウト

おうちサイネージでは複数のプログラムを起動して情報を表示したいと考えました。そのレイアウトを簡単に固定するためにdwmというタイル型ウィンドウマネージャを採用しました。

dwmでは画面左をマスターと使用し、残る右部分を縦分割してスタックとして利用するレイアウトを実現できます。

f:id:inajob:20200229174910p:plain

実際のところはメインパネルで動くプログラム以外はデバッグ用のコンソールとなっていますが、ほかのプログラムを動かす際はdwmのパネルレイアウトが役に立つと考えています。

f:id:inajob:20200229175041p:plain

カレンダーの取得

我が家は家族カレンダーとしてTimeTreeを使用しています。最近TimTreeはAPIを公開したらしい、というので今回はTimeTreeのAPIを使ってカレンダーを取得しました。

developers.timetreeapp.com

下記のようにコマンドラインでも簡単にカレンダーの内容を取得できました。(実際はPythonのプログラムで取得し、後述のtkinterで画面に表示しています。)

$ curl 'https://timetreeapis.com/calendars/<カレンダーのID>/upcoming_events?timezone=Asia/Tokyo&days=3&include=creator,label,attendees' \
  -H "Accept: application/vnd.timetree.v1+json" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

メイン画面

おうちサイネージのメイン画面は初めはChromiumを起動して、Webアプリとして実装していたのですが、Raspberry Pi 3には重荷のようで、動作がもっさりしてしまいました。

そこでPythontkinterというライブラリを使い軽量な画面を作ることにしました。

tkinterはあまり使ったことがなかったのですが、この程度の画面であれば非常に簡単に作ることができました。printfでコンソールに出すだけでは、味気ない情報をGUIとして表示する際には非常に便利なツールです。

↓デフォルトだとちょっと古めかしいスタイルで描画されます。これはこれで味がある・・

f:id:inajob:20200229181126p:plain

リモートデバッグ環境

おうちサイネージはリビングのRaspberryPiで動いていますが、その画面の開発などはできれば自室のメインPCから行いたいところです。簡単なロジックはメインPCで作ることができますが、表示確認などは、実機の画面を見ながら行うのが楽です。

メインPCとRaspberry Piを行ったり来たりするのはストレスなので、うまくリモートデバッグする方式としてx11vncを使うことにしました。

VNCサーバによっては、表示されている画面とは別のもう一つの仮想スクリーンを提供するものがありますが、今回はそうではなくメインディスプレイと同じものを配信するミラーリングの機能が必要でした。

 ↓Windowsマシンからアクセスしている様子。

f:id:inajob:20200229175506p:plain

リモートデバッグ環境を整えることで開発サイクルが加速させることができました。

 起動のための物理ボタン

おうちサイネージの起動は前述のように「Esc」キーを押すことにしました。

しかし、このためだけにリビングのディスプレイの前にキーボードを置いておくのもナンセンスです。

そこで、Arduinoを使ってEscキーだけのキーボードを自作しました。Arduino Pro Mircoを使うとこのようなカスタムキーボードを作ることは簡単です。

プログラムはこれだけです。

#include "Keyboard.h"

#define BTN1 6

void setup() {
  Keyboard.begin();
  pinMode(BTN1, INPUT_PULLUP);
}

void loop() {
  if(digitalRead(BTN1) == LOW){
    Keyboard.press(KEY_ESC);
    delay(100);
    Keyboard.releaseAll();
    while(digitalRead(BTN1) == LOW);
  }
  delay(100);
}

↓回路はこんな感じ。6番ピンとGNDにスイッチの両足をつなげているだけです。基板とボタンは直結しても良いのですが、なんとなくソケットを使って分離できるようにしています。

f:id:inajob:20200229175717p:plain

さらにこのArduino Pro Microとスイッチをマウントするためのケースを3Dプリンタで作成しました。

f:id:inajob:20200229175913p:plain

f:id:inajob:20200229175823p:plain

完成!

ここまでの成果をガガガっと組み合わせるとこんな感じになります。

まだまだ 改良したい点はたくさんありますが、ひとまず形になったので、ここまでの苦労と知見を記事にしてみました。

 

さぁ、これを見ている皆さんも「おうちサイネージ」作ってみませんか?

みんなでアドベンチャーゲームを作ってみませんか?

これは何?

「みんなでアドベンチャーゲームを作ったらどうなるのだろうか?」

f:id:inajob:20200208133330p:plain

ふと浮かんだ、この試みを実際に始めてみました。

 

↓↓↓早速プロジェクト自体を見たい方はこちら↓↓↓

github.com

 

アドベンチャーゲームとは?

ここで言うアドベンチャーゲームというのは、テキストと選択肢によって構成される物語で、選択肢に応じて物語が分岐し、プレイヤー毎に異なるストーリーを楽しむことができるゲームのことです。

 

単なる小説とは違い、選択肢による分岐ごとに異なるストーリを展開することができるため「みんなで作る」のに向いているのでは?と考えました。

みんなで作るために工夫していること

 Git/GitHubを使う

みんなでアドベンチャーゲームを作るためには、差分を取り込む仕組みが必要です。今回はこれを簡単に解決するためにGit/GitHubを使うことにしました。

差分はGitで管理し、GitHub上で取り込みのためのコミュニケーションができます。

ブラウザですぐに遊べる

みんなで作るためには、「みんなで遊べる」ことが重要です。特定の環境に依存していたり、インストールが必要であったりすると、遊ぶためのハードルが高くなります。

またストーリを作る際も、さっと動作を試せることが重要です。

そのため、今回はブラウザで動作するようにゲームエンジンを作成しました。これによりGitHub Pagesで簡単にホスティングすることもできました。

またgit cloneしてきたhtmlをブラウザで開くだけで遊ぶことができるので、開発時も簡単に動作確認できます。

 

↓ちょっと味気ないですが、Webブラウザで誰でも遊べます。

f:id:inajob:20200208133519p:plain

https://inajob.github.io/cyoa-experiment/

アドベンチャーゲームの仕様を最小限にする

昨今のアドベンチャーゲームエンジンは多機能です。背景画像、音声、BGM、書式設定などなど、アドベンチャーゲームを盛り上げるための様々な機能を搭載しています。

しかし、「みんなで作る」という観点では、これらの機能が利用できることで、アドベンチャーゲームにクォリティが求められるようになり、参入の障壁が高くなってしまうことが予想されました。

そこで、今回はシンプルなゲームエンジンを自作し、本当にストーリーだけに注力してアドベンチャーゲームを開発できるようにしました。

ゲームエンジンから揉めそうな要素を排除

それでもゲームエンジンには、いくつかの機能があります。選択肢でジャンプする先を表す「ラベル」や、状態を表す「フラグ」、フラグによる「条件分岐」などです。

ここで「ラベル」と「フラグ」に関してはそれぞれ固有の名前が必要です。

一般的なゲームエンジンでは「場面1」「学校のシーン」「ライフルを持っているか」など、「ラベル」「フラグ」にはわかりやすい名前を付けます。

しかし、みんなでアドベンチャーゲームを作る場合、これらの名前が衝突したり、一定のルールを強制するなど、わかりやすい名前にしたいがためにもめごとが起きることが予想されました。

そこで、今回はUUIDをベースとした名前を採用することで、わかりやすい名前という利点とは引き換えに、命名が衝突するという問題を回避しました。

ライセンスを明記

アドベンチャーゲームをみんなで作るということは、そのシナリオのライセンスで揉めることが予想されました。そこでリポジトリにあらかじめCC BY-SAのライセンスを明記しています。

このライセンスにより、誰でもこのストーリーを利用することができ、またこのストーリーから派生したストーリについても同様のライセンスを強制することを実現しています。

ゲームエンジン紹介

 このゲームエンジンの雰囲気を知ってもらうためにストーリの例を紹介します。

下に示したように、基本的にはストーリを書いていくだけです。選択肢は「:」で始め、選択肢の文字列と、飛び先ラベルIDを記載します。

ラベルIDは暗号のようですが、これは自動生成したものです。このようにラベルIDを自動生成することで、命名で揉めないようにしています。ラベルは「*」で始め、ラベルIDとそれに続けて人間がわかるラベルの名前を記載します。このラベルの名前は他と被っても大丈夫です。

「%」で始まるのはその他の命令で、ここでは「%end」というゲーム終了の命令を利用しています。今のところ他には「%set」と「%eqif」があります。(詳しく知りたい方はリポジトリの説明を読んでください。)

*l972e5150755648f9abe435c10df2d231,初めのシーン
みんなで作るゲームエンジンのサンプルです。

このプロジェクトに興味がありますか?

:はい, l1b8a48cf456f43c69241cdf40b7a1417
:いいえ, ld21c8d7d9a2e42828c6f8fed022bb593

*l1b8a48cf456f43c69241cdf40b7a1417,はいの場合

やったー!
今すぐ https://github.com/inajob/cyoa-experiment をForkして物語を作ってみてください!

%end

*ld21c8d7d9a2e42828c6f8fed022bb593,いいえの場合
そんなぁ~

周りにこういうのが好きそうな人がいたら紹介してほしいです!

%end

 

少し運用してみて感じたこと

1週間ほど運用してみて、ストーリー周りに関して4つのPull Requestをいただきました。

自分でもいくつかのストーリーのPull Requestを作成したのですが、変更の仕方によってずいぶん印象が違うように思いました。

既に存在しているストーリーを少しだけ変更することは、様々な整合性を考慮する必要があり、普通に0からストーリーを作るのとはまた違った難しさを感じました。しかし、選択肢を増やすだけで、またすぐ元の流れに合流するような変更は変更差分が少ないためストーリーそのものを考えるほどの想像力や労力はかからないように思いました。

f:id:inajob:20200208161459p:plain

一方、既に存在しているストーリーから分岐するものの、その後の展開は完全にオリジナルというようなストーリーを作るのは、整合性に関する難しさはほとんどない代わりに、新たなストーリを考えるという想像力と比較的長い文章を書くための労力が必要だと感じました。

f:id:inajob:20200208161514p:plain

このように、このみんなでアドベンチャーゲームを作るという試みでは、従来の1人でストーリを作るのとはまた違ったスタイルで開発が行えることがわかりました。

まとめ

とりあえずはじめてみたこのプロジェクトですが、既にいくつかの方からPull Requestをいただき、一応コラボレーションできているという状態まで持ってこれました。

 

今後ものんびりと進めていければと考えていますので、この記事を読んでみて「面白そうだな」と思った方は、ぜひプロジェクトをforkして物語を追加してみてください。

f:id:inajob:20200208161727p:plain