福野泰介の一日一創 - create every day

木工で快適な創造プラットフォームづくり、こどもの日

2018/05/05
#maker #IchigoJam 

こどもの日、西山公園ではつつじまつり、Hana道場ではこどもパソコンづくり、自宅ではリアル木工で作業机づくり。


まずは第一弾、作業机の完成!もっと多くの子供たちへ、届く何かを創るプラットフォーム。


近所のホームセンターコメリにて、木材と共に購入したツール、電気マルチツールAMT-280、6千円!


家で木材を簡単にカットできるようになった(木くずはすごい)


力はベクトル、どの方向からのどのくらいの力に耐えるように補強するか?
レゴ、テクニックシリーズでの経験が活きる!
電動ドリル&ドライバーに、補強器具、ぴったりのねじなど、道具とパーツが揃えばレゴ感覚。


やりなおし(Undo)の効かない木工、多少のミスは気にしない。うまくできるかどうかは差は経験あるのみ。
無制限にUndoできて、ツールもパーツも無限に手に入り、ごみも出ないプログラミングというものづくりの経験は木工にも活きる!


Hana道場では、電子工作&プログラミング体験。
小1の子も、自分ではんだづけして完成させたこどもパソコンIchigoJam!
子供同士の教え合いが微笑ましい。
小学1年生もパソコンをつくったよ!*こどもの日企画* - Hana道場


