ブログ記事2,178件
その昔。電子楽器の種類に、「プレイバックシンセ」とか「サンプラー」と呼ばれるものがありました。(今も在るかもしれません)原理はシンプルで、実在の音を録音したデータを、再生速度を変えて音階にしよう、というものです。レコードやテープを早回しにするとキュルキュル高い音になりますよね。あんな感じです。ドの音を1.5倍速でソの音に。2倍速で1オクターブ上のドの音に。子供の頃、仕組みに興味を感じつつ、機材が高価すぎて手が届きませんでした。今回、それっぽい演奏処
ことの始まりは、一ヶ月前。最近、ニュースが同じ話題ばかりで、TVを見なくなってきた。と話していたところ「ラジオがいいよ。他の作業が並行できるし」と勧められました。で、AliExpressにてお安いラジオ(と部品)を探していたら・・・。ダントツで安い!なんと48円という激安FMラジオボードを発見。送料込み。しかし、えらく小さくないか?コレ。1cm×1cm程しかないんだけど。というわけで、電子工作でいっちょうFMラジオを作ってみました。今回
CH32V003F4P6の割り込みについて調査をしておきます。まず、ドキュメントと整理しておきましょう・CH32V003Datasheet・CH32V003ReferenceManual・QingKeV2MicroprocessorManualが必要です。特に、割込みの調査をする時には、QingKeV2MicroprocessorManualが必須です。手元に無い方はそろえておきましょうQingKeV2_Processor_Manual.PDF-Na
先月から、RaspberryPiPico=ラズパイピコというマイコンボードを使ってみています。いろいろ上手くいかないこともありますが、久々のプログラミングで楽しい。ところで、マイコンボードを使うにあたり、誰もが気にするのが「ボードのお値段」。電子工作の心臓部なので、予備含め何個か安く買っておきたいところです。ラズパイピコ、国内の大手通販で正規版だとこれくらい。770円+送料。(これでもかなり良心的)もっと安いのは
Xでは現役さんもいらっしゃって、集会大会の様子をなんならリアルタイムでも教えてくださるぐらい教えてくださいますが、最近の集会は学級崩壊ならぬ集会崩壊とまでは言わないけど、その手前ぐらいになってるようですね。子供たちが、集会におもちゃやお菓子を持ってきて、親は怒らない現象が起きてるようです。周りの信者さんたちは影で悪口言う程度なんですって。大会では講演中、子供たちは椅子に座らず、通路でウロウロしてるとのことでした。時代は変わったものです。かつては鞭の部屋が
今回ご紹介するのは、拡張命令の1つのでアトミック命令です。仕様書には以下のように書いてあります。Thestandardatomic-instructionextension,named“A”,containsinstructionsthatatomicallyread-modify-writememorytosupportsynchronizationbetweenmultipleRISC-Vhartsrunninginthesamememory
こんばんは!3月の年度末進行に追われています~本日、浜松陸運局に行きましたら、激混みでした笑笑春ですね~ECUデータ読み取り依頼です~ビビりながらケースを開けます!マイコン探し~やっぱり・・・デンソー製ECUですね・・・色々とアクセスしましたが・・・今回はダメでした情報収集して、再度チャレンジします=(笑)ではまた!
RV32Iの基本命令のB形式を見ていきます。以下のような命令があります。分岐命令になっています。ちょっと説明を入れると以下になります。これもC言語でどういう記述をすると出てくるか?という視点で見てみようと思います。分岐をさせると言う事で、以下の関数を例に考えてみます。intfoo1(inta,intb){intt=0;if(a==b){t=1;}returnt;}この関数を、IAR社のEmbeddedWorkbenchfor
RV32Iの基本命令セットでのR形式の命令を見ていきます。R形式の命令を調べてみると、以下のものが該当するようです。シフト命令を見ると、3つありますが、論理的なシフトが右シフト(SRL)、左シフト(SLL)の2つ、算術シフトが右シフト(SRA)の1つです。算術の左シフトは必要ないのか?という疑問が出る方もいるかもしれませんので、簡単に説明しておきましょう。算術シフトは、signedの整数でつかいます。signedの変数の最上位桁(MSB)は符号を示します。たとえば、整数8
RISC-Vは実装によっていろいろなものが拡張されるので、調べる範囲が広範になりがちです。まずは、気になったところを調べる事にして、以下の図で黄色に塗ったところを調べてみます。1)mvendoridと2)marchidこれでベンダとアーキテクチャが分かるようです。すると今回のGD32VF103の値はどうなっているか?を調べてみます。EWRISC-Vで接続して、レジスタの値を観測してみます。EWRISC-Vでレジスタ画面を開くと見えました。実機を動かしながら確認できると、勉強が
RISC-VのCPUレジスタを見ていきたいと思います。汎用レジスタが32個(ゼロレジスタを含む)に、PCを別に持っている構成になっています。昨日の命令形式でrd,rs1,rs2が5ビットだったのは、この32個のレジスタを指定するためです。他のCPUのレジスタを調べるとこんな感じですね。多分、組込み領域では16か32で選択されますが、レジスタの数は命令長に影響するので設計者の方針で決まってしまう内容に見えます。特に32ビット命令だとコード効率が悪くなるので、16ビット命令を用意するのだ
ArduinoUNOR4でJpeg画像ファイル展開前回までは、ILI9341制御ICを使った2.4インチTFT液晶ディスプレイをいかに高速で表示させるかについて長らく解説してきた。もしそれに興味があれば、最初から読んでくれると嬉しい。『だいぶ前に買った2.4インチTFT液晶ディスプレイ』だいぶ前に買った2.4インチTFT液晶ディスプレイあれはまだArduinoが流行りだした黎明期。バンコクの秋葉原ことバンモー地区でこの液晶ディスプレイ…ameblo.jp今ま
前書きこの記事では、自分だけのキーボードを設計してJLCPCBに基盤を発注するところまでを解説します。この記事が「僕の考えたさいきょうのキーボード」を作りたい人の手助けになればと思います。そうでない人も、自作キーボード界の先輩たちなどの多くのボランティアの方々によって様々な行程が簡略化されているので、是非この記事を読んでトライしてみてください。今回使用させていただいたウェブサイト・ツール・OSSKicadKeybboardLayoutEditorKeyboardPCBBui
前回のタイマーの記事を下に貼り付けて置きます。ぶっちゃけ下の記事は私の自己満足なので見たくてもいいような気がしますが...『ArduinoタイマーとArduinoの闇(笑)』今回はArduinoのタイマーと闇についてです。結構前にタイマーを使用した記事を書きましたが、それらは全てライブラリを使用しています。それらの記事について下…ameblo.jp・ATMEGAタイマーの基礎知識ATMEGA328Pにはタイマーが3つあります。Timer0・Timer1・Timer2があ
だいぶ前に買った2.4インチTFT液晶ディスプレイあれはまだArduinoが流行りだした黎明期。バンコクの秋葉原ことバンモー地区でこの液晶ディスプレイを見つけた。商品名は、2.4"TFTLCDShield+TouchPanelDisplayWithSDReaderforArduinoUNOと書かれている。値段は370バーツ。今となっては高い気もするが、当時では安く感じたので買ったのだろう。で、付属品はタッチペンのみ。そう、説明書もソフトウェアも何もな
ATtiny85でArduino言語のインラインアセンブラを使ってみています。→ATtiny85をインラインアセンブラでプログラムしてRGBLEDテープを動かしてみた自分なりに頭の中を整理するために,イメージしている事も含めてのメモです。オヤジの勝手な解釈も含まれているので,正確な情報は参考にした公式のデータシートとAVRインストラクションセットマニュアルに書かれています(^^;;;1.ATtiny85のPin配置ATtiny85は8Pinで電源(+-)以外はPORTBに所属してい
今回はCTCモードを用いて割り込みを行ってみようと思います。ちなみにCTCモードとは特定の値までカウンタがカウントされていき、特定の値になったら割り込み・現在のカウンタが0に戻るような動作をするモードの事です。詳しい説明は下の記事をご覧ください。『ArduinoUNO/NANOライブラリを使わずにタイマーを使う割り込み編』前回のタイマーの記事を下に貼り付けて置きます。ぶっちゃけ下の記事は私の自己満足なので見たくてもいいような気がしますが...『ArduinoタイマーとAr
加速度センサでロールやピッチ動作の地軸に対する傾斜角は得る事ができました。→加速度センサーで傾斜角が測れるか試してみた→加速度センサーとRCサーボでヘドバン・キャットを試作中地磁気センサ(電子コンパス)を回転センサにすれば,水平面でのじわっとした回転(ヨー)動作に反応できるのではと思い,RCサーボをつないで動きをみてみました。ハード構成です。・MPU:Seeeduino-XIAO(Arduinoでプログラム)・3軸地磁気センサQMC5883Lコンパスモジュール(3.3V-
トランジスタで作るNOT回路は遅くて使い物にならない。そんな事をどっかで聞いた気がします。ぶっちゃけスピードアップコンデンサがなくても1kHz位なら特に問題無い場合が多いのですが、今回はスピードアップコンデンサでどれくらい高速化出来るのか確かめてみます。・理論最初に簡単に理論を解説します。トランジスタには仮想的なコンデンサが接続されています。正確には付けたくて付けているわけではなく、仕組み上どうしても発生してしまう容量成分となります。この容量成分がトランジスタ
ATtiny202はATtiny85などの系列マイコンで比較的新しいシリーズの中の一つです。SOP8pinの小さなマイコンで1個40円ぐらいで手に入るわりにはメモリも多めで性能がアップしています。ArduinoIDEでも対応できるようになったので試してみたくなりました。ArduinoIDEからArduinoNanoを書き込み機として経由し,Attiny202にダウンロードしたLチカを動かしたところです。ATTiny202の概要とPin配置です。この小ささでメモリや機能は多めですね(^
ある方になぜArduinoよりもPICを使うのか?と聞かれた事があります。そこでArduinoとPICのメリットを上げていきたいと思います。あくまでも私が勝手にまとめた物なので必ずしもこの通りとは限りません。・Arduinoのメリット・プログラミングが簡単やはりArduinoのメリットはここでしょう。他のマイコンであれば、いろいろな知識が必要です。例えばPICだとTMR1などのハードウェア的な事を知る必要がありますが、Arduinoであれば分からなくても何とな
tinyAVR(ATtiny)の小さな8pinシリーズ,ATtiny202などはArduinoIDEで動かす事ができるので重宝しています。プログラムの書き込みはUPDI(UnifiedProgramandDebugInterface)方式でArduinoUNOやNano経由,またはUSBシリアル変換経由で行えます。・ATtiny202をArduinoIDEで使うための環境整備のメモ・ArduinoIDEからATtiny202などにUSBシリアル変換経由のUPDIで書込んでみ
早く押した人のLEDやライトが点灯するような大きなボタンがあれば楽しそうです。市販のものもありますが,TVでよく見かけるような製品は高価そうなので,100均の押すと点灯するルームランプで作ってみました。マイコンのコントロールで2種類のランプを試しているところです。押した方のLEDが点灯し,ボード基盤の黄色のリセットボタンで全消灯します。[ハード構成]1.LED照明のルームランプ電池を電源としたLEDランプで,100均でいろいろなタイプが購入できます。オリジナルは押すと点灯し,もう
Arduinoを使って色々作っていると、実装するときはAVR単体で良いのでは?という気がしてきまして。試しにAVRのIC単体を買ってみたので、Arduinoのスケッチを書き込めるようにしました。本来はAVRライターというものを使ってプログラムを書き込むようなのですが、Arduinoを書き込み装置として使ってプログラムを書き込めるようなので、今回はその方法を採用しました。絵にするとこんな感じになります。今回は、書き込み装置としてArduinoNano、AVRはATTiny
RV32Iの基本命令のJ形式を見ていきます。J形式はJAL,JALRの2つの命令があります。どちらも関数呼び出しで使われる命令ですので、これも実際の関数の記述も見ながらどう使われているか見てみます。以下のC言語の記述を考えましょう。inth1(void){return10;}inth2(inta){returna+10;}int(*ptr)(int)=h2;/*関数ポインタ*/intgoo(){intt;t=h1(
Windowsのビットマップ形式の画像はシンプルなピクセルデータで,LEDパネルにドット絵として表示するのに使いやすいですね。32x128や64x128の背景などにも使ってきましたが,今回は32x32の画像に使っています。原図は「いらすとや」さんの5月のイラストです(^^)。原図の一部をコピーしてWindowsのペイントソフトで32x32ピクセルの絵にしています。32x32だとさすがに小さめなので,表示の拡大を最大にし,ペン先を1ピクセルに設定して,修正したりします。できた画像は24ビ
デコピンは思ったより衝撃があり,強さを競うゲームを見てPICAXEと圧力センサーで自作もしてみました。→デコピンの強さを競うゲーム機を自分で作ってみたくなったデコピンの強さの要素の一つは指の速さでしょうし,その速度は先人によると25〜50km/hぐらいであろうとの事でした。トシをとってもその速さは出るものか,またゲーム機の入力手段として使えそうなのか,,透過型と反射型の光センサー2種を使って試しに測ってみました。[試作装置]MPUは扱いやすいRaspberryPiPicoをA
【電子工作】2-2.Arduinoで少し精度のたかい砂時計を作ろう前回、delay()で待ち時間をしつつ、描画更新をしたら、毎秒16.6msずつずれていました。これを改善する方法はないのでしょうか?1秒間に16.6msずれているなら、待ちに使用しているDelayを補正すればいいじゃないという方法です。前回はdelay()を使用していました。この関数では、1ms粒度の調整しかできません。これに対して、もっと粒度の高い街をする関数があります。それは、d
ATtiny85を使って30個のNeoPixel系LEDがついたテープを動かしてみています。→ATtiny85をインラインアセンブラでプログラムしてRGBLEDテープを動かしてみたなかなかきれいで楽しいのですが,テープはLEDの配置に制約があるので1個ずつ個別になっているイルミネーションライトを試してみました。イルミネーション全部を色違いにつけてみたたところです。構成はATtiny85と5Vで動くLEDライト「ALITOVE50pcsws2811LEDイルミネーションライトRGB
過去記事の訂正①端子の出力について2023年9月12日の記事にて、ポートレジスタ直接制御でArduinoUNOR4MINIMAのD13ポートを制御する方法を解説している。『ArduinoUNOR4でポートレジスタ直接制御』ArduinoUNOR4でポートレジスタ直接制御前回おざなりになってしまったポートレジスタ直接制御の解説の続き。ArduinoUNOR4マイ…ameblo.jp端子の入出力方向のことはいいのだが、出力設定の所に間違った記述があ