夢色☆あんどろいど

中華パッド&スティック、Raspberry Pi、Arduinoなど、怪しいデジタルガジェット探偵団!!

Arduinoで超ミニBASICパソコンが作れる!(その1~準備、コンパイル、書き込み)

当面IchigoJamメインで行く、と言いつつ、内心では「ArduinoがIchigoJamみたいに使えたらな~」と思っているのですが、「これなら使える!」というものを見つけました!

弘前大学の小山先生という方が、「HalfByte TinyBASIC」をベースに独自に拡張されたBASICインタプリタを公開、配布されているもので、WEBサイトにはそれを利用したプログラム開発と電子工作がひと通り学べる教材が掲載されていて、学習用には非常にありがたい存在だと思います。

WEBサイトはこちら↓
http://siva.cc.hirosaki-u.ac.jp/usr/koyama/avr/tinybasic.html

PCを介さず完全なスタンドアロン機としてプログラムの作成、実行が可能な点はIchigoJamと同じです。ただ、搭載しているマイコンチップの容量が小さいため、プログラムエリアや保存出来るプログラム数、テレビでの表示文字数等が少ない点がIchigoJamとは異なる点ですが、こちらは電子工作の学習に主眼を置いたもので、ブレッドボード上で生パーツを扱うのには適しているように思います。マイコン自体が5V駆動なのも初心者には有り難いです。

早速、試してみました! 使用するにはArduino IDEを使ってソースコードをコンパイル~書き込みをする必要があり、いくつかのライブラリを入手、設定をしないといけませんが、上記WEBサイトの「(付録1) tinyBasicのArduinoへの書き込み」の説明の通り作業を進めればすべてのオプションで問題なく書き込むことが出来ました。

なお、上記WEBサイトの説明ではArduino IDEが1.8.2、ターゲットボードをArduino NANOとしていますが、現時点で最新の1.8.5で、Arduino UNO互換機でもフルオプションで問題なく書き込めました。(Leonaldoはメモリ不足との情報あり)
ただ、説明が入門者というより指導者向けに書かれているようで、私のような初心者は多分この辺で引っかかるな…というポイントがいくつかありましたのでここで補足しておきたいと思います。

■基本的な仕組み
ソースコード冒頭の #define TVMODE n(0~4) を選択(書き換え)することによって、5種類のシステムに作り分けることが出来ます。モード0が最も基本的なマイコンタイプ、モード4がスタンドアロンで動くパソコンタイプ、モード2が全部入り(フルオプション)といった感じです。2と4はPCを介さず単体でプログラム開発、実行が可能です。また、すべてのタイプでPCのターミナルソフトを介した操作ができます。作成可能なプログラムのサイズはタイプによって異なり、1本だけ保存出来ます。保存したプログラムは起動時に自動的に実行されます。

■まず最初にすべきこと
ここから具体的にボードへの書き込み作業について補足したいと思いますが、ここではArduino IDE(1.8.5を想定)が既にインストールされ、Arduinoボードが設定、認識されて、Lチカ位は軽く終わっていることを前提とします。
ここでまず行うことは作業フォルダの確認です。ソースコードやライブラリの作成に場所を知っておく必要があるからです。IDEの[ファイル]>[環境設定]の[設定]タブの最上段「スケッチの保存場所:」に記載されています。通常はマイドキュメントのArduinoフォルダが指定されていると思います。

■ソースコードを入手する
上記WEBサイトの「(付録1) tinyBasicのArduinoへの書き込み」の6にソースコード"tinybasic20170428.zip"のDLリンクがありますのでクリックしてDLし、解凍して出来た"tinyBasic"フォルダをフォルダごと、上で調べた作業フォルダほ移動しておきます。

■必須のライブラリデータを用意する
ここからはライブラリの設定作業に入ります。「ST7032」「NeoPixel」が必須となっていますのでGitHubのWEBサイトからDLします。ページを開くと「ZIPファイルなんてないやんか…」と戸惑うと思いますが、ペーシ右上方の[Clone or Download]をクリックすると下に[Download ZIP]というボタンが出てきますのでそれをクリックすればDL出来ます。
DLしたデータを解凍すると、それぞれ"arduino_ST7032-master"と"Adafruit_NeoPixel-master"いうフォルダが出来ますので、フォルダごと作業フォルダにあるlibrariesフォルダに移動します。
テレビ出力やキーボード接続を行わないモード0でインストールする場合は設定はここまで。Arduino IDEを起動させてボード設定を済ませたら、ソースコードを開いてコンパイル>書き込みをします。ソースコードの書き換えは不要です。

