RustでBase64処理プログラム Rust言語でBase64処理プログラムを書いてみた。Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。 ウィキペディア"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"これらの64文字を使ってバイナリデータを表現する。ちなみに"Rust"文字列はBase64で"UnVzdA=="と表される。24bit毎のデータを6bit単位で分割して4文字で表現するので、データが24bitに満たない場合は'='文字で残りを埋めて4文字単位に調整する。 ITTech RUST
Rust言語のlet-else制御構文を試す Rust 1.65から使えるようになったlet else 制御文を試してみた。Rust言語には、他の言語ではあまり見かけないようなif-let-elseのような便利な制御構文があるが、更にlet elseが追加された。The Rust RFC Bookにはlet-elseはrefutable(反駁可能)なlet文だと説明してる。let PATTERN: TYPE = EXPRESSION else DIVERGING_BLOCK;実際のコードでやってみる。 /// Key number… RUST ITTech/Rust 画像生成AI Stable Diffusion rust-stable-diffusion
Rust言語で画像生成AI「Stable Diffusion」 Rustコンパイラで画像生成AI(Stable Diffusion)を試してみた。意外と簡単でLinux(Ubuntu20.04)で以下のコマンドを入力するとcargo run --example stable-diffusion --features clap -- --prompt "A rusty robot holding a fire torch."最近では2万円以下で手に入る廉価版Ryzen… pytorch RUST ITTech/Rust Transformers 画像生成AI Stable Diffusion Stable Diffuser diffusers-rs rust-stable-diffusion
VisionFive2 RISC-V SBCを試す(Debianで3DCG) "VisionFive 2 - 3D GPU を統合した世界初の高性能 RISC-V SBC"がキャッチコピーのボードコンピュータを試してみた。 クラウドファウンデイングに応募したボードがようやく昨年末に手元に届いた。StarFive社のRISC-V JH7100 Socに3D GPU内蔵。4GB Memory/Dual LAN/M.2 Nvme SSD slot/USB3.0… ITTech VisionFive RISC-V SBC vulkan JH7100 StarFive
Arduino IDE 2.0 ESP32でシンセサイザー Arduino IDE 2.0がリリースされたので、早速使ってみた。ESP32 Devボードでシンセサイザーを作って、音楽を鳴らしてみた。使用環境はZorin OS 16.1 Core。Zorin OSはUbuntu 20.04をベースとしたWindows 7風なユーザーインターフェイスなLinux.Ubuntuのノウハウが使えて、シンプルなGUIが魅力。机の上にゴミ箱がないのもいい。 Arduino IDEは電子工作用の定番アプリ。Arduino_unoやESP32などの組み込みCPU開発に使える。最新版Arduino IDE 2.0をダウンロードした。V2ではユーザーインターフェイスが改善され、Visual Studio Codeのようなコード補間機能が使える。 まずはESP32 開発ボードでブザーを鳴らす。GPIO… ESP32 ardino ide ITTech/ESP32 ESP32-DevKitC-32 シンセサイザー zorin os
ESP32ロボットカー完成 arduino ideを使ってesp32 robot carを自作した。カメラのlive streaming用にesp32-camを使用したので2個のESP32同士をESP NOWで通信した。これでvideo streaming付きの4WD メカナムホイール駆動ロボットカー完成。スマホのWi-Fi機能をコントローラーにしてマニュアル運転は勿論Line tracking(道路)Obstacle avoidance(安全運転)Obstacle detection(猫じゃらし)などの自動運転走行ができる。運転手はアヒルちゃん。 ITTech/AI arduino IoT ESP32 esp32-cam ESP NOW
最新鋭のマイコンESP32でロボットカーを自作する方法 今回はarduino unoではなくesp32で自走ロボットカーを自作してみた。esp32は32 bits risc dual core cpuをコアにしてEspressif社が開発したSoCでwi-fi, bluetooth, A/D, D/A, i2c, i2s, シリアル通信, 多機能I/Oが1チップに内蔵されている。arduino unoなどのようにセンサーシールドボードなどを使わなくても、ほとんどの機能が実現できる組み込み用マイコン。演算処理能力もけた違いに高速なのは、かってのSun Micro社のワークステーション用のCPUの後継版だからかな。 開発環境はarduio… ITTech/AI arduino IoT ESP32 ubuntu 22.04 ITTech/ESP32 arduino ide Windows10 Espressif ESP-WROOM-32 ST7789
スマホの日本語音声で制御するスマート4WDロボットカー 最近は、Raspberry PiやJetbot nanoが入手困難なためか価格高騰しているので、DIYロボット制作に使いずらくなった。その代わりにArduinoでロボットカーをカスタム制作してみた。4WDでタイヤはメカナムホイール(Mecanum Wheel)だ。全方向性に移動できるタイヤで、前後左右、真横や、斜め直進もできる。このスマートカーを、スマホのBT(Bluetooth)接続で、英語は勿論、日本語音声入力でも制御出来るようにした。 スマホのBTアプリを使って、"前"、"後ろ"、"左横"、"右横"、"止まれ"などと喋ると動作してくれる。ソニックセンサーを使って障害物を回避して、自動走行もできる。スマホに向かって"障害物回避"又は"安全運転"と喋るだけで自動走行をする優れものだ。また、"道路"又は"道"と喋ると、黒い線を道路と見立てて走行してくれる。 Raspberry PiやJetsonを使わなくても、Arduinoだと手頃なコストで実現できた。 ITTech/AI arduino スマートカー 4WD