ひとしれずひっそり

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

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…

microbitでバックグラウンド処理

制御の「バックグラウンドで実行する」を使うことでできる。 自分でループ処理を入れないといけない。 複数使うとハングアップする様なので、1つにした方が良さそう。

NavigationLink で遷移してから戻る場合

developer.apple.com presentationMode.wrappedValue.dismiss() で戻れる struct SomeView: View { @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode> var body: some View { Button { presentationMode.wrappedValue.dismiss() } label: { T</presentationmode>…

RubyMotion

久しぶりにRubyMotionの環境構築 既存のプロジェクトでbundleしたら TypeError: superclass mismatch for class StringIO がでる。 こちらを参照し、gem install後、StringIOを全て削除。 stackoverflow.com provisioningファイルがないと云われるのでダウン…

Label

developer.apple.com Image使わなくてもアイコン表示できる。 Label("Lightning", systemImage: "bolt.fill") labelStyleでアイコン指定してても非表示にできる。 Label("Lightning", systemImage: "bolt.fill") .labelStyle(.titleOnly) 自分でStyleを作る…

ViewでOptionalの扱い

ずっとOptionalの扱いで悩んでいて、モデルにラッパーとなるオプショナルがない変数を追加して対処していた。 Viewのメンバ変数で一旦受けて処理すればいいのか。 今まで気づかないとかアホすぎた。 zenn.dev

editMode

developer.apple.com EnvironmentValuesとして扱っている。 ドキュメントより @Environment(\.editMode) private var editMode @State private var name = "Maria Ruiz" var body: some View { Form { if editMode?.wrappedValue.isEditing == true { TextFi…

NavigationLink

NavigationViewのリンク NavigationViewはdeprecatedになって NavigationStack か NavigationSplitView を使うという事らしい。(iOS 16から) developer.apple.com 最初のブロックはリンク先となるViewを指定する。 labelのブロックではcellの中身を指定する…

SwiftUIでモーダル表示

モダンな表示をする場合 .sheet()を使用 capibara1969.com フル画面で表示する場合 . fullScreenCover()を使用 capibara1969.com

M5StickCでM5UnifiedでIMU(7)

IoT

データを取ってみて、微分で同じ符号が8回続いたら山と谷の切り替えを判断することにした。 これで実際の歩数に近い感じになったのでこれで完成としよう。 後は雪が降って除雪のログ取りをするだけ。 図は微分と2階微分のデータで、正の数を緑で、負の数を赤…

SwiftUIでFlipアニメーション

betterprogramming.pub これで回転させられる。 SomeView.rotation3DEffect(Angle(degrees: 10), axis: (x: 0, y: 1, z: 0))