タグ

ブックマーク / zenn.dev/ryoppippi (5)

  • Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)

    はじめに 最近Raspberry Pi Picoを買いました。 そこで、ZigでLチカする手順を書いておきます。 PCとラズパイを接続する ラズパイ上にBOOTSELがついているので、これを押しながらUSB接続します。 すると、ストレージとして認識されます。 ここにuf2ファイルをコピーすることで、プログラムを実行することができます。 MicroZigを使う MicroZigは組み込みにZigを使用するための仕組みを提供しています。 このプロジェクトZigEmbeddedGroupというコミュニティによってメンテ、開発が行われています。 今回はこのコミュニティが提供している以下の二つのレポジトリを使います。 ZigEmbeddedGroup/rp2040 - ラズパイPicoに最適化されたMicroZig ZigEmbeddedGroup/uf2 - elfからUF2ファイルを生成してく

    Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)
    mattn
    mattn 2022/11/07
    3.2KB すごい。
  • ZigのOpenCVライブラリ「zigcv」を作っている

    はじめに 以前、Zig の Tensorflow Lite のライブラリを使って遊ぶ記事を書いた。 この記事内では、静止画の処理を行うために、STB ライブラリを用いた。 こうなると次は動画の処理を行いたくなるものだ。 ... ならば OpenCVZig から使えるようにしようではないか。 OpenCV の C バインディングを作る OpenCVC++で書かれているので、Zig から関数を呼び出すには C バインディングを作る必要がある。 1から OpenCV の C バインディングを作るのは大変なので、 今回は同じ手法で C バインディングを実装して呼び出している gocv のコードを利用させていただくことにした。 これで、工数の半分以上が省けることになる。 Zig バインディングを作る この記事の執筆中ではまだ完成はしていない。 しかし、Web カメラの画像を取得して文字や

    ZigのOpenCVライブラリ「zigcv」を作っている
    mattn
    mattn 2022/08/28
  • Zig の TensorFlow Lite ライブラリでMNISTした

    はじめに Zig機械学習やりたいなと考えていたところ、@mattn様がまた面白いものを作ってくださったので、早速遊んでみた。 とりあえずMNIST というわけでMNISTをやってみることにした。 レポジトリはこちらにある。 READMEに従って、上のレポジトリをCloneし、TensorFlow Liteのインストールを済ませ、kaggleからDatasetを落としてきたらあとはビルドするのみ! 一応今回推論に使用するモデルもCommitしてあるが、自分で学習することももちろんできる。 学習に用いたNotebookはこちら↓ 画像の読み込みについて mattn氏の記事でも触れられていた通り、Zigで画像を扱うためのライブラリが当に少ない。 使えるもののうち、開発が進んでいるものも発展途上だったりする。 しかし、C言語とZigの相性が抜群なことは皆様ご存知だろう。 今回はヘッダーオンリー

    Zig の TensorFlow Lite ライブラリでMNISTした
    mattn
    mattn 2022/08/19
  • ZigはCMakeの代替となるか

    既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_be-windows-gnu", "aarch64-linux-gnu", "aarch64-linux-musl", "aarch64-windows-gnu", "aarch64-macos-none", "aarch64-macos-none", "armeb-linux-gnueabi", "armeb-linux-gnueabihf", "armeb-linux-musleabi

    ZigはCMakeの代替となるか
    mattn
    mattn 2022/08/09
  • ZigでRay Tracing in One Weekendをやってみた

    はじめに ここ数週間でホットな言語、Zigを触っている。 何か作りたいなと思っていたが、以前からやってみたかったRay Tracing in One Weekend (週末レイトレーシング)をやってみることにした。 最終的に生成される画像。うっとりする 所感 文はC++で書かれているが、クラス、継承、演算子オーバーロード等の概念はZigにはないため適宜工夫する必要があった。 また、筆者が普段(型の緩めな)PythonやJSを主に使っているため、終始コンパイラに叱られっぱなしだった[1]。 面白い/気になった点 RustGo、TS等の近代静的型付言語では常識なのかもしれないが、個人的に新鮮だった機能や気になった点をここに列挙していく。 コンパイル時にのみ実行されるコード zigではcomptimeというマーカを付けることでコンパイル時に評価されるコードを書くことができる。 型情報や定数な

    ZigでRay Tracing in One Weekendをやってみた
    mattn
    mattn 2022/07/20
  • 1