フォト
2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

日記・コラム・つぶやき

2017年9月20日 (水)

グラフィック描画まわりの実装に苦戦

ここ数日、手がけている豊四季Tiny BASIC for ArduinoのOLED(SSD1309)利用
グラフィックスクロール処理の実装ではまっていました。

画面の向き(縦横の変更)を変えることが出来て、各画面の向きに応じて
画面の任意矩形領域の上下左右1ドット単位スクロールを行うというコマンドの実装です。

いきなりコーディングしていたのですが、上手く動かず。
それで、机上で図やなりやらを書いて、変換式を求めて再度実装すると
期待通りの動きが出来ました。

やはり、コーディング => 実行 => 修正の繰り返しの試行錯誤で「何となく動いた」ではなく
ちぇんとロジックと方式を検討してからコードを書かないとだめですね。効率的にも..

Dscn7032

具体的な数値の変換例から、抽象的な数式を求めて一般化しました。

とりあえず、GSCROLLコマンドが実装出来ました。


デモ動画では全画面スクロールですが、画面上の任意の矩形領域のスクロールも可能です。
あまり用途の無いコマンドですが、まあいいでしょう^^

OLEDだと、スクロールしても残像もなくっ切り表示ですね。
手持ちのモノラルグラフィック液晶はもう、使いたくなくなります。


動画の動作確認のプログラムはつぎのような感じです。

10 'GSCROLL TEST
20 FOR R=0 TO 3
30 SCREEN 1,R
40 FOR D=0 TO 3
50 GOSUB "@DISP"
60 FOR I=1 TO 8
70 GSCROLL 0,0,GW-1,GH-1,D
80 WAIT 200
90 NEXT I
100 NEXT D
110 NEXT R
120 SCREEN 1
130 END
140 "@DISP"
150 CLS:GPRINT 10,10,"GSCROLL"
160 GPRINT 0,0,"A"
170 GPRINT GW-7,0,"B"
180 GPRINT 0,GH-9,"C"
190 GPRINT GW-7,GH-9,"D"
200 RETURN

2017年9月15日 (金)

豊四季 Tiny BASIC でOLEDとグラフィック液晶の対応

現在取り組んでいる豊四季 Tiny BASIC for Arduino STM32、
OLEDディスプレイとグラフィック液晶対応を行っています。

そこそこ、動作するようになってきました。

Dscn7017

OLED (SH1106コントローラ I2C接続)ディスプレイ利用のデモ

TFTグラフィック液晶(ILI9341コントローラ SPI接続)パネル利用のデモ


表示系は、NTSC、ターミナルコンソール、グラフィック液晶、OLEDと複数対応するために
プログラム的には基本クラスを設けて、派生する形で各表示器対応の実装をしています。

ただし、クラス設計が今一だったため、実装が進むにつれて、
非常に分かりにくいプログラムになってしまいました。

思うがままに、機能追加していった割には、良く動いているなぁ



注文していた激安タクトスイッチが到着

Aliexpressで注文していたタクトスイッチが到着しました。
9/6に注文して、9/15に到着。最近配達が早くなった感じです。

Dscn7026


Dscn7028

2ピンタイプはブレッドボード上での利用に良さそうです。
送料込みで 4ピンタイプが100個 $0.79、2ピンタイプが100個 $1.57。

国内で買うと1個10円するのでかなりお得です。

2017年9月14日 (木)

Windowsストア版 Arduino IDEは自動アップデートされる

Windowsストア版 Arduino IDEを起動したら、いつの間にか 1.8.4にアップデートされていました。
常に最新版を利用したい場合には、Windowsストア版の方が良さそうです。


01

2017年9月10日 (日)

ベットに寝ているタマちゃん

ベットに寝ているタマちゃん。う~ん、デカい! 居られると寝れません。

Dscn6999

動物病院でも、「デカいなぁ、洋猫の血が混ざってるね」と言われています。

デカいだけあって怪力の持ち主。完全に閉まっているアルミサッシ窓を自力で開けて
ベランダに出ます。私が開けてもちょっと重く感じるのですが..

怪力により猫用爪研ぎ段ボールは、短時間でボロボロになり要交換。
幸いなことに、家の壁や備品での爪研ぎは全く行いませんが、やられたら被害は甚大!


2017年8月 6日 (日)

Maker Faire Tokyo 2017に行ってきました

8/5(土)、Maker Faire Tokyo 2017に行ってきました。
手作り感漂う素晴らしい展示品の数々...

楽しい創作には、思わず笑みがこぼれてしまいます。
出展者、見学者ともに楽しめる雰囲気の会場です。
個人的に興味を持った展示をちょっと紹介