A2018013004.jpg

■TVoutの設定
モード1~4で必須です。ライブラリデータの入手はArduino IDEの[スケッチ]>[ライブラリのインクルード]>[ライブラリの管理]で行います。一覧表が表示されますが膨大な上に動作が緩慢で探しにくいと思いますが、一覧表右上の検索ウィンドに"TVout"と指定してやれば簡単に見つけられます。
見つけたらクリックで選択状態にして[インストール]を押します。ただ、このままではまだ使えないので、小細工をするために作業フォルダ>librariesフォルダ>TVoutフォルダと開いて、その中にTVoutfontsというフォルダがありますのでそれをコピーして、librariesフォルダ直下に置きます。続いて、上記WEBサイトの7にある"video_gen.zip"をDLして解凍し、出来た"video_gen.cpp"を作業フォルダ>librariesフォルダ>TVoutフォルダにある"video_gen.cpp"と入れ替え(上書き)ます。
モード1、3の場合は設定作業はここまで。ソースコードの冒頭行を #define TVMODE 1 または #define TVMODE 3 に書き換えてコンパイル~書き込みを行います。

A2018013003.jpg

■PS2Keyboardの設定
モード2、4の場合はPS2Keyboardライブラリも必要となりますので、上記TVoutと同様の方法で取得します。こちらもこのままでは日本語キーボードが使えないので、まごころせいじつ堂さんが作成された日本語キーボード対応データをGitHubからDL(Download ZIPボタンがページ右側にあり)、解凍して得た"PS2Keyboard.cpp"と"PS2Keyboard.h"を作業フォルダ>librariesフォルダ>PS2Keyboardフォルダにある同名ファイルと置き換え(上書き)ます。
これで設定作業は完了。ソースコードの冒頭行を #define TVMODE 2 または #define TVMODE 4 に書き換えてコンパイル~書き込みを行います。

書くとややこしそうですが、実際にやってみると作業自体は単純です。本当は、ソースと修正済みライブラリ一式をワンパケにして作業フォルダにポン!と行けたら簡単なんでしょうけど... ワークショップとかをやるならそうすべきでしょうね! それにしても、UNOやNANOでは最大規模のプログラムをコンパイルしたり書き込むのは、なんかいかにも難しいことをやってる感があって、ましてや一発でコンパイルが通った時は気持ち良いです!

↓ターミナルソフトを介して無事に起動するとこういう初期画面が出る。モード2のフルオプションのものなので使えるメモリが少ない!
A2018013001.jpg

↓お約束のLチカをやってみた...
A2018013002.jpg

さて、今回は長くなったのでここまで。ターミナルソフトの設定は次回といたします。


リハビリはIchigoJamから...

前回の更新から2年以上経ってしまいました!
お正月に懐かしい人と会ってマイコン遊びの話をしたら、久しぶりに触ってみたくなりましたが、ウチのPCはOSの更新に伴って、マイコン関係の開発環境がすべて解消されていて、何もかもすっかり忘れ果てている自分に気付いて呆然としてしまいました~
そんな時、役に立ったのがなんと自分のブログ! 参照サイトの情報や注意点等が自分の身の丈に合わせて書かれているのでわかりやすいのです。多少面倒でもこういう記録を留めておくのは他でもない自分自身のために有用なのだと確信した次第です。

そういうわけで現在、開発環境を再構築中の段階で、とりあえずArduinoとIchigoJamだけは動かせる環境を整えました。後はAVRの生チップやMBED系が残りますが、当分の間はリハビリ?のためにIchigoJamメインで行こうかな…と考えています。特に開発課強めいたものが不要ですし、2年前とは違って今は情報も非常に豊富で、電子工作の実験用としては最適なように思います。

↓手持ちのIchigoJam。純正機はPS/2ソケットの付いた初期型。私の場合、電子工作の実験用でPCを介して操作しますので、ミニブレッドボードで作った自作機の方が使い勝手が良かったりします。IchigoJam BASICを最新の1.2.3にアップデートしました。

A2018011301.jpg

↓自作機と言ってもマイコンチップだけ! USBシリアル変換モジュールは非推奨とされているPL2303HX搭載品ですが、今のところは特に問題は出ていません。
A2018011302.jpg