遠路、大阪からご来鯖、鯖江コラボお菓子をつくっているフルタ製菓さん!
(大阪以来、KidsVenture&教員職員向けIchigoJamワークショップ at 大阪/さくらインターネット本社、IchigoJamのつなぎかた


西山公園前の信号から8号線にかけて大渋滞。西山公園自体には駐車場が少なく、サンドーム福井からのシャトルバスに乗るか、福井鉄道から西山公園駅か、西鯖江駅下車が正解。 どう伝えると伝わるか?

車、電車、徒歩、シャトルバスでの西山公園までの予測所要時間をリアルタイムにオープンデータ化できるといいのかも。 シャトルバスにもリアルタイムオープンデータ化用の機器搭載と、福井鉄道に時刻表オープンデータがほしいところ。普段不要な分、いかにランニングを安くあげるかが鍵!
鯖江つつじバスモニター / 公共交通IoTリアルタイムオープンデータ

壊れた液晶ディスプレイで透過型温湿度計づくり SHT31x4.3インチモニターxIchigoJam

2018/05/04
#IchigoJam #maker 

昔、憧れだった透けるディスプレイ。

高精度温湿度計、透けるディスプレイバージョン!


画面上部の表示が壊れてしまった4.3インチモニター。捨てる前に、分解!


自らは発光しない液晶には必須なバックライト


これがその正体。
プラスチック風な透明な板と、裏面の白い紙で、明るい白色LEDで画面全体を裏から照らす仕組み。


つまり、液晶単体でも、裏に光があれば使える。


テスターを使い、5Vを作っている箇所を発見。ここに5Vを供給するだけで動く。
バックライトの回路を切ると、消費電流がぐっと下がって省エネ駆動(5Vで340mA→50mA)


使うのは3点のみ、ビデオ入力(黄)、5V(赤)、GND(黒)
4.3インチ液晶モニターの基板は少なくとも2種類ある。5Vが無い場合は普通に12Vを使うか解析しよう。


温湿度センサー、SHT31用のプログラムを作って、できあがり!

10 U=96:LET[U],#4401,#8808,#884A,#4350,#0C00,#4770:U=#800+U*2 15 CLS:VIDEO5 20 POKE#700,#2C,#06:R=I2CR(#45,#700,2,#700,6) 30 [0]=17500:[1]=PEEK(#700)<<8|PEEK(#701):T=USR(U,#800)-4500 40 [0]=10000:[1]=PEEK(#703)<<8|PEEK(#704):H=USR(U,#800) 50 LC1,3:?T/100;".";DEC$(T%100+100,2);CHR$(#DF);"C" 60 LC1,4:?H/100;".";DEC$(H%100+100,2);"%" 80 WAIT10:GOTO20

℃を表すために使ったカタカナの半濁点(#DF)とCの不揃いが気になるので、PCGでキャラクターづくり。

1 POKE255*8+0,`11000000 2 POKE255*8+1,`11011000 3 POKE255*8+2,`00100100 4 POKE255*8+3,`00100000 5 POKE255*8+4,`00100000 6 POKE255*8+5,`00100100 7 POKE255*8+6,`00011000 8 POKE255*8+7,`00000000

プログラムが短くしたい時は、2進数を10進数にしておくとコンパクト

?"1 POKE#7F8";:FORI=0TO7:?",";PEEK(255*8+I);:NEXT:? 1 POKE#7F8,192,216,36,32,32,36,24,0

50行の#DFとCを#FFに変更して、できあがり

50 LC1,3:?T/100;".";DEC$(T%100+100,2);CHR$(#FF)

このままでは温度がマイナスの時におかしくなるので、対策しておく

45 LC0,3:IF T<0 ?"-":T=-T

プログラム全文

1 POKE#7F8,192,216,36,32,32,36,24,0 10 U=96:LET[U],#4401,#8808,#884A,#4350,#0C00,#4770:U=#800+U*2 15 CLS:VIDEO5 20 POKE#700,#2C,#06:R=I2CR(#45,#700,2,#700,6) 30 [0]=17500:[1]=PEEK(#700)<<8|PEEK(#701):T=USR(U,#800)-4500 40 [0]=10000:[1]=PEEK(#703)<<8|PEEK(#704):H=USR(U,#800) 45 LC0,3:IF T<0 ?"-":T=-T 50 LC1,3:?T/100;".";DEC$(T%100+100,2);CHR$(#FF) 60 LC1,4:?H/100;".";DEC$(H%100+100,2);"%" 80 WAIT10:GOTO20


全体図、電池駆動やACアダプター化してもっとコンパクトに仕上げるのも良さそう。


ケースなど、他の部品も何かに使えそう。ケーブルは4芯あるのでI2Cセンサーを外に引き出すのに便利、ボタンはアナログ入力にいれて3ボタン操作可能。 それぞれ部品として買うと高かったり、そもそも入手が困難なものは重宝する。

創造は分解から。

links
- 分解してグルーガンで再構築するジャンクアートは大人もOK - バラバラにして作って遊ぼう!ジャンクREメイクショップ - Hana道場 x ハードオフ
- 自分で創ったモノを売ってみよう!はじめてのしょうばい - 高性能温湿度計のつくりかた(SHT31編)

遺伝暗号コドンの衝撃、生物は超小型2bitコンピューター!? 食べるをハックする蛋白質DNA編

2018/05/03
#health #IchigoJam #opendata 

塩コントロールに続く、食べるハック第二弾は蛋白質とDNA。
人の体、水が7割、2割が蛋白質。

人に必要な五大栄養素(カロリー=糖質*4+脂質*9+蛋白質*4(kcal))
1. 炭水化物 エネルギー4kcal/g(消化される糖質のみ、消化されないものは植物繊維)
2. 脂質 エネルギー9kcal/g
3. 蛋白質 エネルギー4kcal/g
4. ビタミン(上記以外で必要な有機物)
5. ミネラル(無機物)

蛋白質(たんぱく質=プロテイン)とは、20種類のアミノ酸が50以上つながった立体構造を持つ分子機械。 生体内でさまざまな機能を発揮する。 体の全細胞内にある、生命の設計図、DNA。DNAの一部をRNAとしてコピーし、アミノ酸列にデコードして、蛋白質を生成する構造(リボソーム)はまさにコンピューター。

TCAGによるDNAに対応するRNAはUCAG。1つ4種、2bit。これを3つ1組にしたものをコドンと呼び、その組み合わせは64種類。20種のアミノ酸との対応も判明していたので、サブルーチンでつくるDNAの続きで、RNAデコーダーを作ってみた。

100 C="FFLLSSSSYY..CC.WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG" 110 M=0:CLS 120 N=0:FOR I=1 TO 3 130 K=INKEY():IF !K CONT 140 POKE#A00+M,K:M=M+1 150 N=N<<2 160 IF K=ASC("C") N=N+1 170 IF K=ASC("A") N=N+2 180 IF K=ASC("G") N=N+3 190 NEXT 200 POKE#AC0-1+M/3,ASC(C+N) 210 GOTO 120

「RNAデコーダー」 - リボソームのデコード風プログラム
RNAの構成要素、UCAGを打ち込んでいくと対応するアミノ酸を表すアルファベットか終端コード"."が表示される。

コドン - Wikipediaより)

例えば、アミノ酸をつないでタンパク質を作ろうゲームに登場する、GSEIQPRという7つのアミノ酸の鎖でできたペプチド(50以上のアミノ酸列のものが蛋白質)、カルノシンを仮にRNAで表すとしたら

GGUUCUGAAAUUCAACCUCGU

となる(RUN on IchigoJam web
*蛋白質はメチオニンAUGから始まるものらしいので、実在しないDNA


多少のエラーにも対応できるコード体系。 DNAの中でアミノ酸に対応する部分(エクソン)は5%ほど、残りの部分(イントロン)もエラー耐性を高めたり、スキップの仕方で多様性を産んだりとおもしろい。 DNA末尾に TTAGGGTTAGGGTTAGGG... と無駄なコードを続けておくことでコピー毎に短くなっていくDNAを守る仕組み、などなど・・・。

なかなかうまいアーキテクチャーだな、と思うこれがコンピューターが影も形もなかった頃、自然界によって作られたものというのが信じられない。

分子機械、蛋白質、単純に50のアミノ酸を組み合わせ20の50乗、10の65乗とほぼ無量大数! ただし、機能する蛋白質には制限があり、失敗作は細胞を出る前に破壊される仕組みまである様子(ナンセンス変異依存mRNA分解機構)。 蛋白質の種類は数千万種類と言われ、世界中で解析が進むプロテインデータが「Protain Data Bank Japan」にて約14万のパブリックドメインな蛋白質オープンデータとして公開されている。

膨大なDNAから必要な部分をどう選んでいるのか?蛋白質の機能はどのように決まるのか?
自分という、一番身近で謎多きコンピューターのスペック解明という、楽しい旅!

links
- コドン - Wikipedia - 遺伝暗号、遺伝コード
- PDBj入門:PDBjの教育的コンテンツサイト - 蛋白質オープンデータ内
- 遺伝子の部屋
- 遺伝暗号を解読する鍵となる新メカニズムを発見  | 理化学研究所 (2014年6月23日)

モバイルバッテリーでも切れないIchigoJamのつくりかた

2018/05/01
#IchigoJam #maker 

モバイルバッテリーを使ってIchigoJamを動かしていたら、しばらくすると切れてしまう。
これは、IchigoJamの消費電力が少なすぎて、モバイルバッテリーの自動停止機能が働いてしまうことが原因です。

センサーや、サーボなど周辺機器をつなぐと切れなくなったりしますが、動いていない時に切れてしまうなどでは困ります。

そこで登場、1本の100Ωの抵抗(100本で100円@秋月電子通商
3.3V(VCC)とGNDにさし込んでみました。

無事、一定時間で切れてしまうことを繰り返していたDAISOモバイルバッテリーでも動き続けるようになりました!


VCC-GND間であれば、どこにさしても大丈夫。5V-GND間でもOKですが、消費電力がちょっと上がります。

この抵抗は無駄なのでしょうか?
実は、発熱するという機能があります。
3.3V / 100Ω = 0.033A、3.3V * 0.033A = 0.1W
0.1W = 0.1J/s で、空気の比熱がだいたい 1J/g℃ なので、周りの空気1gを10秒かかって1℃上げるくらいの発熱。
とっても地味な暖房という感じです。
(参考、■ 各種物質の性質: 気体の性質

その1万倍の1000Wの暖房を計算してみましょう。
4畳半の容積は、18m3(4.5/2*3.3*2.4)。
空気の重さは意外と重くて 1.3kg/m3 程度。(参考、空気に重さはあるの? | ダイキン工業株式会社
つまり、4畳半には23kg(18m3*1.3kg/m3)の空気。
この暖房は、部屋全体を23秒で1℃あげる能力ということです(実際は熱が逃げちゃうのでもっと時間がかかりそう)

今回100Ωを使いましたが、1kΩだと、1/10の0.01Wとなって、小さすぎるせいで自動停止しちゃいます。
逆に小さい抵抗を使うとどうなるか?
10Ωだと、10倍の1W、この抵抗の定格(仕様上の限界)1/2W(=0.5W)を越えてしまうので危険です、きっと。

回路を間違うと異常に熱くなったりする理由がわかりますね。

BASICでIoT「IchigoSoda」さくらインターネットからまもなく登場 - IchigoJam for sakura.io

2018/04/30
#IchigoJam #IoT 

月額65円からの4G回線を使ったIoT作成用通信モジュール、さくらインターネットのsakura.ioに、待望のIchigoJam用プロダクト「IchigoSoda」まもなく登場!


IchigoSodaは、Arduino用、Raspberry Pi用と違って、IchigoJam BASICが書き込まれたCPUや周辺機器が搭載された、IchigoJam互換機。一足先に入手。


通信モジュールが基板底にあって、上部CN4/CN3が自由に使えるため、音声合成モジュールなど、拡張基板の接続が簡単!受信した数を読み上げるIoTもこんなにコンパクト。


デモ動画

IchigoJam BASICのプログラムはこんな感じです。(ドライバ不要、下記のみ)

10 GSB@R:IF !F CONT 20 CLS:?"<NUM VAL=";N;">wo jusinsimasi'ta":S=#900:GSB@T 30 GOTO10 500 @T:U=I2CW(46,S,LEN(S))+I2CW(46,13):RTN 810 @R:LET[0],48,48:U=I2CR(79,#800,3,#820,22):F=[16]!=5:N=[18]:RTN

簡単ですね!
10行、受信チェック(@R)し、受信ボックスが空(F=0)なら繰り返し。
20行、受信したデータ(N)を画面に表示して、画面の先頭アドレスを読み上げ(@T)
500行、サブルーチン、読み上げ。文字列Sと改行コード(13)をI2Cで送信。
810行、サブルーチン、受信チェック。データを受信、Fに受信ボックスフラグ、Nに受信データ

ちなみに、データの送信方法はこんな感じです

800 @S:LET[0],2593,19457,N,0,0,0,N>>8^N^102:U=I2CR(79,#800,13,#820,3):RTN N=15:GSB@S

データは8byte単位で送ります。
数以外のデータとして送る方法、一旦バッファに溜めておき、まとめて送る方法もあります。
さくらインターネットが提供するIoTプラットフォームサービス、sakura.io | 開発者向け


電源ON時、POWER LED点灯。CN5の5Vと違って、電源ONとsakura.ioのモジュールの電源が連動します。 起動後、1分ほどで接続が確立し、Status LEDが、一回点滅になったら準備完了!

sakura.ioのモジュールから下記2ピンの機能がIchigoJam側に接続されています。

WAKE_IN - IN1(OUT8)
sakura.ioモジュールの省電力モード管理
OUT8,0で休止、OUT8,1またはOUT8,-1でアクティブ
DIPスイッチ上(2)を左(ENable)で有効、右(DISable)で常にアクティブ

WAKE_OUT - IN2
sakura.ioモジュールに受信したデータありフラグ
1の時、受信したデータがある(受信ボックスが空ではない)。0の時、受信ボックスが空。
DIPスイッチ下(1)を左(ENable)で有効、右(DISable)で受信フラグをIN2に接続しない。
※I2Cコマンドで受信ボックスの状態は取得可能。


AquesTalk picoを使った音声ボードから音声信号をIN2にいれて口パクさせたIchigoJam、スライドスイッチを搭載して、切り替え可能にしました。 これで、sakura.ioの受信通知、WAKE_OUTを使うことも可能(音声信号を使う場合は、DIPスイッチ下を右にスライドし、音声ボードを切り替え)。


IchigoSoda まもなく発売!簡単IoT、ぜひお楽しみください!
sakura.io モジュールは、付属していないので別途お買い求めください。
さくらインターネットが提供するIoTプラットフォームサービス、sakura.io | さくらの通信モジュール
→ 発売開始!「IchigoSoda / IchigoJam for さくらの通信モジュール sakura.io 対応 IchigoJam互換機 / SCO-ICG-02


IchigoSoda と IchigoJam とのウラオモテ


sakura.io モジュールをIchigoSodaの裏側のコネクタに接続した図
アンテナ固定用の穴が2つ追加で空いています。

IoTを理解する近道は、自分で実際作ってみること。
BASICでかんたんIoT、はじめましょう!

links
- IchigoJam
- sakura.io
- IchigoSoda / IchigoJam for さくらの通信モジュール sakura.io 対応 IchigoJam互換機 / SCO-ICG-02

鯖江凱旋!サバエレキシライブ記念、ほのかに光る稲穂づくり

2018/04/29
#IchigoJam #maker #music 

鯖江出身ミュージシャン、レキシの凱旋ライブが西山公園で開催!
やはりここは光る稲穂で応援にいきたい。


ヒカルイナホ2号とヒカルイナホ1号


ヒカルイナホ1号。IchigoJam制御でほんわり光、ほんわり消える。光の強さをつまみ式の可変抵抗でコントロール可能。 設定スイッチをいれると色選択モードになり、色相と彩度(ボタン押しながら)を可変抵抗で変更可能。


両面から見られるようにテープ状のフルカラーLEDをオモテウラ貼り付けることを想定。IchigoJamとブレッドボードで回路とプログラムを作成し、ユニバーサル基板でコンパクト化開始。


光った!


IcihgoJamの分離合体バージョン、IchigoDakeとモバイルバッテリー、ヒカルイナホボード、可変抵抗を組み立てて使用。マスキングテープはそこそこ強度があって、後できれいにはがせて便利。


ついでにもうひとつ簡易版、ヒカルイナホ2号。3つのタクトスイッチで光の3原色をダイレクトに体感。
曲に合わせて7色から選べる。


単3電池x2を電源に、フルカラーLEDの赤、緑、青に抵抗10Ωを通して並列に接続した、ヒカルイナホ2号。 ライブでの振られるイナホ、振ると線が抜ける、切れることが判明しホットボンドで強化。


多くのレキシファンで賑わった西山公園。


GW中の立ち入り制限は前代未聞!?


フードエリア、コトブキ食堂。サバエドッグには長蛇の列!(写真のサバエドックは誤植?)


こちら連隊カレエ。鯖江には大日本帝国陸軍「歩兵第36連隊」が駐屯してました。その三六町(さんろくちょう)にある、サラダ焼きも手軽でおすすめ鯖江ご当地グルメ!
三六サラダ焼 | 三六商店(さんろくしょうてん)公式サイト


物販に並ぶ列と癒やしのつつじ、5万株(西山公園内)


レキシ10周年!凱旋ライブ!!レキシのライブに遊びに来ねの〜〜 2018.4.29 福井県鯖江市西山公園
ちょっと暑いくらいの最高の天気に恵まれた! (来ねの、は福井弁、来てね、来たらいいんじゃない?的意味)

「歴史ブランニューデイ」メンバー、レキシネーム「足軽先生」のいとうせいこうさん、レキシネーム「三つ子の魂百男」鯖江市の牧野百男市長も登場。

市長がPV冒頭35秒間出演している「歴史ブランニューデイ」のPV、再生回数100万回オーバー!
「君がいない幕府」でも市長は福井弁ラップ(?)で出演。縁が深い、レキシとサバエ。

ヒカルイナホ1号 プログラム解説
ハードウェアを準備する。IN3(=OUT10)-DIN(WS2812B), IN2-可変抵抗, IN1-設定スイッチ

10 A=#700:OUT10,0 20 POKEA,240,181,114,182,64,24,80,33,9,6,128,49,4,136,1,48,128,37,1,48,3,120,~0,34,10,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,~2,209,0,34,10,96,1,62,~2,209,109,8,239,209,1,60,234,209,98,182,240,189 RUN POKE#800,6,0,0,255,0,0,255,0:?USR(#700,#800)

光る大五郎、WS2812Bをプルアップ抵抗を付けて5Vを出力できるオープンドレインなIN3(OUT10)用に変更、2つ赤く光る

500 @HSV2RGB 505 R=V:G=V:B=V:IF S=0 RTN 510 D=H/60%6:C=V-(59-H%60)*V/60*S/100:E=V-H%60*V/60*S/100:F=V*(100-S)/100 520 IF D=0 G=C:B=F 530 IF D=1 R=E:B=F 540 IF D=2 R=F:B=C 550 IF D=3 R=F:G=E 560 IF D=4 R=C:G=F 570 IF D=5 G=F:B=E 580 RTN 400 GSB@HSV2RGB:POKE#800,6,0,G,R,B,G,R,B:U=USR(#700,#800):RTN H=30:S=100:V=30:GSB400

HSVをRGBに変換するプログラムを混ぜて、色彩豊かに光る準備完了

100 S=100:H=0 110 V=0:GSB400 120 W=ANA(2)/4 130 IF BTN() FORI=0TO4:V=V+(W-V)/2:GSB400:NEXT:FORI=0TO1:I=!BTN():W=ANA(2)/4:V=W:GSB400:NEXT:FORI=0TO4:V=V-V/2:GSB400:NEXT 140 GOTO110

可変抵抗でマックスを設定し、ほんわり光らせ、ほんわり消す

140 IF IN(1) GOTO 110 150 V=W:A=ANA(2) 160 B=ANA(2):H=(H+(A-B)/2+360)%360:A=B:GSB400 170 IF BTN() FORI=0TO1:S=100-ANA(2)/10:S=S*(S>0):GSB400:I=!BTN():NEXT:A=ANA(2) 180 IF IN(1) GOTO 110 ELSE GOTO 160

色相と彩度と設定するスイッチに対応して、できあがり!


ヒカルイナホ1号の肝、フルカラーLED(WS2812B)用ボードの裏。

プログラム全文

10 A=#700:OUT10,0 20 POKEA,240,181,114,182,64,24,80,33,9,6,128,49,4,136,1,48,128,37,1,48,3,120,~0,34,10,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,~2,209,0,34,10,96,1,62,~2,209,109,8,239,209,1,60,234,209,98,182,240,189 100 S=100:H=0 110 V=0:GSB400 120 W=ANA(2)/4 130 IF BTN() FORI=0TO4:V=V+(W-V)/2:GSB400:NEXT:FORI=0TO1:I=!BTN():W=ANA(2)/4:V=W:GSB400:NEXT:FORI=0TO4:V=V-V/2:GSB400:NEXT 140 IF IN(1) GOTO 110 150 V=W:A=ANA(2) 160 B=ANA(2):H=(H+(A-B)/2+360)%360:A=B:GSB400 170 IF BTN() FORI=0TO1:S=100-ANA(2)/10:S=S*(S>0):GSB400:I=!BTN():NEXT:A=ANA(2) 180 IF IN(1) GOTO 110 ELSE GOTO 160 400 GSB@HSV2RGB:POKE#800,6,0,G,R,B,G,R,B:U=USR(#700,#800):RTN 500 @HSV2RGB 505 R=V:G=V:B=V:IF S=0 RTN 510 D=H/60%6:C=V-(59-H%60)*V/60*S/100:E=V-H%60*V/60*S/100:F=V*(100-S)/100 520 IF D=0 G=C:B=F 530 IF D=1 R=E:B=F 540 IF D=2 R=F:B=C 550 IF D=3 R=F:G=E 560 IF D=4 R=C:G=F 570 IF D=5 G=F:B=E 580 RTN

links
- レキシオフィシャルHP うぇぶ城
- レキシさん、鯖江市で凱旋ライブ 西山公園、全国から6千人 | 催し・文化 | 福井のニュース | 福井新聞ONLINE

Sony MESH x IchigoJam、スマホからIchigoJamラジオをコントロールする

2018/04/28
#IchigoJam #mesh #maker 

SonyのMESHで、スマホからIchigoJamをコントロール!
電源供給機能があるのでIchigoJamの電池代わりにもなって、コンパクトに仕上がります。

ラジオをスマホからコントロールできました。

10 LET[0],7910,7610,8349,9460

プログラムは前回のままですが、1局追加!
AMラジオが入りづらい地域のために新しくFM波の90MHz〜95MHz帯を使った、ワイドFM(FM補完放送)が福井でも去年から始まっていて、福井で聞けるラジオは、4局でした。
FBC-i 【福井放送】FBCラジオ×ワイドFM


MESHのアプリ上でGPIOタグを認識させ、スマホのマイクで音を感知したら、電源をONすると同時に、BTN端子につないだデジタル出力1をLOWにし、ボタンを押しながら電源入れるを再現。 1秒後にデジタル出力をHIGHにします。タイマーで指定時間に自動的にONにしたり、他のMESHとつないでいろいろ組み合わせて使えます。


電源供給、デジタル出力x3、デジタル入力x3、PWMx1、デジタル入力x1を備える「MESH GPIO
BLE(Bluetooth 4.0)を使って、スマホと気軽につなげて、電池の持ちが良いのがうれしいところ!(参考寿命1ヶ月)

欲を言うと、Nintendo Laboのように、「タッチしたら」や「画面ひかる」などスマホだけで使えるブロックがほしいところですが、ラズパイ上での運用との組み合わせで難しいのかも?
Nintendo Laboでサーボを動かす方法 / IchigoJamの楽器として使うNintendo Laboと電子工作


もっとコンパクトかつ、簡単に接続できるように変換コネクターを作ってみました。


L字ピンヘッダーでIchigoJamのCN4に挿し込むイメージ


MESHにはピンヘッダー5ピンx2で接続(隣同士繋がったパターンのユニバーサル基板が楽かも、新ユニバ!?)


GPIOタグのピン配置を見ながら、左上電源をVCCへ、右上GNDをGNDへ、デジタル出力1をBTNに、他、いろいろ自由につなぎましょう。


はんだごてを使う電子工作で、更に広がる創れる世界、MESHでも!
電子工作好き、ものづくり好きが、どんどん増えますように!

links
- タグ GPIO | MESHレシピ
- GPIOタグの機能と仕様を教えてください – MESHサポート | 遊び心を形にできる、アプリとつなげるブロック形状の電子タグ

「世界一?簡単デジタルラジオキット」つくる、鯖江専用ラジオ

2018/04/26
#IchigoJam #maker #radio 

福井高専学生時代、アマチュア無線同好会にも所属。モールス信号を覚えて、アマハム3級を取得。でも、一度も無線機を触ることなく卒業。

長い休眠期間を経て、近年復活した「福井高専アマチュア無線研究会 - JA9YDB」との縁もあって、無線の勉強。

周波数別にいろいろ使われる電波、アマチュア無線ならではの短波(HF)を使うと電離層に電波を反射させ、インターネットも電話線も衛星も使わず、なんと世界とも通信できてしまうらしい。

世界中の子供たちが、IchigoJamのプログラムを送受信することを夢見て、まずは手軽に扱える電波、FMを使って実験開始。(FMは、超短波(VHF)を使った周波数変調の放送)


こちら、aitendoで500円「世界一?簡単デジタルラジオキット」を使った、福井で聞ける3局のみ受信できるFMラジオ。 DSPラジオ、RDA5807HSを使ったモジュールをIchigoJamのI2Cコマンドでコントロール!


たったこれだけの部品で、FMラジオができてしまう。
小さいタクトスイッチはおまけ。ラジオを鳴らすだけなら不要。アンテナ代わりにイヤホンを接続。


DSPラジオモジュールは、テープやペンチで押さえてはんだづけ。フラックスを塗ると楽です。


ラジオとIchigoJamの接続、ミニユニバーサル基板で、IchigoJamのCN5のI2Cの並びに変換。もちろんジャンパーワイヤーで接続でもOK!VCC-3.3V/GND/SCL/SDAの4本。

I2Cコマンドで、5byte送ってコントロール。周波数freq(MHz)は下記で求めた16bitの数を、先頭2byteにビッグエンディアンで設定。

4 * (freq * 1000000 + 225000) / 32768

この計算はIchigoJam BASICで普通にやるとオーバーフローしてしまうので、32bitまで扱えるArmマシン語の力をちょっと借ります。
freqを79.1MHzを7910と10kHz単位で表すことにして、上記の式を変形

((7910 * 10 + 225) * 1000) >> 13

これをasm15マシン語で分解するとこのようになります(R0*=R1 は R0=R0*R1 の意味)

R1=10 R0*=R1 R1=225 R0+=R1 R1=10 R0*=R1 R0*=R1 R0*=R1 R0=R0>>13 RET

アセンブルしたものを使うと、下記のように設定する数値が求まります(検算してみましょう)

POKE#700,10,33,72,67,225,33,8,68,10,33,72,67,72,67,72,67,64,11,112,71 OK ?USR(#700,7910) 9683 OK

あとは下記コマンドで鳴るはずです(受信可能な周波数を調べて設定ください)

F=USR(#700,7910):POKE#800,F>>8,F,#18,#16,0:?I2CW(96,#800,5)

鯖江で受信可能な3局、たんなんFM(79.1MHz)FM福井(76.1MHz)NHK福井放送局(83.4MHz)をボタンで切り替えるプログラムはこちら

10 LET[0],7910,7610,8349 20 ?[N] 30 POKE#700,10,33,72,67,225,33,8,68,100,33,10,34,81,67,72,67,64,11,112,71 40 F=USR(#700,[N]):POKE#700,F>>8,F,#18,#16,0:?I2CW(96,#700,5) 50 WAIT30 60 IF BTN()=0 CONT 70 N=N+1:IF [N]=0 N=0 80 GOTO 20

受信中はLEDが光るようにちょっと改造

45 LED1 65 LED0

128x64のOLEDディスプレイを使って、受信中の周波数を表示用の追加コード

5 GSB@INIT:GSB@CLS 25 F=[N]:CLS:?F/100;".";F/10%10 26 FORI=0TO3:X=2+I:Y=8:GSB@LC:C=PEEK(#900+I):GSB@PUTC:NEXT 100 @INIT:POKE#700,0,141,20,32,0,175:?I2CW(60,#700,6):RTN 110 @LC:POKE#700,0,33,Y*8,127,34,7-X,7:?I2CW(60,#700,7):RTN 120 @PUTC:COPY#700,C*8,8:?I2CW(60,#40,#700,8):RTN 130 @CLS:X=7:Y=0:GSB@LC:C=0:FORI=0TO127:GSB@PUTC:NEXT:RTN

人が聞くのではなく、機械が聞くラジオにするべく、次はFMトランスミッタと信号のデコードに挑戦してみたいところです。

身の回りにたくさんある見えない線、無線。スマホ、WiFi、飲食店での呼び出しボタン、ラジオ・テレビなど身近な電波の正体に迫ってみましょう。

デジタル指点字はじめのいっぽ「数字」の点字表現を体得する読み上げ学習マシーン

2018/04/25
#IchigoJam #braille 

慣れると読み取りできそう感ある、6点式体表点字、別名「デジタル指点字」。
読み上げデバイスと合わせて学習できるマシーンがあれば、覚えられるかも、とひとまず、0から9までの数覚えデバイスを作成。

0から順に数を読み上げながら、対応する点字のパターンで振動モーターが震えます。

数の点字は、点字(Wikipedia)を見て、上段から順に2進数として読んで、数値化したものがこちら

10 LET[0],28,32,40,48,52,36,56,60,44,24

続けて、順番に表示しながら震わせるプログラムを書きます。

20 FOR I=0 TO 9 30 PRINT I,BIN$(I,6) 40 OUT[I]:WAIT5:OUT0 50 WAIT 45 60 NEXT 70 GOTO 20

40行と50行のWAITで感覚をいろいろ調整。覚えたらどこまで速くできるかチャレンジ!


数の点字は上2段しか使わないので、ひとまず対応する4つの振動モーターを並べて、指で軽く押さえて振動を感じてみます。 がっちり固定してしまうと、振動が感じられなくなるので、ふわっと設置するスポンジを置くなど、ハードウェア的工夫がいろいろ必要になりそう。


JAIST、宮田先生にも体験いただきました。
2コ100円の振動モーターをMOSFETで100mA流すだけのお手軽アウトプットデバイス。


宮田研究室には、点字ボランティア経験者も!何かのヒントに使ってください!
検索してみると、情報科学研究科で非目視文字などの研究行う、下平研究室を発見。
ヒトとマシンが対等につき合える社会を目指して - 下平研究室


JAISTでは、福井高専の後輩とも再会!
JAIST(=北陸先端科学技術大学院)は、大学院しかない大学院大学。学生は、それぞれ2つの研究テーマに取り組んでいるとのこと。

異分野コラボによるおもしろ新展開に期待です!

links
- 長谷川 貞夫「人間の新しい文字情報チャンネルとしての2点式体表点字システム」
- コミュニケーション方法の詳細 « 東京盲ろう者友の会 | 東京都盲ろう者支援センター(指点字)
- 指点字略字
- JAIST 北陸先端科学技術大学院大学
- 生まれつき盲目の男性がAmazonでソフトウェアエンジニアとして働く - GIGAZINE

石川県白山麓で育むグローバルイノベーター、国際高専初訪問としゃべるIchigoJamくん

2018/04/24
#IchigoJam #kosen #ishikawa 

石川県にある私立の高専、金沢高専が、今年、国際高専と名前と場所を改め、リニューアル。

全寮制で歴史の授業以外は英語。3年生ではニュージーランド留学し、4/5年生は金沢工大への合流というユニークな高専。 1/2年生が学ぶ場所、石川県、子供の頃よくいった瀬名高原スキー場近くの白峰に新キャンパス。

やってきました、国際高専。今年4月に開校したばかり!
ICT = International Collage of Technology, Kanazawa と記載あり。
International KOSEN!


白峰の自然に囲まれた国際高専の校舎。


天井高い、ステキ空間。


食事の後は、このスペースで勉強会!


真四角建物の中は体育館。


ジム設備もアリ!


屋内ボルダリング場も整備中。


工作スペースに、ダンボールでできた金沢駅前のオブジェ!


新品設備、あれこれものづくりに思う存分チャレンジできそう。


食堂隣の多目的ルーム。


1ユニット6人の小部屋があるシェアハウスっぽい寮。共有リビングの丸テーブルには椅子6つ。


学校直結の寮(DORM)、そして温泉!


外構工事中の寮。


こちらが国際高専敷地内にある温泉。一般の人もOK!


イノベーションハブにも、いい感じな、ものづくりスペース。企業会員の募集予定とのこと!

国際高専プレイベントからのアップデート、音声合成や音声認識を使ったIchigoJamデモを見てもらいながら、白峰発プロジェクトについてディスカッション。 音声合成でしゃべってくれるIoTは、いろいろ可能性広がりそう!地域の子供や、大人と一緒に、いろんなプロジェクトができるとおもしろい!


顔がI2CWコマンドで発声させると、連動してパクパク。
小学校のクラブでも作った、プログラミングによる「顔づくり」 声に連動すると楽しい!かわいい!


部品を揃えて、はんだづけします


はんだづけした裏面。16MHzのクリスタル、小さな表面実装版のはんだづけは大変なので、こちらのセラロックがオススメ。


できあがり!


リップシンク、しゃべりに合わせてパクパクさせるべく、音声端子をジャンパー線で拝借。
写真、オレンジ、または、緑、どちらかから取得すればOK。
試しに、アナログの値を取得してみましょう

10 S="ohayou" 20 U=I2CW(46,S,LEN(S))&I2CW(46,13) 30 FORI=0TO220:A=ANA(2):IF A<500 ?A,"@@@@" ELSE ?A 40 NEXT

一定の数より大きい時に、口を空けるといい感じ!

10 LET[0],"ohayou gozaimasu","konnitiwa","konbanwa","gokigennyo-","mataasita" 15 S=[RND(5)]:GSB20:CONT 20 U=I2CW(46,S,LEN(S))&I2CW(46,13):CLT 60 N=ANA(2)<500 70 IF M=N GOTO 120 80 CLS:LC5,8:?CHR$(1):LC26,8:?CHR$(1) 90 IF N LC 15,18:?CHR$(1,1,28,28,31,1,1,28,28,31,1,1) 100 IF !N LC 14,19:?CHR$(1,1,1,1) 110 WAIT5:M=N 120 IF TICK()>180 RTN 130 GOTO 60

これでパクパク顔が動きます!


links
- 国際高専:国際高等専門学校
- 音声合成LSI - AquesTalk pico LSI

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image