メイカーフェア東京 2022
久々に見るビッグサイト。
前回来たときは8月でしたが、それより1ヶ月遅くの開催なので朝晩はマシになったとはいえ、やっぱり暑かった・・
そして、メイカーフェア自体も2019年と比べて、コロナ禍のためか会場の規模は半分くらいに縮小されている感じですね。
ただ、会場の熱気というか人の多さは以前と変わらずで、人気のブースではなかなか話が聞けませんでした。
というわけで、以下会場で見かけた展示を写真とコメントをつらつらと書いていきたいと思います。
予告状作成マシン。
昔、テレビなどで新聞の文字をくりぬいて脅迫状を送りつけるみたいなシーンがよくありましたが、あれを自動で作ってしまおうというおバカ系(褒め言葉)マシン。
新聞から目的の文字を切り出して、ポストカードに貼り付けてくれます。
平面ディスプレイを上下に素早く動かせば3D表示ができるという展示。
秒間7回くらい上下しているそうで、実物は写真で見るより立体的に見えました。
NANDだけで作ったという16ビットCPU。
汎用ロジックだけで作るのも大変なのに、さらにNAND縛りというのがすごい。
こちらは機械式リレーでできたCPU。
カチャカチャという音が心地よいです。
鉄道模型を電子制御するという展示。
なんだけど、Altair8800の互換機にどうしても目がいかないという罠(笑)
プレステ2をそのまま搭載したテーブル筐体型ゲーム機。
質感とか随所にこだわりがあって、すごくよくできてます。
シャア専用キーボード。
キートップの縁が色あせているのは、わざとそういう加工をして使い古した感を出してるそうです。
今年は自作キーボードの展示が少なめだった気がします。
鉄道の行き先表示器の模型(?)
こういうの作ってみたくなりますよね。
自作ニキシー管。
思ったより大きかったけど、うちにあるロシア製ニキシー管より遙かに綺麗。
ニキシー管を自作するというのがすごい。
北海道のインターステラテクノロジーズの展示。
ロケット打ち上げ時につかった制御盤?
すごく人気で残念ながら話は聞けませんでした。
自作チップマウンタ。
A4くらいのサイズですが、ちっちゃな部品を基板上に正確に載せていくとこをは見ていて飽きないです。
絵がブロックとチェーンで囲まれる事で守られるという、手前の本をあわせて一体となるアート。
ブラックだなぁ(笑)
NHKの魔改造の夜に出ていた、幅跳び掃除機マシーンなども展示されていました。
えんぴつ曲げマシーン。
えんぴつの根元を持って揺らすと、曲がって見えるというのアレを再現します。
こちらは動画でも。
(実際はもっと曲がって見えるんですが)
他、もっといろいろと展示は見てましたが、今回はこのへんで。
しかし、朝から終了まで1日かけてじっくり見て回ったつもりでしたが、ツイッターとかでメイカーフェアを検索してみると、まだまだ見ていない展示が結構あるなぁ。
Maker Faire Tokyo 2018
8月始めに東京ビッグサイトで開催されたメイカーフェア東京に行ってきました。
以前より会場は広くなった気がするけど、人も増えてましたね。
というわけで、見てきた展示のいくつかを紹介します。
なお、説明は私が話を聞いて理解したつもりの内容なので、間違ってるかもしれません。
また、分かる限り出展者様情報も載せましたが、分からないところもあります。
その点ご了承下さいませ。
機械式時計の精度アップ
機械式の振り子時計の精度を上げる装置。
下部に設置した電磁石で振り子の周期をコントロールして時刻を調整してます。
時計自体には手を入れてないらしくて、動力はゼンマイのまま。
なので、家に振り子時計があるなら、下に置くだけで使える・・・のかな?
木楽らぼ様
(http://kirakulabo.blogspot.com/)
タヌキが化けるお社
頭に紙を切り抜いて作った葉っぱを貼り付けてお賽銭を入れると、ピョンと跳ね上がってたぬきが化けます。
文章だとよく分からないと思いますが(動画を撮っておけば良かった)
貼り付けた葉っぱを画像認識して何に化けるかを判断していて、その形も機械学習していくので、ある程度適当に切り抜いてたものでも大丈夫なんだそうな。
お社の造形の完成度が高いのもポイント。
ワントゥーテンドライブ様
(http://www.1-10.com/drive/)
原寸大IV号戦車
大迫力のIV号戦車。
軽自動車のエンジンで実際に走る事ができるみたいですが、さすがに会場では動いてない。
IV号戦車と言えば例のアニメが思い浮かびますけど、そのネタもやっぱりありました。
わくわくメイカー様
(https://twitter.com/wkwk_maker)
4bit CPU TD4
今年も「CPUの創りかた」の4ビットCPUを作成されている方が。
赤い基板と、ROM(と言ってもディップスイッチですが)部分がカートリッジ式になっていて取りかえ可能なのがいいですね。
配線の多さで実作は諦めたモノとしては、この基板は欲しいなぁ。
TOMOMI RESEARCH様
(http://www.tomomi-research.com/)
サバゲでドミネーション
コンピュータゲームのFPSでよくあるドミネーションをサバイバルゲームで行うためのデバイス。
(ドミネーション=要するに陣取りゲーム)
プレイヤーは電子タグを持って陣地を占領しに行って、写真にある子機が無線で電子タグを検出して、どのチームが陣地を制圧してるかを判定する。
で、そのデータを親機に送ることで全体状況をリアルタイムに可視化できるようにしてるんだそうな。
子機には制圧メーター(?)がついていて、FPSと同じようにグラフが変わっていくので緊張感ありそうですね。
tande lab.様
(http://tande.jp/lab/)
ビール適温化装置
ビールをヒートシンクなどで冷えやすくして、更に適温になったらスマホに通知してくれる装置。
冷やす機能は無いので、冷やす時は装置ごと冷蔵庫に入れるんだそうな。
(逆に冷えすぎから適温にすることもできる)
ビールが冷えてなくて冷凍庫に放りこんだはいいけど、そのまま凍ってしまう悲劇を防げる素晴らしい装置ですねえ。
STEA project様
(https://twitter.com/baikeido)
畳ギター
畳で表装されたギター他の楽器たち。
ギターの表装を畳にするメリットはあるのか聞いてみたら、特に無いというか逆に音がこもるデメリットがあるそうな(笑)
あくまで畳をピーアールすることが目的なので、その辺はあまり問題にしないという割りきりの良さ。
確かにインパクトはでかい。
これらの楽器を使ったコンサートなども行ってるそうです。
どうでもいいですけど、出展者名はYAMAHAの元の名前のもじり?
日本畳楽器製造様
(http://www11.plala.or.jp/nishiwakitatami/nihontatamigakkiseizou.html)
卓上アーケード風ゲーム機
NEOGEO mini のような小型の卓上アーケード筐体。
ドリームキャスト対応ということで、背中にドリキャスがそのまま収納されております。
そして、なぜかスティックなのにセガラリー。
ちなみにセガの人も見に来てくれたそうで、半公認?(笑)
mono2qryの部屋様
(https://ameblo.jp/mono2qry)
PC-8001 Bluttooth キーボード
PC-8001の実機を使ったBluetoothの無線キーボード。
マザーが死んでたPC-8001のキーボード部分だけ利用して作成したそうです。
PC-8001でiPadを操作しているような錯覚が味わえます。
そして、意外と打ちやすい。
ニキシー管風時計
アクリル板で作ったニキシー管風の時計。
0~9までの数字を彫ったアクリル板を重ねて、表示する部分にだけ上下からLEDを当てて数字を表すという仕掛け。
輝度が足りないという事でしたが、暗いところで見るとなかなか綺麗でかっこいい。
自作キーボード
今回のメイカーフェアでは自作キーボードがたくさんありました。
左右分離式やらカラフルなものとか。
キースイッチもいろいろあるようで、本当に種類が多い。
マス目上にキーが並んだものが多いのが気になりましたが、馴れるものなんでしょうかね?
他もいろいろ見て回りましたが、とても全部は紹介しきれないのでこの辺で。
しかし、一通りの展示は見たつもりでいたんですが、後からSNSとか読んでると見覚えのないものがちらほら。
そんなのどこにあったんだ・・・。
来年はもっとじっくり見て回ろうと思った次第です。
Maker Faire Tokyo 2016
またまた久々のブログになってしまいましたが、日曜日に東京ビッグサイトで開催された「メイカーフェア東京」へと行ってきました。
メイカーフェアというのは、個人や団体等のメイカーが集まって作品を展示・発表するという、あのオライリーが主催するモノ作りのイベントです。
会場はこんな感じ。
この写真を撮ったのは開場してすぐなので人が少ないですけど、お昼くらいからはどっと人が増えて結構な混み具合。
こういうイベントでは、メイカーさんに作品についてイロイロ話を聞くのが面白いのですけど、混んでくるとなかなかそれが出来なくなるのが残念。
というわけで、見て回った作品をちょっとだけ紹介します。
かの名著「CPUの創りかた」に登場するCPU「TD4」を実際に作って展示されてる方がいました。
汎用ロジックICで出来た4ビットCPUです。
下の方にある16個のDIPスイッチがROM(16バイト)なんですよね。
電飾が施されたヨーヨー。
残像を利用して綺麗に模様が浮かび上がります。
左側はアニメーションでミクさんが動くという、さらなるすぐれもの。
アナログメーターで出来た時計。
レトロな雰囲気が良いのもありますが、大きなメーターのおかげで見やすいという実用性もありますね。
鉄球が転がって行くのを眺める10センチ四方くらいの装置。
(ピタゴラ装置・・とはちょっと違う。こういうのは何と呼べばいいんでしょうね?)
しかし、この手の物は見ていて本当に飽きない。
動画でないと魅力がイマイチ伝わらないかもですけど。
電子箱庭「のらぴか」
小さな箱にスイッチやらセンサーがついていて、押すとLEDが点いたり音が出たりします。
それだけと言えばそれだけなんですけど、これがカチカチいじってるだけで楽しい。
8インチのフロッピーディスクドライブで音楽を奏でるという作品。
上部にはハードディスクもついていて、両方で演奏してました。
他にもLEDで光るアクセサリーが売っていたり、VRでドローンの操縦が疑似体験できたり、実用的なものからジョークガジェットまで、本当にたくさんの出展がありました。
いやぁ、面白かった。
しかし、こういうのを見ていると、自分でも何か作りたくなってきますねぇ。
IchigoJamで遊ぶ・その6 「7セグで3桁表示する」
ひさびさのIchigoJamネタです。
前回に引き続き7セグLEDを使うんですが、今回を桁を増やして3桁にチャレンジします。
3桁7セグLED
今回使うのは、こういう3桁表示の7セグLED。
何故3桁という中途半端な桁になったのかというと、ちょうどこの部品が手許にあったから。
裏はこんな感じで、ピンが12本あります。
7セグが3つのわりにピン数が少ない気がしますが、実はこれはダイナミック点灯用だから。
ダイナミック点灯とは
ダイナミック点灯というのは、LEDなどを高速に点滅させて使う方法のこと。
点滅スピードが速いと人間の目には普通に光ってるようにしか見えないため、点けっぱなしにするより消費電力を抑えたりできます。
(多少はチラチラしますが)
今回の場合のダイナミック点灯は、1桁目から3桁目に順番に高速に点灯させることによって、瞬間的には1桁しか点灯してないけど、あたかも3桁同時に光っているように見せるというもの。
こうすることで使用するピンを減らせて、マイコン等につなぐ際にポートの節約が出来るというワケです。
なぜピンが減らせるのかというと、内部の配線がこういう風に各桁で共通となっているため。
(図ではaの配線のみで他は省略してます)
信号の出口(図の上側)は別々になっているので、ここを制御することで点灯する桁を選べる仕組みです。
上側を3つとも接続すると同時に点灯できますが、表示内容が全部同じになってしまうのであまり意味が無いです。
ちなみに前回のように点滅させずに点灯させたままなのは「スタティック点灯」と言います。
目の錯覚を利用するなんて邪道、スタティック点灯こそ正義・・・とかいうのであれば、前回使った1桁のモノを3つ使えばできますが、配線も大変そうだし、ポートが足りなくなるのも何とかしないといけません。
なので、今回はダイナミックに点灯させます。
ダイナミック点灯でもポートが足りない?
前回、7セグを利用する時のポートを4つに節約できましたが、それでも残りは2ポート。
それでどうやって3桁を制御するのか?
まぁ、そこは例によって便利な汎用ロジックICがあるのです。
今回使うのは74HC138、「3to8 ラインデコーダ」というもの。
(ピンセットでつまんでいるのは特に意味はない)
これは3ビットの入力信号から、8ビットのうち1つを選択した出力が得られるというもの。
真理値表はこんな感じ。
(フェアチャイルドのデータシートより引用)
左側のG1、G2というのはとりあえず無視して、A・B・Cが「X」でない3行目以降に注目。
このA・B・Cが入力する3ビットの信号で、この値によってOutputsのY0からY7のどれかが「L」になってます。
「L」とはLowのことで、電圧が低いことを表します。
今回は電流の出口側で桁を制御したいので、選択したビットの電圧が「L」になると電流が流れて好都合です。
(電流は電圧の高い方から低い方へ流れるため・・・と、理解してますが、厳密には違うかも)
しかし、入力に3ビット必要なら、やっぱりポートが足りない?
かと言うとそういうことは無く、今回使いたいのは3桁だけなので、真理値表でいうところのY0~Y2を制御できれば十分。
なので2ビットだけを使って、残り1ビットは「L」に固定してしまえば問題なしです。
実際に接続する
説明はこれくらいにして、実際にIchigoJamにつないでみましょう。
回路図?はこんな感じで、だんだんややこしくなってきました。
パズルめいてきたブレッドボード上の実装。
いかにヒモ状のジャンパーワイヤーを使わずに作れるかを考えるとちょっと楽しい。
(全然減らせてないですが)
それはさておき、この接続では出力する6ビットのうち、上位2ビット(ポート5と6)で桁の選択、下位4ビットが表示する値になります。
「5」は2進数で「000101」なので、「out 5」とすると1桁目が「5」になります。
2桁目を点灯させようとおもえば、表示させる値に2進数の「010000」、すなわち16を足せばOK。
「OUT 19」だと、2桁目が3になります。
同様に3桁目の場合は32をプラス。
「9」を3桁目に表示したいなら、「OUT 41」。
なので、以下のようなプログラムを実行すると。
1 2 3 4 |
10 OUT 5 20 OUT 19 30 OUT 41 40 GOTO 10 |
3桁表示できました。
といっても、固定値を表示しただけなので、次はもうちょっとまともな表示を行ってみたいと思いますが。
ところで、このプログラムを実行すると、3桁目の「9」が若干明るく見えます。
これは、3桁目の表示後にGOTO文を処理するため、その分他の桁より長く光ってるからでしょう。
明るさを均等にするには、以下のようにGOTO文の前に全桁を消灯すると良いかと(40行目)。
1 2 3 4 5 |
10 OUT 5 20 OUT 19 30 OUT 41 40 OUT 10 50 GOTO 10 |
「OUT 0」では、1桁目に0が表示されてしまうので、何も表示されない値である「10」を1桁目に出力してます。
ちなみに、40行目を「OUT 0」にすると、「839」と表示されてるように見えます。
(そして8だけ微妙に明るさが違う)
というわけで、たぶん続きます。
IchigoJamで遊ぶ・その5 「7セグディスプレイを使う」
なんだか久々になりましたが、今回は7セグメント(略して7セグ)LEDを使ってみたいと思います。
ええ、また光りモノですとも。
7セグというのは、こういう「日」の字型になっている、よく見かけるお馴染みのやつです。
光る棒の部分が7本あるので7セグメント。
小数点のドット部分を入れると8セグメントですけどね。
(ドットのことは忘れて)これを制御するには7本の信号が必要になるんですけど、ここで困った問題が。
Ichigo Jamには出力ポートが6つしかない!
さて、どうしましょう?
※ Ichigo Jam も日々進化しており、新しいバージョンでは出力ポートはもっと増えています。
7セグメントデコーダを使う
しかし、世の中には便利なものがあるものです。
汎用ロジックICの中に、その名も7セグメントデコーダという7セグ用の「74HC4511」というICがありますので、これを使いましょう。
これが「74HC4511」です。
足が16本あります。
(日立(現ルネサス)のデータシートから引用)
構造はこんな感じになっていて、左側のABCDの4ビットを使って0から9の信号を入力すると、それに対応した7セグ用の信号が右側のa~gから出力されます。
入力が4ビットなので、これを使えば4本の出力ポートで7セグ表示が可能になるというワケです。
他に、このICが動作するためには電源も必要なので、VCCには電源を接続します。
LT,BT,LEといったのは制御用?なので、今は特に気にしなくても良いかと。
ちなみに、10以上の信号を入力(4ビットなので15まで入力可能)した場合、全てのセグメントが消えて何も表示されません。
BASICで制御する
というわけで、74HC4511と7セグLEDをこんな感じで接続します。
LT,BT,LEは、VCCやGNDに固定します。
(本当は他にも抵抗やらコンデンサやらを追加した方がいいんだと思いますが省略しています)
あとは、表示したい数字をOUT命令に指定すれだけでOK!
OUT命令はパラメータが1つだと、2ビット化して各ポートに出力してくれるためです。
早速、「OUT 1」を実行してみると・・・
この通り。
「OUT 9」だとこうなります。
下の横棒が光らないデザインですね。
「OUT 10」とすると何も表示されません。
プログラムでグルグル回してみます。
1 2 3 4 5 |
10 FOR I=0 TO 9 20 OUT I 30 WAIT 30 40 NEXT 50 GOTO 10 |
電子ルーレット
グルグルカウントするだけでは面白くないので、電子ルーレットみたいなのを作ってみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
10 REM INIT 20 M=0 30 W=0 50 REM RANDOM 60 A=RND(10) 70 IF R=A THEN GOTO 60 80 R=A 90 OUT R 100 IF M=0 AND BTN(0)=1 THEN M=1 110 IF M=1 THEN W=W+1 120 IF W>20 THEN M=2 130 WAIT W 140 IF M<>2 THEN GOTO 60 150 REM RESULT 160 FOR I=1 TO 5 170 OUT R 180 WAIT 30 190 OUT 10 200 WAIT 30 210 NEXT 220 GOTO 10 |
本体のスイッチを押すとルーレットが遅くなっていき、最後に出目の数値か点滅します。
数値はカウントアップではなくランダムです。
「ルーレットなら、別に7セグ使わなくても画面で表示すればいいじゃん」 とか言われそうですけど、それを無理矢理作るのが電子工作なのです。
・・・ほんとかよ(笑)
というわけで、ではまた。
IchigoJamで遊ぶ その4 アナログ入力で温度計
IchigoJamには(あのRaspberry Piにも付いていない)アナログ入力が備わっていて、0V~3.3Vの範囲の電圧を0~1023の数値として取得できます。
今回はこのアナログ入力を使ってみようと思います。
アナログ温度センサで温度を測る
見た目はトランジスタみたいですけど、温度センサです。
(この形だとトランジスタだと思っていた時期が私もありました)
これはTMP36というアナログ温度センサで、この三つある足のひとつから、温度が25℃の時には750mVが出力され、そこから温度が1℃変わる毎に電圧も10mV増減します。
なので、この足をIchigoJamのアナログ入力につないで電圧を測れば、温度が分かるというわけです。
(ちなみに残り2本の足は、電源とGND)
例によってつなぎ方はこんな感じ。
TMP36のVoutというのが温度の出力で、Vsが電源です。
今回はIN2のアナログ入力を使うので、VoutとIN2をつないでます。
実際の接続はこんな感じ。
アナログ入力の値はANAという関数で調べられるので、早速取得してみます。
IchigoJamのアナログ入力は0~3.3Vが1024段階なので、1段階あたりは 3.3V ÷ 1024 ≒ 0.0032V =3.2mV。
アナログ入力の値が225ということは、3.2mvをかけると720mv。
25℃の時の750mVとの差は-30mVなので、温度は22℃という事になります。
若干肌寒い。
温度計で測ってみると22.8℃。
まぁまぁ近い値でした。
温度計プログラム
しかし、いちいちアナログ入力の値を調べて計算するのは面倒なので、こういうことはコンピュータにやらせましょう。
1 2 3 4 5 6 7 |
5 CLS 10 O=ANA(2)*32-5000 20 LOCATE 10,10 30 PRINT O/100; 40 PRINT "."; 50 PRINT O%100/10 60 GOTO 20 |
20行目、IchigoJamは小数を扱えない(たぶん)ので、アナログ入力の値に3.2mV分の32を掛け、500mV分の5000を引いておきます。
この値を100で割ると温度が求まるハズ。
40行目や60行目で、100で割ったり余りを求めたりして小数1桁まで表示してます。
温度の数字以外何も出さない、手抜きプログラムです。
では、実行~。
速すぎっ!
こんな温度計はせわしなさすぎる。
というわけで、途中にウェイトを入れて調整。
1 |
55 WAIT 10 |
まだ速い気もしますけど、そこはWAITを調整かな。
単にWAITを入れるだけではなくて、待ってる間にも値を測定し、それを平均化したものを表示するのが良いかもしれない。
温度計の分解能
温度計を動かしていると、値はころころ変わるわりに、小数部分は同じ数字ばかり出てきます。
これは、IcihgoJamのアナログ入力の分解能が約3.2mVであるのと、温度センサの1℃あたり10mVという仕様とが相まって、約0.3度単位でしか温度を測れないからでしょう。
もっと細かく温度を測ろうと思ったら、センサを1℃あたり20mVとかのものに換えたり、出力電圧を増幅したりが必要かと。
あるいは、上に書いた平均を求めるようにプログラムを改造しても、ある程度は細かくなりそうな気がします。
IchigoJamで遊ぶ その3 信号機を作る
信号機っぽいものを作ろう
前回は1個のLEDを制御したので、今度は三つくらい制御してみましょう。
せっかくなので、青(緑)・黄色(橙)・赤の3色のLEDを用意して、信号機もどきにチャレンジ。
こんな感じで、前回同様にOUT1には緑色のLEDを取り付け、加えてOUT2に黄色のLED、OUT3に赤色のLEDを接続します。
前回は「OUT 1」というコマンドを使っていましたが、実はこのOUTコマンドはパラメータを二つ指定することができて、以下のように使えます。
1 2 3 |
OUT 1,1 'OUT1をオンにする OUT 2,1 'OUT2をオンにする OUT 1,0 'OUT1をオフにする |
※オンにするというのは正確には電圧をHighにする事ですが、今のところは単純にオンとオフとしておきます。
OUT 2,1 にすると黄色のLEDが光り、OUT 3,1にすると赤色のLEDが光るというわけです。
簡単ですねぇ。
で、こんなプログラムで、緑が6秒、黄色が1.5秒、赤色が6秒というような信号機っぽいものを作ってみました。
1 2 3 4 5 6 7 8 9 10 |
10 OUT 1,1 20 WAIT 360 30 OUT 1,0 40 OUT 2,1 50 WAIT 90 60 OUT 2,0 70 OUT 3,1 80 WAIT 360 90 OUT 3,0 100 GOTO 10 |
見た目はちょっとアレですけど、信号機っぽい動作になってるハズ。
プログラムが分かりづらい!
しかし、このプログラムはちゃんと動きはしますが、出力先の指定とオンとオフが入り乱れていてややこしいし、なんだか無駄に長いです。
プログラムを一端途中で止めてから再度実行すると、初期化してないので青と赤が同時に光ったりする不具合もあります。
なので、ここは複数の出力を一度にオンとオフできる方法を使ってみます。
といっても、何のことは無い(前回も使っていた) OUTコマンドをパラメータ一つで使うだけなんですけどね。
OUTコマンドをパラメータ一つのみで使うと、そのパラメータを2進数にしたときの各ビットに対応したOUT端子がオン・オフされます。
たとえば、パラメータが「6」の場合、2進数だと「00000110」なので、OUT2とOUT3がオンで他はオフとなるわけです。
というわけで、プログラムをこういう風に書き換えました。
1 2 3 4 5 6 7 |
10 OUT 1 20 WAIT 360 30 OUT 2 40 WAIT 90 50 OUT 4 60 WAIT 360 70 GOTO 10 |
50行目の「OUT 4」 が、OUT4端子をオンにするものと思いがちですけど、実際は「OUT3端子のみオン」にしています。
個人的には分かりやすくなったと思ってますが、2進数を知らないと余計に分かりにくくなったかも?
ただ、プログラムは短くなったので良しとします・・・してください。
おまけ・歩行者用信号機
ほとんど同じようなプログラムですけど、歩行者用信号機も作ってみました。
1 2 3 4 5 6 7 8 9 10 11 |
10 OUT 1 20 WAIT 360 30 FOR I=1 TO 5 40 OUT 0 50 WAIT 30 60 OUT 1 70 WAIT 30 80 NEXT 90 OUT 4 100 WAIT 360 110 GOTO 10 |
動き的にはこちらの方が面白いかも(笑)
IchigoJamで遊ぶ その2
ハルチカ・・ではなくLチカ
今回は、電子工作での「Hello,World!」と言われるLチカ(LEDをチカチカ点滅させる)にチャレンジしてみましょう。
といっても、私の買ってきたIchigoJamのボードには最初からLEDが実装されています。
BASICにもLEDコマンドというものがあり、実に簡単に制御できます。
というわけで、以下のようなプログラムを作成。
1 2 3 4 5 |
10 LED 1 20 WAIT 30 30 LED 0 40 WAIT 30 50 GOTO 10 |
LEDをオンにして、30フレーム(0.5秒)待機し、LEDをオフにして、また30フレーム待機、を繰り返すだけのプログラム。
実行させると・・・
Lチカ完成です!
(刺さってる赤い線やらは今のところ気にしないでください)
外付けLEDをチカチカさせる。
しかし、基板上のLEDをチカチカさせるだけでは、いまいち面白くない。
なので、ブレッドボードを用意して、そこにLEDを取り付けてチカチカさせてみます。
つなぎ方はこういう感じ。
IchigoJamの出力ポートのOUT1とGNDの間にLEDを接続。
LEDに電流が流れすぎないよう、途中に抵抗も入れます。
実際の接続。
白い線がOUT1、黒い線がGNDで、IchigoJamのそれぞれのポートに刺さってます。
プログラムも出力ポートを使用するように変更。
といっても「LED」を「OUT」に変えるだけですけどね。
1 2 3 4 5 |
10 OUT 1 20 WAIT 30 30 OUT 0 40 WAIT 30 50 GOTO 10 |
そして実行。
無事にチカチカしました。
やっていることは基板上のLEDを動かす事と変わり無いんですけど、自分で取り付けた部品を動かすというのが楽しいところですね。
次回、LEDでもうちょっと遊んでみたいと思います。
謝辞
回路図(と言うほどのものではないですが)の作成には、水魚堂さんのBSch3Vを使用させて頂きました。
ハルチカとは
初野晴さんによる日常系の青春ミステリ小説。及び、それを原作としたPA WORKS制作によるアニメーション。
個人的に好きな作品ですけど、Ichigo Jamには全然関係ありません。
IchigoJamで遊ぶ
IchigoJamとは
ビデオ出力とPS2キーボードを接続すればすぐに使える、小さなワンボードコンピュータ。
電源ONでBASICが起動する、昔のMSXライクなパソコンです。
GPIOというハードウェアの入出力端子もついていて、これもBASICで簡単に制御できるので、電子工作にも最適。
「こどもパソコン」という触れ込みですが、MSX世代の大人の琴線に触れるのも間違いなし(?)
値段も1500円(完成品は2000円)とお手頃です。
Hello,World!
では、早速モニタをつないで起動。
起動後の画面はこんな感じで、とてもシンプル。
続いて、Hello,World をプログラムしてみます。
BASICのスタイルも昔懐かしい行番号付き。
入力できたら「RUN」でプログラムを実行します。
動いた!
起動から、プログラム入力、実行までを動画にしてみました。
動くHello,World
これだけでは面白くないので、動くHello,World!というのを作ってみました。
プログラムはこんな感じです。
1 2 3 4 5 6 |
10 CLS 20 FOR X=0 TO 10 30 LOCATE X,10 40 PRINT" Hello,World!" 50 FOR I=0 TO 50:NEXT 60 NEXT |
実行結果は、コチラ。
「Hellow,World!」の文字が左から右に動きます。
ただそれだけです。
ポイントは、40行目で表示する「Hello,World!」の前にスペースを一つ置いてあり、これにより先頭文字を消しながら動いているように見せかけていること。
あと、50行目の何もしないループで時間稼ぎをしてるところでしょうか。
まぁ、今となっては、ほとんど何の役にも立たないテクニックですけどね。
実際、IchigoJam BASICには指定されたフレームだけ待機するWAITというコマンドがあるので、50行目は以下のようにするのが良いかも。
1 |
50 WAIT 5 |
というわけで、IchigoJamでは、もうちょっと遊んでみたいと思います。