PCからの操作には、従来、「IJKB」というソフトを使っていましたが、「IJUtilities」というソフトを見つけて使ってみました。さすがに2年という年月の力は大きく、非常に使いやすいソフトに仕上がっています。ファームの書き換えも出来るようですが、先に「Flash Madic」でやってしまったのでまだ試せてはいません。

A2018011201.jpg

↓リアルタイムでモニター出力をエミュレートしてくれます。画面が大きくて動作も速い感じ。
A2018011202.jpg

↓アクションゲームは操作が追いつかないが、安物のシリアルコンバータのせいかも知れない...
A2018011203.jpg


ESP8266(ESP-01)を買ってみた

このところマイコン遊びはすっかり停滞してしまっていますが、ブツだけはせっせと仕入れ続けていて、「積ん読」ならぬ「積ん板?」状態で、動作テストもしていないパーツが増える一方です。

そんな中で、「遂に…」と言うか、「とうとう…」と言うか
、今年のこの世界の話題性ナンバーワン!と言っていい「あのモジュール」を買ってしまいました~!
a15110401.jpg

買ったのはESP-01です。ピンのピッチがDIPであることを評価したからです。GPIOは実質3本しかありませんが、ジャンプコードが直結出来るのは何にもまして大きいです。
個人輸入モノなので技適はありませんが、同じチップを使った技適を済み製品があるWi-Fiモジュールなので、テスト使用程度ならご近所に迷惑をかけることもないでしょう。

調べてみると、ESP8266自体がそこそこの性能を持つマイコンチップであり、表面的なスペックだけで言えばCortex M3/4クラスに近いもののようです。Arduino IDEのスキームを間借りする形の開発環境も存在していて、使いこなせれば大化けする可能性大でしょう。まあ、初期状態ではシリアルコンバータ経由のWiFiモジュールとして機能するようになっていることから推して、メーカとしては「プログラマブルな無線LANモジュール」と位置づけているんだろうと思いますが。

a15110402.jpg


Arduino Nano互換機が2ドル割れ!

6月半ば頃からペーパークラフト制作の方が忙しくて、こちらの更新がついつい滞りがちになっております。
以前のエントリでご紹介したEasyCAPもとっくの昔に届いていて、レビューを書かねば…と考えてはいるのですが、なかなかアタマの切替が出来ません。
そんなワケでしばらくマイコン関係の情報から離れていて、久しぶりに中華Arduinoの値段を見たら... 何とNano互換機が2ドルを割って1.95ドル! とうとうここまで来たか…という感じです。

a15072401.jpg

つい3ヶ月ほど前に同じサプライヤから同じ物を2.52ドルで買いましたが、品質的には問題なし、ハンダ付け済みのヘッダピンがやや内側に寄りがちかな…という印象はありましたが、自分で付けるともっと悲惨なことになることもありますので、最初から付いているのは有り難い... これはお買い得ですね!

それにしても、いくら円安のご時世とは言え、現在のレートにして250円ほど、もちろん送料込みの金額ですので、国内最安のATMega328Pの生チップよりも安い勘定になります。ついに生チップよりも安い単体動作可能なArduino出現!ということで、2ドルの壁を越えた意義は大きいように思います。


ついに中華Arduino(UNO)互換機が3ドル割れ!

とうとう2.9ドルになってしまいました~!
a15061201.jpg

こちらのサプライヤは以前、2.52ドルのNANO互換機(現在は2.50ドル)を買ったことがありますが、発送はトラッキング、宅配サービスのない一般の航空便だったものの、予想していたより早く2週間ほどで届き、商品も至極まともでした。
同一品かどうかは不明ですが、同じタイプのUNO互換機を使った経験からは、USBのコネクタがちょっとキツいとか、ピンソケットの立て付けがちょっと甘いとかといった些細な難点はありましたが、基本的には問題なく使えるレベルでした。

それにしても、ATMega328PとCH340Gのコストだけで軽く2ドルは超えている?と思うのですが... この辺のコスト構造はどうなっているのでしょうね~


« 新しい記に行く  | ホーム |  古い記に行く »

文字サイズの変更

プロフィール

よっしい

Author:よっしい
FC2ブログへようこそ!

最新記事

カテゴリ

未分類 (0)
ニュース (10)
スマートフォン (34)
中華パッド/タブレットPC (104)
ミニPC (25)
マイコン (71)
CNC機器 (16)
アクセサリ (14)
アプリ (9)
実験 (7)
工作 (13)
その他 (12)

月別アーカイブ

最新コメント

リンク

このブログをリンクに追加する

検索フォーム

RSSリンクの表示

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

FC2Ad

Template by たけやん