gombeのブログ

マイコンの電子工作系PIC32/KiCad/C/C++/3D/

マイコン

あけおめことよろ 新規プロジェクトの紹介

あけましておめでとう⛩ 今年もよろしくお願いします。 最近新しいプロジェクトを始めました。MachiKaniaのハードでCコンパイラやテキストエディタなどを乗せたネイティブコンパイラの開発をしています。 このシステムは編集、コンパイルや実行に必要な一通り…

SPIx3でNTSC

PIC32でNTSCシグナルの生成に成功(?)したのでメモ。 こちらがけんけんさんがやってくださったものです。よく書けてるのでこっち見てください。 PIC32MK でNTSCシグナルを生成するとき、普通だったらタイミングに沿ってCPUで出力します。ただ、リソースの問…

マイコンで3D表示(図解)

3D表示に関してここにまとめておきます。 1、座標変換 3DのCGの世界ではカメラを回すのではなく、世界を回します。また、世界を歪めます(透視投影)。しかし線形変換では透視は与えられないので別の方法を使います。 透視はzで割ることで与えられます。しかし…

マイコンで3Dグラフィクス(2)

前の記事 ラインスキャン法による三角ポリゴン描画 うむ。こんにちは。ポリゴン描画にいよいよかかります。こいつがいちばんの難所で速度が出る出ないの境目がここにあります。今回はラインスキャンというCPUで描画するのに適した高速かつ穴のないレンダリン…

マイコンで3Dグラフィクス(1)

マイコンで3D計算というと重すぎるのかと思いましたが以外といけるようなのでそのメモメモ 昔のDSとかPS1とかはFPUが付いていないので固定小数点演算でグラフィクスの処理を行いました。現在ではFPUもあるしハードウェアアクセラレータがありますしこんなこ…

I2Cの使い方 回路編

0、なぜI2C? I2Cは2本の信号線によるシリアル通信の一種です。低速ではあるものの、多数のスレーブに接続できるためセンサーの接続やコントロールICの制御など様々なところで使われます。 I2Cは通信方式がシリアル通信の中でも特殊なため使用する前にその仕…

まだ制限付きのXC32コンパイラ使ってたのか?

XC32コンパイラはMIPS32アーキテクチャのコンパイルツールです。実はこれ、ソースコードがmicrochip社によって公開されてます。これはつまり、「自分でリビルドして制限解除してね」と言っていることになります。 簡単に説明するともともとXC32コンパイラで…

組み込みでのC++の勧め

PICならxc32++,armならarm-g++,など、さまざまなマイコンでc++を利用可能です。例えば32bitCPUならアドレスがリニアに取れることが多いため、オーバーヘッドが少なくてすみます。 そこでc++をつかったプログラミングのススメを書きます。ではなぜC++なのでし…

machiKaniaでマインスイーパー

再帰の展開をしてマインスイーパーを作りました。後の方に載せます。ソースコードはGithubにあげています。うまくカラー表示できてないけど。 以前C言語で作ったものの移植です。マインスイーパー自体は非常に簡潔なコードでかけますが、掘る作業で再帰を用…

