Skip to content

Instantly share code, notes, and snippets.

@ksasao
ksasao / Program.cs
Created February 22, 2022 13:17
A.I.VOICE Editor 外部連携API を DLL参照せずに動的に読み込んで利用するサンプルコードです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using System.IO;
namespace HelloAIVOICE
@ksasao
ksasao / fs3000x3.ino
Last active February 15, 2022 13:31
Renesas FS3000 monitor with PCA9548AP. See https://twitter.com/ksasao/status/1493564005017059329
#include <M5StickCPlus.h>
#define PCA9548AP_I2C_ADDRESS 0x70
void setup()
{
M5.begin();
Wire.begin();
}
uint8_t selectI2CPort(uint8_t channel){
@ksasao
ksasao / luminometer.ino
Created February 1, 2022 16:35
M5StickC 環境光センサ Hat。ロームのBH1750FVを利用 。 https://twitter.com/ksasao/status/1488550499549065218
#include <M5GFX.h>
#include <M5StickCPlus.h>
#include <M5_BH1750FVI.h>
M5GFX display;
M5_BH1750FVI sensor;
uint16_t lux;
void setup() {
@ksasao
ksasao / M5BME688.ino
Last active February 7, 2025 13:33
M5Atom で BME688 のガスセンサ・ヒーターを操作するサンプル
// M5Atom で BME688 のガスセンサ・ヒーターを操作するサンプル
// 2022/1/6 @ksasao
//
// 利用デバイス:
// デバイスは、下記などで入手してください
// BME688搭載 4種空気質センサモジュール(ガス/温度/気圧/湿度)
// https://www.switch-science.com/catalog/7383/
//
// ライブラリの追加:
// https://github.com/BoschSensortec/Bosch-BME68x-Library
@ksasao
ksasao / detect_zozo2.py
Created December 12, 2021 04:32
ZOZOSUIT2のマーカーを読み取るやつ
import numpy as np
import random
import math
import cv2
from PIL import Image
import sys
def detect_markers(im):
markers = []
height, width = im.shape[:2]
@ksasao
ksasao / estimateRtcMillsec.c
Last active September 18, 2021 07:06
RTC時刻(秒)とシステム時刻(ミリ秒)からミリ秒単位のRTC補正時刻を求めるアルゴリズム。offset はより広いスコープで定義しておく。https://twitter.com/ksasao/status/1439058457856937985
// RTC時刻(秒)とシステム時刻(ミリ秒)を読み込み
long rtcSec = GetRtcSec();
long systemMillsec = GetSystemMillisec();
// delta ができるだけ 0~999 に収まるようにする
long delta = (systemMillsec + offset) - rtcSec * 1000;
// 100ms 以上のずれがある場合は offset を再計算
int d = 100;
if(delta > 1000 + d || delta < -d)
@ksasao
ksasao / PhotoData.cs
Last active September 14, 2021 01:56
HEIF (.heic), JPEG などに含まれる EXIF 情報などから緯度経度・時刻・姿勢(Unity準拠)を読み込む C# サンプル。 https://twitter.com/ksasao/status/1426522324623265800
using MetadataExtractor;
using MetadataExtractor.Formats.Exif;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@ksasao
ksasao / crossed.cs
Created August 2, 2021 12:58
非凸多角形に対して、a番目, b番目(a<b)の頂点を結んだときに他の辺と交差するかどうかを判定する
/// <summary>
/// 非凸多角形に対して、a番目, b番目(a<b)の頂点を結んだときに他の辺と交差するかどうかを判定する
/// </summary>
/// <param name="pts">多角形の点列。点の並びが反時計回りになっていることを期待している。</param>
/// <param name="a">a番目の点</param>
/// <param name="b">b番目の点</param>
/// <returns>交差すれば true</returns>
private bool Crossed(PointF[] pts, int a, int b)
{
float abX = pts[b].X - pts[a].X;
@ksasao
ksasao / M5Atom_SCD40.ino
Last active February 27, 2023 23:13
Sensirion SCD40を M5Atom で動かすためのサンプルコード。SensirionI2CScd4x の 0.3.0 以降ではreadMeasurementの仕様が変わっているので temperature, humidity をfloatにして、数値変換式を削除するなどの修正が必要です。 https://github.com/Sensirion/arduino-i2c-scd4x/commit/741b9a443b1f5e66b12c4f3075b232667b4811f0
// Sensirion SCD40を M5Atom で動かすためのサンプルコード
// 2021/7/20 @ksasao
// * 公式のサンプルコードを一部改変
// Arduino の [ツール]>[ライブラリを管理]で、SDC40で検索し、
// Sensirion I2C SCD4x を追加してビルドしてください
// https://twitter.com/ksasao/status/1417455450929262598
/*
* Copyright (c) 2021, Sensirion AG
* All rights reserved.
*
@ksasao
ksasao / acc.ino
Created May 14, 2021 12:29
M5StickCで重力の向きを計測。単位はG。シリアル出力は115200bps/パリティなし/8データビット/1ストップビット(デフォルト値)。
#include <M5StickC.h>
float accX = 0;
float accY = 0;
float accZ = 0;
void setup() {
M5.begin();
M5.IMU.Init();
M5.Lcd.setRotation(3);