ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

2023-01-01から1ヶ月間の記事一覧

static property のoverride

Swiftでクラスに属するpropertyやmethodはstaticキーワードで定義するが、staticはオーバーライドできない。 こちらを参照するとstaticの代わりにclassキーワードを使ってcomputedにするとオーバーライドできる様だ。 software.small-desk.com class A { cla…

1.9インチ 91セグメント I2C電子ペーパモジュール(7)

IoT

e-Paperモジュールでマイナス表示できないため0℃にクリップしていたが、Ambientへの記録もクリップされてしまったので修正。 それと測定中はM5Stamp picoのLEDを表示させる様にした。 よく考えたらマイナス表記もできるので対応させた。 1しか表示できないと…

Navigation Viewで子Viewから左上ボタンで戻る時に何かさせたい時

こちらに書かれていた。 stackoverflow.com struct MyView: View { @Environment(\.isPresented) var isPresented var body: some View { Rectangle() .onChange(of: isPresented) { newValue in if !newValue { print("detail view is dismissed") } } } }

The Basics

Swiftで8進数ってなんと表現する?と思って引っかかったサイト。 docs.swift.org 今まで他人のBlogやコードでSwiftをかじってきて何となくの理解だったのがここを読んで知らないことだらけと気づいた。 今後少しずつ読み進めていこう。 Taplsは知らなかった…

3軸トゥールビヨンの置き時計【3Dプリント用STLデータ】購入した(5)

印刷がやっと終わった。 明日から組み立てよう。 なかなか時間が取れない。

3軸トゥールビヨンの置き時計【3Dプリント用STLデータ】購入した(4)

1番はほぼ丸一日の印刷時間で、夜中も印刷することになり温度低下での失敗を心配してた。 朝確認すると問題なく印刷してる様だ。 6度くらいまでしか気温が低下してなかった様で幸いした。 終わるまでまだまだあるので、気長に待とう。 やっと終わった。 四隅…

3軸トゥールビヨンの置き時計【3Dプリント用STLデータ】購入した(3)

印刷は残すところ黒のみとなった。 一番大きい1番(200x140x34)を印刷しようとしたらスライスできない。 210x210まで印刷できるはずなのに… どうやら印刷前にぐるりと外周を印刷するのがはみでてしまって印刷できないということらしい。 Build Plate Adhesion…

[[self class] new]をSwiftで行う

objcだと頻繁に使ってた[[self class] new]をSwiftではどうやるか? 調べたらすぐ見つかって、こうすれば良いみたい。 [self class]はtype(of: self)に置き換えられる。 required init()が必要になるのが肝の様だ。 requiredって何? gist.github.com メソッド…

XCTest で setup

テストクラスをNewするとsetUpWithError()が含まれている。 ここでメンバ変数を初期化して準備しようとするとエラーでコンパイルできない。 メインのプロジェクト(Test)でAというクラスを定義 import Foundation class A { func foo() -> Int { return 0 } }…

M5Stamp picoでM5Unifiedを使ってRGB LEDを点灯させる場合

IoT

M5Stamp picoでM5Unifiedを使ってRGB LEDを点灯させる場合にどうするか試す。 docs.m5stack.com ドキュメントによるとRGB LEDはサポートされず、FastLED Libraryを使う様にということの様だ。 色はRGBで指定するが、M5Stamp picoはRとGが逆になっている様な…

3軸トゥールビヨンの置き時計【3Dプリント用STLデータ】購入した(2)

前回のゼンマイユニットは組み上がった。 2の部品をヤスリで削って丸くし、ギヤがクルクル回る様にする必要があってもうちょっと削った方がいい気がするが、。 今はかろうじて回っている感じ。 ビスを購入しに行ったが2mmは在庫がないということで注文してき…

String(format:)

String(format:)を使うとsprintf的なことができる。 ただ文字列と思って%sを使うとクラッシュする。 文字列はオブジェクトだから%@にしなきゃいけないのを忘れてた。 String(format: "%@,%d", "123", 456) Playgroundで試していたらString(repeating:count:)…

2 duplicate symbols for architecture arm64

久しぶりにテストを実行しようとしたらコンパイラが通らなくなってた。 2 duplicate symbols for architecture arm64 違った。テストしようとしたタイミングでコードも変更してて、それが悪くて通常も通らなくなってた。 Report navigatorで確認すると何が重…

sourcetree(windows)のgitをsystemに変更

windowsのsourcetreeで時折認証がうまくいかずはまることが起こるのでsystemのgitに変更してみる。 こちらを参照。 support.atlassian.com gitのインストール。 コマンドプロンプトで実行。 sourcetreeのターミナルからは失敗する。 winget install --id Git…

1.9インチ 91セグメント I2C電子ペーパモジュール(6)

IoT

電池駆動は無理だった。 今朝見たらまた止まっていた。 電圧は2.2Vしかなく出力も5V出てない。 Ambientとの通信で結構くっているのかな? e-Paperモジュールの初期化で食ってる気もしないでもない。 電池駆動でいいとこ2日というところか… e-Paperは表示が消…

1.9インチ 91セグメント I2C電子ペーパモジュール(5)

IoT

実際に単四電池2本で動かしてみる。 これだと供給電流が不足して動作が不安定な感じ。 XCL103使用5V出力昇圧DCDCコンバーターキット: 組立キット(モジュール) 秋月電子通商-電子部品・ネット通販 いつものMT3608モジュールにする。 安いし重宝す…

1.9インチ 91セグメント I2C電子ペーパモジュール(4)

IoT

細かいところを実装。 Wikiに以下の記載がある。 When using the ink screen, it is recommended that the refresh interval be at least 180s, and refresh at least every 24 hours. If the ink screen is not used for a long time, the ink screen shoul…

3軸トゥールビヨンの置き時計【3Dプリント用STLデータ】購入した(1)

からくりすとさんで3軸トゥールビヨンの置き時計【3Dプリント用STLデータ】が販売されていたので購入した。 モデル作成の参考とギヤの軸などどうするのかとか普段わかってないことを学習する意味もある。 軸は釘を使用していてなるほどと思った次第。 oishii…

TextField

TextFieldで編集が終わったら値をセットする方法。 Optionalを扱うモデルを用意してBindするところまで。 OptionalだとTextFieldにBindingできないのでView内のメンバnameで一旦受ける。 onAppearのタイミングでセットする。 import SwiftUI // CoreDataを想…

UndoManager

Swiftになって勝手が違うのでこちらを後で読む developer.apple.com いろいろ巡ってここに辿り着く kouki.hatenadiary.com Obj-Cの時と同じという結論に至る。 ViewはStructureなのでUndoManagerのターゲットにはなれないのでモデルかビジネスロジックの方に…

Oculusへapkファイルインストール

暫くぶりにOculusを触るのでapkのインストール方法が分からない。 Mac Book Proも新しくなったので環境構築もしてないし。 こちらを参考に進めている。 vracademy.jp Sidequestをインストール こちらをインストールしてみたくてでした。 protopedia.net 結局…

1.9インチ 91セグメント I2C電子ペーパモジュール(3)

IoT

後は温度をe-Paperに表示するのみ。 前回の表示はサンプルそのままだったが、温度表示できる様にする必要がある。 初期化で何をしているか理解できていないが、EPD_1in9_Write_Screen(DSPNUM_1in9_W0)の前までは必須の様だ。 その途中までにすると表示した時…

1.9インチ 91セグメント I2C電子ペーパモジュール(2)

IoT

温湿度計にするためのセンサーとして手元にあるDHT11を使用する。 使用するピンは左側の列ではGPIO26しか残ってないのでそれを使用する。 M5Stamp pico DHT11 3V3 + GND - G26 OUT OUTとVCC間に4.7KΩのプルアップ抵抗を入れる。 github.com を使ってセンサー…

1.9インチ 91セグメント I2C電子ペーパモジュール(1)

IoT

1.9インチ 91セグメント I2C電子ペーパモジュールwww.switch-science.com ドットマトリックスのe-Paperデバイスと思って買ったら違うらしい。ちょっと失敗。 液晶表示の様にセグメントがある様だ。というかセグメントと書いてるよね。確認不足。 見た目はSwi…