安価なパイプオルガン、演奏パフォーマンスも楽しい
出来そうでで出来ない創意工夫も素晴らしい
Dscn6790

先行販売品等があり、スイッチサイエンスさんのブースは大人気

Dscn6772

会場を徘徊しているR2D2。半端ない完成度。家にこれが居ると楽しいだろうなぁ..

Dscn6795

サラリーマンが人工衛星を打ち上げるプロジェクトの展示
一般人でもお手軽に人工衛星を打ち上げられる時代が到来?

Dscn6779

最初の目標は、「地球をバックに自撮りをする」とのこと。
人工衛星から伸びたフレームの先にカメラが搭載されています。
制御やデータ送受信はアマチュア無線(430MHz帯)で行うそうです。

Dscn6777


ハッカブル位牌、確かにこんなお洒落な位牌もアリでしょ

Dscn6780

自動演奏時に鍵盤が動きます。演奏に動きがあると楽しさ2倍

Dscn6773


対応しい時を過ごすことが出来ました。

教育用の教材が多数ありましたが、ちょと高すぎかなぁ..
興味を持った子供がお小遣いで気楽に買えるようなって欲しいなぁ
特にソニーさんのあれは高すぎ..

2017年8月 5日 (土)

Blue Pill ボード(STM32F103C8T6) $1.58

Aliexpress、Blue Pillボード取扱い業者が増え、値段が下がっていますね。
原価はいくらなんだろう..

Free Shipping STM32F103C8T6 ARM STM32 Minimum System Development Board Module Forarduino
Blue Pillボード

とりあえず、2個注文しました。
安くて、小さくて、高性能とバランスが取れて良いボードです。

利用者も増えている感があります。

増えているといえば、最近のArduino STM32は更新の頻度も増えてます。
利用者増加に伴い、プルリクエスト・不具合の指摘も増えています。

機能追加・不具合対応等は大歓迎です。

早速更新すると、何気にメニューの設定項目が増えています。
オーバクロック 128MHz !?

04

2017/08/07 追記
Arduino STM32、最近の激しい更新ラッシュ、Wire(I2C)ライブラリに大きな変更があり
豊四季Tiny BASICでコンパイルエラーが発生するようになりました。

Wireライブラリはハードウェアバージョンとソフトウェアエミュレーションバージョンがあり、
デフォルトではWire.hがソフトウェアエミュレーションバージョン、HardWire.hが
ハードウェアバージョンを使うためのヘッダーファイルでした。

これが、最近の修正で、Wire.hがハードウェアバージョンとなり
ソフトウェアエミュレーションバージョンを使う場合はSoftWire.hを使うこととなります。

豊四季Tiny BASIC for Arduino STM32は、
これを機会に、Arduino STM32の安定版での利用をデフォルトとしました。

2017年8月 2日 (水)

豊四季タイニーBASIC for Arduino STM32 V0.84

現在手掛けている、豊四季タイニーBASIC for Arduino STM32.
次バージョン0.84の画面切り替えのデモ動画です。



左の画面はNTSCビデオ出力をキャプチャーして表示しています。
右の手前の画面はUSB端子経由のシリアル接続のターミナル画面です。
その奥の画面はシリアルポート経由でのターミナル画面です。
ターミナルソフトとしてTeraTermを利用しています。

シリアル接続のターミナル画面は921,600bpsで接続しています。

スクリーン編集可能な画面をNTSCビデオ画面から2つのシリアル接続の
ターミナルコンソールに切り替えることが出来ます。

豊四季タイニーBASIC for Arduino STM32.は、
4Kバイトまでのプログラムが作成可能なのですが、
4kバイトだとプログラム行数は数百行になっちゃいます。

NTSC出力の狭い画面ではプログラム作成・編集がちょっと辛いです。
また、変数がA-Zの26個なの大きいプログラムでは足りません。

そこで次バージョンの0.84では、現時点の利用面での不満を考慮し、
次の対応を行う予定です。
   1)シリアルコンソール画面にてプログラム作成が出来るようにする
   2)変数はA-Zの他に英字+数字の変数も利用可能にする

V0.84は取りあえずほぼ完成なのですが、
かなりの変更になってしまい、動作確認に時間がかかっています。

2017年7月15日 (土)

Windows 10でCH340を標準サポートになったっぽい?

先日購入した中古のWindows 10ノートパソコンにてArduino IDE 1.8.3インストールしました。

激安Arduino Uno互換機を接続するとUSB-シリアルCH340用のドライバーを
インストールすることなく、スケッチの書き込みができました。