MachiKaniatypeZのビデオ再生(完結

あけましておめでとう。(遅い MachiKaniatypeZでカラー動画再生をやったので技術的メモ カラー動画再生をするのですが、出せる色数は16色です。カラーパレットを高速に切り替えないといけません。しかもFPS30だとすると、表示タイミングは1/2となりますが、…

MachiKaniaで日本語表示

[caption id="attachment_4051" align="alignnone" width="800"] 日本語表示テスト[/caption] 日本語表示テストをしました。上の写真のソースコードはこちらから https://github.com/elect-gombe/fontx2machikania FONTX2の説明を書いたことがなかったので載…

MachiKaniaのSDカード読み出しの高速化

WAVの読み出しするときに気がついたんですがSDカードの読み出し遅すぎまあなんというかmicrochip のライブラリを使っているのでしょうがないのかな?とは一瞬思ったのですがオーバーヘッドが大きいのとコードサイズが大きいですね。FatFSだとコードサイズは…

MachiKaniaでPCMの再生

次期作で乗る予定だったらしいですがもう試しに乗せてみました。まあ、みればわかるとおもいます。解説はほとんど不要だと思います。 2016/12/11追記 YouTubeに変更しました で、PCMなんですが容量が一気に増えますんでFlashには入りません。(数秒まで) とい…

MachiKaniaでの音楽の再生

MachiKaniaはマイコンの限界まで詰め込んだビデオゲームシステムですが、ビデオは素晴らしいのですが音楽がチープだったのでそれを改善するためのプロジェクト。 まず元々のプロジェクトでは音声出力はOC(OutCompare)を使ってコンペアマッチイベントでピンを…

CubeMX コードジェネレータチュートリアルもどき

CubeMXはST社のコードジェネレータです。このジェネレータはライブラリとその設定(初期化)、クロックの設定、RTOSなどのミドルウェアを生成します。そのことについてメモメモ。

マイコンのDMAでの断続的な転送

DMA 単一のアドレス空間上にはFlashやペリフェラル(周辺機器)のレジスタ、RAMメモリがある。この空間の間は通常CPUなどがアクセスしてメモリ間転送している。 これはCPUにやらせてもいいのだがCPUはリソースを取られるし一定時間内で転送しなければならない…

久しぶりのオルゴールについて

今回は減衰について説明しましょうかね。 オルゴールでは大抵音が鳴り始めたら減衰します。この音の減衰にあたる部分まで演算して求めようという考え方です。 人間の聴覚では音の大きさはdBで表されることが多いですね。音が相対的に大きさが触れられるのも…

時計の完成(ハード側)

時計が完成しました。ソフトはまだ調節中です。(時刻調節未実装) 左の6は輝度を示します。CdSで自動的に輝度を変更します。時刻カウントについてはほぼ完璧でした。まあずれても困るしね(w。 アクリル板もレーザーカットしました。裏のパネルに彫刻も入れた…

禁断の比較?!ユニクラフトの基板レビューPCB国内を取り巻く現状〜

お約束の記事です。近年では外国製の安い基板受注生産が盛んとなり高価な国内産はあまり使われなくなりつつあります。FusionPCB、Elecrow、PCBWayなどが主流ですね。最近ではスイッチサイエンスもFusionPCBと連携してPCBサービスを展開しています。¥1000程度…

ユニクラフトに基板発注

ユニクラフトにPCBを発注しました。ElecrowとかFusionPCBとかP板高すぎもみたのですが、とりあえずお試しのユニクラフトで発注することにしました。初めてなのでとても怖いのですがね。 下の写真は基板分割方式を示します。3枚の基盤をパターンとレジスト抜…

時計の設計(7)(手の動きが。。)

最近寒くなってきました。風邪は要注意ですね。実際布団から出るのがとても大変です。実際に時計を作るようにして基板以外の部品は一式揃えました。部品点数はそんなに多くないのですがLEDの数は結構多いですね。ebayでは青色の0603(mil)サイズがかなり安い…

時計の設計(時刻カウントについて)

時刻のカウントは一般的な製品では多くがRTCを搭載しています。これはリアルタイムクロックと呼ばれていて中身はただのカウンタです。水晶発振子の発振回路が入っている場合が多いです。で、今回のマイコンは入ってません(爆

時計の設計(小さい版)

そろそろ時計掘りたいと思っても私は依頼ができないので友人に頼むしかありません。orz 2016年9月24日写真を入れ替えました。ネジの位置の修正です。 で、チップ部品の練習基板もあったほうがいいかなって思って設計しました。今度は50x50の中に無理やり入れ…

時計の設計(4)受信プログラムを考える

受信プログラム。。。うっ本プロジェクト最難関科目。。。では考えましょう。まずはCdSの特性とその利用です。CdSは反応時間が非常に長く(20-30ms)非常に扱いにくいです。それに加えてLCDは反応時間が同程度あります。なので立ち上がり立ち下がりが非常に遅…

時計の設計(3)

補正ページ 時計の部品を発注しました。あとで基板も発注します。 時刻調節方法について幾つかの案がありました。で、今回はCdS(光検知)を使ってiPhoneやPCなどから補正します。 具体的にはさっきのURLにアクセスし、スマホをかざすだけで補正できることを目…

時計の設計(2

結局ロゴはマークにしました。で、クリスタル発振子を32.768kにしてTMR1でカウントします。これで消費電力が大幅に下がりました。で、あとコンデンサの外形間違えてたので修正しました。これフットプリントがなくて作ったせいでお粗末なものに(ry まあ許…

時計の設計(1)(構想を練る)

[caption id="attachment_2171" align="alignnone" width="474"] 時計の3D表示[/caption] PCBのCADといえばKiCADですよね。うん。で、それ使って5x10(cm)以内で時計を設計したので記録。 KiCADって結構特別な操作感でレンダリングソフトでいうblenderみたい…

FM音源(もどき)dsPIC(続き)

オルゴールです。それっぽい音()が出ました。 いきなり解説ページということです。ハードはPCMPlayerとほぼ同じでモノラルである点だけ異なります。FM音源を2OPかつフィードバックなしで調節もなしというFM音源らしくない音源ですが、同時発音数は20オンを…

STM32 FLASHをEEPROM的に使う(2)

前回の続きです。STMのフラッシュを利用する時はロックを解除し一ページを消去、ブランクチェックの後に書き込みを実行、その後に照合をし、ロックをかけて完了でしたね。 今回はリンカスクリプトの解説をちょっとだけしたいと思います。リンカスクリプトと…