以前は、ドライバーを入手して別途インストールが必要でした。

02

デバイスのプロパティを見ると、接続したタイミングでインストールされたようです。

01


それならばと思い、Silicon LabsのCP2102搭載のUSB-シリアルモジュールを繋げてみると、
やはりドライバーのインストール不要で利用出来ました。

02_2

デバイス マネージャーでの確認

03

いつから、標準対応になったのだろう..
それとも、夜中に小人さんさんがドライバーインストールしてくれたん?

2017/07/18 追記
念のため、他のWindows 10機で試してみました。
Arduino IDE等の開発環境をインストールしたことのないタブレットです。
Windows 10は最新版にアップデートしています。

04

CH340、CP2102搭載の搭載のUSBシリアル変換モジュールをUSBハブ経由で接続。
タブレットでもUSBに刺しただけで、ドライバーがインストールされました。
デバイスマネージャーで見てもちゃんとCOMポートとして認識しています。

05

やはり、わざわざドライバーを入手する必要はないみたいです。

 

2017年7月 5日 (水)

amazonで中古のノートパソコンを購入

Linuxが動く環境が欲しいと思い、中古のノートパソコンを購入しました。
「店長お任せ 中古 パソコン ノートパソコン 高速Corei5 搭載 メモリ4GB HDD250GB
DVDマルチドライブ 無線LAN付 キングソフトOffice Windows10 Home64bit A4 ワイド大画面」

という製品です。この名目では複数の販売業者がついているようですが、
ワジュンPCから購入しました。送料・税込で14,500円でした。

01

んで、到着したパソコンがこちら。

Dscn6708

中身は、ACアダプターとPC本体、納入書だけでマニュアル類はなしでした。

Dscn6709

製品としてはNECのノートパソコンで、
VersaPro VY24G/D-9という製品の中古です。
スペックは、CPU Intel Core i5 520M、RAM 4Gバイト、HDD 320Gバイトです。
2010年1月頃販売された製品のようです。

起動してみると、Windows 10 Pro 64ビット版がインストールされていました。
意外とサクサク動きます。
PCMICAカードスロットがついていたので試してみると利用出来ました。
他に利用できるポート類は、
USB2.0 x 5、VGA、DHMI、RS232C、パラレルプリンターポート、DVDドライブ
です。

問題点としては、
SDカードスロット無し、無線LANは内蔵ではなくUSB接続のドングルが刺さって
いました。画面解像度が1280X800とやや狭い。
まあ、これくらいはよいでしょう。
バッテリーはさすがにへたれていますが、充電は出来き1時間程度なら稼働出来ました。UPS代わりには使えます。

また、ECOボタン利用のためのドライバー類がインストールされていないので
NECのサイトからダウンロードしてインストールしました。

Dscn6728

中古で、7前の製品にしては状態が良いです。ディスプレイ、キーボードはきれいです。

Dscn6745

ただし、天板が少々傷があります。まあ、これくらいならOKでしょう。

Dscn6739

とりあず、ダイソーのひっかき傷防止シートを貼って傷を目立たなくしてみます。
ざらざらの半透明色なので傷がある程度隠せます。
このシート、ラベルシール上に張って剥がれ防止、汚れ防止等、いろいろ使えて便利です。

Dscn6742

天板に貼り付けた後の状態(シート自体は全然目立たないです)

Dscn6749

写真ではわかりにくいですが、
傷が目立たなくなり、安っぽいプラスチックからメタリックっぽい感じにグレードアップしました。
手触りもざらざら感でしいていい感じです。

さて、結論としてはこのPC、意外と使えます。
Mini PCI-Eスロットが2つあり、試しに余っていた64GバイトのeMMCを指してみたら
認識して利用出来ました。

HDDのOSをeMMCに移行して利用したところ、ちょっと快適になりました。
メモリの上限が製品仕様的には4Gバイトまでのようで、これ以上の増設はダメ見たいです。

試しに、刺さっていた2Gバイトのメモリーカードの1枚を4Gバイトに変えて試してみると、
BIOSレベルでは6Gバイトと認識したものの、Windowsの起動途中でOSが落ちていまいました。残念。

Windows 10を潰すのももったいないので、Ubuntuとのデュアルブートで使うかと思います。

細かい点で製品説明と異なる(無線マウスが付いていない、DVDドライブがDVD-ROMだった)ので、

ワジュンPCさんに連絡すると、追加で無線マウスと交換用のDVDマルチドライブを送ってくれました。

この値段でここまで使えれば、お得ですね。

 

 

より以前の記事一覧