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

大人のIoT勉強会、ものづくり現場 x IoT で新産業創出目指す鯖江商工会議所と実装例「げんきかなIoT」

2018/11/02
#IoT #sabae #IchigoJam 

ものづくり好きにオススメ、鯖江商店街のイチオシスポット呉服屋「あめや」
魯山人が若い頃に彫った、巨大な彫刻看板がお店の中で見られます。
鯖江で開催するアイデアソンでは、定番コース(禅ハッカソンin鯖江公共交通オープンデータハッカソン in 鯖江

鯖江商工会議所で開催「あたらしもん好き勉強会」第二回目のテーマは、IoT。
IchigoJamのIoT拡張版、IchigoSodaを使ったワークショップに、あめやの桑原さんも参加いただきました!

コンピューターの実力に驚いてもらって、そのコンピューターにLEDを1つ接続する電子工作はじめのいっぽ、パソコンに必要な入力出力電源の配線作業を終えスイッチオン! コンピューターとの会話をまずは一文字「A」と打って「エンター」から開始。LEDコマンドとWAITコマンドをマスターし、自在に点滅するエルチカロボットのできあがり!

ざっとプログラミングを体験したら、早速IoTの体験です。

IOT.OUT1

LED1並、あっけないくらい簡単ですね!これが1万回通信して月額64円!(sakura.io)

早速、応用「げんきかなIoT」づくり
一人暮らしでネットを使っていない、高齢者の家において、元気かどうか確認するIoTを作ります。


LEDが光ったら、IchigoSoda本体のボタンを押してねという反応速度を計測するデバイスをプログラム。
LEDをもっと派手にしたり、光ると同時に音を鳴らすようにするとよりわかりやすいですね。


ある程度練習したら、IOT.OUTで反応時間をネットに送って、ランキングを見てみましょう!


続いて、IOT.IN()命令を使って、スマホから元気かな信号を送れるようにします。


こちら、プログラムの全文。定期的や、不定期に行える超シンプルコミュニケーション。
何か災害時の安否確認にも使えます。送る数字によって、メッセージを変えてみるのもいいですね!


どう応用するかは創る人次第!
眼鏡、漆器、繊維、ものづくり現場が近い鯖江市ならではのステキで便利なIoT、発信していきましょう!

links
- 大鵬薬品、大塚グループで開催、IchigoJamでIoTプログラミングはじめのいっぽ / 人間に必要な栄養素アプリ
- 異分野をクロスして産む新しいもの、IoTプログラミング at 京都造形芸術大学クロステックデザインコース - ビジュアルプログラミング環境「Max 8」で理想ノイズづくりプログラム
- 高専生から中学生へ「はじめてのプログラミング、はじめてのIoT」 / 佐世保高専での学び
- 防ごう子供のキーボード離れ!1行短縮かわくだりゲームの入門スライド - 総務省統計局でプログラミング体験!

大鵬薬品 x 鯖江市、第5期 Code for Japan 地域フィールドラボ事業報告会 - 現場での恊働とデータが生むイノベーション

2018/10/16
#sabae #codefor 

Code for Japan、地域フィールドラボが生み出す、業界を超えたつながりが創るイノベーション。

週2日、わずか3ヶ月で、見事、結実!
眠っていた電子申請フォームを活用して、受付による脱紙成功の予感!?

大塚グループ、大鵬薬品より7月からの3ヶ月、鯖江市役所の臨時職員となった三浦さんによる Code for Japan地域フィールドラボ事業報告会。

「鯖江市 x Code for Japan x 大鵬薬品」という、一昔前では考えられない恊働プロジェクト。
現場でしか見えない課題を洗い出し、既存の電子申請システムを活用し、電話受付紙台帳から、webと電話受付電子台帳への変革を0予算で実現!
肝心の電子申請システム自体の使いづらさは、福井県がまとめて刷新すれば自動的に使いやすくなりますねっ。ナイス着想&実装!


放っておけない医療費高騰問題にもようやくデータ活用の波「データヘルス改革」として厚生労働省によるAI活用政策が進んできたところ、鯖江市で一歩先をいく計画第一歩に、医療系ベンチャー「サスメド」との共同研究が決定! (厚生労働省 データヘルス改革推進本部


「特定保健データにおけるAIの活用」を紹介するサスメドの市川さん。
医療機関利用履歴を元に、説明可能なホワイトボックスAI化を使った予防医療による医療費削減を狙うとのこと。 匿名化や、細かいエリア単位で集計するなど、個人情報に入らない範囲でのオープンデータ化もいきたいですね。


地域フィールドラボ事業説明会、動画!


IchigoJamのはんだづけまでしてくれた三浦さん「IchigoJamでIoTプログラミング 〜はじめのいっぽ〜」の大塚グループ内開催を企画してくれました! 25名予定に応募がなんと43名、好評に応えたいと思います!


IchigoJamをよりIoTで使いやすく、ブラッシュアップしたIchigoJam、近日正式版リリースです!
速度1.7倍、液晶に切り替えた際の音の不具合を解消し、IchigoBoy pocketでも見やすいよう調整。
IchigoJam 1.3b1」・・・ついに、1.3βとしてテスト公開!


3ヶ月間、おつかれさまでした!よいきっかけを提供いただき、ありがとうございました!
そして、これからもよろしくお願いします!いろいろ連携していきましょう。

links
- 「コード・フォー・ジャパン」地域フィールドラボ事業成果報告会 | 『さばえ.jp』百さんのブログです
- 民間企業から自治体へパートタイムで出向くITリーダーを募集、「地域フィールドラボ」説明会を5月16日開催 - INTERNET Watch
- Code for Japan

みんなでつくる地域ICTクラブ、福井高専IT研究会と鯖江商工会議所あたらしもん好き勉強会

2018/10/12
#IchigoJam #IoT #VR #megane #swift #kosen #sabae 

福井高専電子情報工学科、1年後期から、いよいよプログラミングの授業スタート!
初回は IchigoJam を使って、自分のパソコンづくりとプログラミング入門。
ひとりずつはんだづけした後、エルチカ、かわくだりゲーム、10秒あてIoTゲームをペアでつくってコンピューターを操る感覚を掴んでもらいました。


はんだづけスタート!
自分のパソコンをまだもっていなかった学生も、ひとまず1台ゲット。


個性がでるはんだづけ、部品をまっすぐつけることにこだわる!


女子は髪をこがさないよう、注意!


できあがった IchigoJam S。すっきりシンプルになったこともあってトラブルも減って1コマ、90分ちょっとでほぼ全員完成!


ペアプログラミングスタイルで、プログラミング入門&IoTはじめのいっぽスタート!

IchigoJam かわくだりゲームの改造版(点数追加、スペースキーでボム、時間でだんだん速くなる)

10 CLS:X=15:CLT 20 LC X,5:?"O" 30 LC RND(32),23:?"*" 35 WAIT 6-TICK()/180 36 X=X-BTN(28)+BTN(29) 37 X=X&31 38 IF BTN(32) CLS 40 IF SCR(X,5) GOTO20

IchigoJam BASIC リファレンスを見ながら、解読してみよう!
ネットでじっくり学ぶテキスト「IchigoJamプリント
ブラウザで動く、IchigoJam web もあるよ!
良い作品ができたら、Kidspod;や、電子工作マガジンに投稿しよう。
わからないことがあれば、IchigoJam-FAN (Facebook) か、#IchigoJam (Twitter) へどうぞ!


福井高専の電子情報工学科を選択した42名、楽しくプログラミング学んでいきましょう!
作ったIchigoJamは、実験でも使いますよ!
(現在福井高専は、1年生が混合学級をとっていますが、専門科目の時間は各クラスから集まって実施)


福井高専IT研究会に新1年生を勧誘!PCN鯖江にも新メンバー!


福井高専メディア研究会のラジオ番組新コーナー「OBさんいらっしゃい」に出演!
OB/OGというのは冗長なので、語源はともかくOBで統一する形でいきましょう。


ものづくりのまち鯖江ならではの、新基軸情報発信を目指す会!


体験しないとわからない、VR/MRの世界 at 鯖江商工会議所の新企画「あたらしもん好き勉強会#1」

アイデアディスカッション、その1「続きはリアルで!鯖江のVRと言えば?」

メガネを作っている職人視点VR(製造工程) コンサート映像VR(人形浄瑠璃、サンドーム) 歴史VR(近松門左衛門) 西山動物園(動物間近でみる) 鯖江の郷土料理のつくりかたVR動画(サバエドッグ) 加藤吉兵衛商店で酒造り見学、中松で飲む気分VR ドローン映像、上空から鯖江(鳥視点) 福鉄運転席 サバエドッグ視点 観光ガイドVR(自治体とお年寄りがネック?) 美術館・博物館の美術品を見せる

アイデアディスカッション、その2「ミライのメガネ」

カーナビ(人生ナビ) 年収見えるメガネ 共通の友達が見えるメガネ 自分との相性が見えるメガネ(好感度) 料理のカロリー見える(アレルギー) スイカの糖度判定(果物) 透けるメガネ 寿命が見えるメガネ(デスノート) 財布替わりになるメガネ 見るだけで最安値が見えるメガネ(レビュー) 店の評価が見えるメガネ リアルなマリオブラザーズ(クリボーがでてくる) 武家屋敷復元 メガネがスマホの替わりになる(事故率下がる、猫背が治る?) 組み立て手順をガイドする

もりあがった、MR、電脳メガネ。
オープンソースな電脳メガネアプリをSwift4.2に対応し、ちょっとバージョンアップ。
「Megane」src on GitHub

世界が印刷物風に見えるメガネと


世界がステンドグラス風に見えるメガネを追加!

メガネのまち鯖江だけに、IT研究会でもOculusなどメガネ系に関心ある学生多いかも!?
今度持っていくのでお楽しみに!

MeganeJamづくりTIPSとちょっと改造法 at 鯖江Hana道場

2018/10/05
#IchigoJam #hanadojo #sabae 

組み立て動画も紹介した鯖江ご当地IchigoJamの「MeganeJam
カラバリで個性!


せっかくなので赤いパーツで揃えてみます。


microUSB、そっと裏返して、裏からはんだを多めに流し込みます。


表からもはんだづけ。


楽しいはんだづけタイム。


R1〜R4、抵抗を指でホチキスの芯のようにコの字型に曲げて差し込み、ちょっと開くとすっぽぬけない。


横から見て三角形がはんだの適量。
減らべったいのは少なすぎ、ちょっと足しましょう。
丸まっているのは多すぎ。それはそのままでOKですが、次のはんだは控えめにやってみましょう。


ピンソケットをまっすぐつけるコツは、1ピンだけはんだづけして、指で押さえながらはんだごてで再度温め、位置調整。 ピンソケットを曲がって付けてしまっても、指でぐぐっと押せば真っ直ぐにできるので、ご安心。


スイッチも同様に1つだけはんだづけして押さえながら調整できれいに仕上がります。


大きなパーツ、特によく見ると基板(のベタGND)につながっているパーツは長めに温め、はんだを多量に流し込みましょう。 ビデオ端子の穴は、2つ余って正常です。


真っ赤なMeganeJam、完成!
実は、クリスタル、15pF(表記150)のコンデンサは省略しても動きます!(画面がちょっと揺らぐかも)


鯖江市地域活性化プランコンテスト参加高校生もはんだづけ!


自分だけのMeganeJam、できあがり!


LED1

エルイーディー、つきました!


15分でゲームのプログラミングも完成!
シンプルだけど、世の中のプログラムの基本が詰まった「かわくだりゲーム


マイMeganeJamと記念撮影!(写真 by 学生団体with Facebookページ
featuring 市長をやりませんか? 鯖江市地域活性化プランコンテスト


左上はフリースペース。圧電サウンダーを搭載する改造法を紹介。用意するのは配線用の電線。


裏面、電線をいい感じの長さに切る。


圧電サウンダーをGNDとSNDにはんだづけ。

LEDを点滅させながら(業界用語でエルチカと呼びます)、ランダムな音程で音を鳴らすプログラム

1 LED1:WAIT10 2 LED0:WAIT10 3 BEEP RND(20)+1,2 4 GOTO 1


ボタン電池でも動いちゃうのがIchigoJam!省エネです。(電池ホルダwith基板 [M-STL2032HLD]


うるさいエルチカ&ボタン電池駆動MeganeJam


Hana道場では、プログラミングに電子工作に、ものづくりを強力にサポート!(写真 by 学生団体with

MeganeJamは、Hana道場ストアで販売中!
MeganeJam by PCN Sabae | Hana道場ストア

links
- 鯖江市地域活性化プランコンテストの参加賞、鯖江生まれのパソコン IchigoJam の鯖江スペシャル MeganeJam 組み立て動画

はじめてのIoTプログラミング with ZenIT ペアプログラミングバージョン

2018/10/02
#sabae #eiheiji #IchigoJam 

鯖江の会社、ウォンツとイベント「はじめてのIoTプログラミング with ZenIT」
IchigoSoda (IchigoJam x sakura.io) を途中から ZenIT ペアプログラミングスタイルにして、アプリとIoTづくりと学ぶ体験会。

手を組んで、心を静かに、永平寺エボリューション大使あみるによる座禅のレクチャーからスタート。


座禅、椅子バージョン。


IchigoJamの配線も大事な体験。


ペアプログラミングで学ぶ、アプリづくりの基本と、IoTづくりの基本。

体験と共に紹介した、こどもプログラミングの現状、シリコンバレーでの最新開発現場と禅/福井の良さ。 パソコン教室を手がけるウォンツグループ、子供にシニアに大人に、プログラミングの知識をプラスする楽しさ、いろいろ可能性広がります。


世界中の「ウォンツ!」をサポートする鯖江の会社、株式会社ウォンツ

本日のスライド、ペアプロをもっとスムーズに改良版「はじめてのIoTプログラミング with ZenIT

ペアプログラミング用にIchigoJamをチューニング。キーボードからの入力をリアルタイムにUARTに送りつつ、画面出力は送信しないモードを追加。



ベータ版のダウンロードはこちら! (IoT.OUT/IoT.IN()コマンドも内蔵!)
- IchigoJam 1.2b63

ご質問、不具合、ご要望などは、Facebookグループ「IchigoJam-FAN」または、Twitterハッシュタグ「#IchigoJam」までお寄せください!

鯖江の日本酒「梵」味と品質への飽くなき挑戦とプログラミング

2018/09/18
#sabae #gourmet #IchigoJam #IoT 

鯖江で造られ、世界98カ国に輸出される日本酒「」の進化が止まらない。

温湿度が完璧に管理され、世界中どこからでもチェックできるようIoT化された酒蔵。
麹菌を指定量、きっちり1往復3分ペースでふりかけるのが鍵。


砂時計で計測しているこの工程、テープLEDでガイドするプログラムでより簡単にできるかも!?
上記、片道1分半をガイドするデモプログラム。


酒蔵の到るところに見られる「加藤式」の数々。


鯖江のメガネの表面加工技術によって作られた、炊きムラをなくす工夫、ガラス製の擬似米。


完成していた天空蔵
前回訪問時に活躍が予定されていたのはロボットくん導入!
ただ、人力+台車によるもっと効率良い方法があったとのことで、本格活用は保留中。


日本酒をしぼる工程を待たず、味をすばやくチェックするための遠心分離機。


日本酒の成分を自動的に分析する専用マシン!


強運にも恵まれる梵、なんとこちら天然石!(ひょうたんに梵、左下には狛犬も)


キリンさんに加えて、新入りのくまさん!


SAPによる新コミュニティ組織「Business Innovators Network」
ASCII.jp:国内企業との共同イノベーションを促進、SAPがコミュニティ始動
鯖江 x SAP、新たな取り組み始まる!

links
- 日本酒「梵」の酒蔵 | 加藤吉平商店 |

バスを待ちIoTで楽しく! 永平寺町の福井国体シャトルバスで実証、IchigoJam版リアルタイムバスオープンデータ

2018/09/11
#IchigoJam #IoT #fukui #sabaepc 

新たに作成したGPS位置情報をリアルタイムに共有するデバイスからのデータを地図にマッピングして、バスの不人気の理由ナンバーワンの「バス待ち」をバスの場所をスマホで見えるようにして、快適にしてみます。


9/13-17に開催される福井国体ハンドボール、競技会場のひとつ、永平寺町にある北陸電力福井体育館フレア。指定の駐車場、福井県立大学からシャトルバスが出る予定です。
ハンドボール - しあわせ元気 お役立ち情報アプリ / 福井国体障スポ」(上記アプリがリンクされる予定)


平成最後の国体、福井国体向け便利アプリ「しあわせ元気 お役立ち情報アプリ / 福井国体障スポ
いろんな競技ありますね!
県が観戦ガイドアプリ開発 福井国体・障害者スポ:福井:中日新聞(CHUNICHI Web)

先日の鯖江市地域活性化プランコンテストで、最優秀賞を獲得したチーム「ふたご座」の出張やライブ目的など、鯖江のプチ滞在を濃密な時間にしようというプラン。電脳メガネが出てくる自動改札、物販で並ぶ間で楽しむアプリ、ホテルの冷蔵庫には冷やしメガネ、お土産にもなる鯖江コインなど、アイデア満載のスキットでした。

お土産にもなるコイン、世界で唯一(?)穴を2つ空けた形状の硬貨とか珍しくていいかも?鯖江の得意技、チタン加工の高額コインと、メガネフレームの端材を利用したプラのお手頃版とかも楽しそう。

まち全体をエンターテイメント化する一環として、有効活用したいIoTバス。鯖江のかわいくレッサーパンダでラッピングされた市営バスには、乗降数と位置情報をリアルタイムにオープンデータ化する機器が搭載済み!走っている全バスの写真を撮るスタンプラリー化して、対戦ゲーム化すると熱いかも!?時刻表と路線図を見て、いかに効率よく全バスを見つけよう!・・・など、ルールづくりは自由自在。


まち全体がプログラミングで遊べるようになるのが、IoT&オープンデータ!
進化し続けるメガネのまち、インクルーシブシティ鯖江!(鯖江“育職住”ツアー参加者へご紹介!)


14年目を迎えた、鯖江xアートの取り組み「河和田アートキャンプ」、応用芸術研究所の社長、片木さん with MeganeJam
いよいよ今週末、中道アート2018で製作されたアートの展示も!

ユニークなイベント目白押しの鯖江市、IoTとオープンデータを利用して、それぞれをゆるくつなぐことで、もっときっと強力に!

目指そう、誰もが幸せを自分で創れるまち!

つなごうケニアと福井! IchigoJamで作ろう実用品「位置情報リアルタイム共有デバイス」

2018/09/10
#IchigoJam #IoT #fukui #sabaepc 

母校の福井市立明道中学校でのIchigoJamワークショップ後、PCNケニアメンバーと!

日曜日の鯖江市地域活性化プランコンテストの「マサイxサバエ」プラン。世界一目の良いマサイ族もスマホの影響で視力低下が進んでいるという。そんなマサイ族へ、鯖江発の目育(めいく)を広めようというプランを早速、PCNケニアのダニエルへ紹介。いっそケニアではメガネのことをサバエと呼んでもらいたい!

マサイxサバエプラン実現の一助になればと、IchigoJamのメガネスペシャル、MeganeJamをPCNケニアにも1つ進呈。中学校のかわいい後輩にも MeganeJam は人気!

IchigoJamで輝くイチゴ帽子。縦横に並べれば自在に文字をカラフルに伝える、電光掲示板だってできちゃいます。社長率ナンバーワンの福井、実家のお手伝いもできそうですね!

プログラミング上達のコツは楽しむこと。まずは楽しくゲームづくりでコツをつかんだら、自分の作りたいもので作れそうなものからどんどん挑戦しましょう!支援がほしいときは、Twitterで #IchigoJam を付けて、つぶやけばOK!PCN福大附属もすぐそばの明道中、学校超えた連携もいいですね。(かわくだりゲーム、負けたら座る一発勝負のミニゲーム大会)

こちらデモでもっていったセンサー満載でIoTできる IchigoSensors x IchigoSoda を使った、実用品。位置情報リアルタイム共有デバイス!明道中学校のすぐそば!マルツ二の宮店で買った単3x4本の電池のケースをつないで、BTNとGNDをジャンパーでつないでおけば、オリジナルデバイスのできあがり。

スライドスイッチONで起動。OFFで停止。使い方はシンプル!ちょっと大きめのスイッチを外付けするのもかっこいい。電池ケースとIchigoSodaとの接続は、L字ピンヘッダーにはんだづけすると抜けにくい。上の5V端子に6Vちょっとを入力し、下にGNDをつなぐ。キーボードをつながなければ、ちょっと高めな電圧をかけても、レギュレーター(降圧器)がなんとかしてくれるので大丈夫。

試しに10セット作った位置情報リアルタイム共有デバイス。

テストで動かすとGPS信号を使った正確な時刻で光るLEDの同期が美しい!(動画)

プログラム 1014byte
sakura.io省エネモード使用、IoTコマンド不使用、GPSは事前設定必要

'GPS location shareing device 10 VIDEO0:WAIT5400:GSB@ECO 20 GSB@GPS:D=[4]-[91]:E=[6]-[93]:IF(ABS(D)+ABS(E)%10000)>59GSB@SGPS 30 GOTO20 'send location data 200 @SGPS:FORI=0TO7:[87+I]=[I]:NEXT:LET[97],[0],[1],[2],[3]:GSB@ADD:LET[97],[4],[5],[6],[7]:GSB@ADD:GSB@FL:WAIT600:RTN 'get GPS data 300 @GPS:CLS:BPS9600:UART3,2 301 K=INKEY():IF!KCONT 304 IFK!=36GOTO300 305 K=INKEY():IF!KCONT 306 IFK!=71GOTO300 308 K=INKEY():IF!KCONT 309 IFK=42UART0,0:P=#900:GOTO700 310 ?CHR$(K);:GOTO308 500 N=0 510 C=ASC(P):P=P+1:IF!CORC=44ORC=46ORC=34C=C=46:RTN 520 IFC>=48&&C<=57N=N*10+C-48 530 GOTO510 540 N=0:IFASC(P)=44RTNELSEFORI=1TOM:N=N*10+ASC(P)-48:P=P+1:NEXT:RTN 700 GSB500:M=2:GSB540:[1]=N:GSB500:[2]=N:GSB500:GSB500:GSB500:[3]=N:IFCGSB500:[4]=N:ELSE[4]=0 712 GSB500:GSB500:[5]=N:IFCGSB500:[6]=N:ELSE[6]=0 713 GSB500:GSB500:[7]=N:GSB500:GSB500:GSB500:GSB540:[1]=[1]+N*100:GSB500:[0]=N:RTN 'sakura.io utils 810 @ADD:LET[95],2592,25089:C=0:FORI=0TO11:C=C^PEEK(#8BE+I):NEXT:[101]=C:?I2CR(79,#8BE,13,#8BE,3):RTN 820 @FL:LET[95],36,36:?I2CR(79,#8BE,3,#8BE,3):RTN 830 @ECO:POKE#8BE,#B0,1,1,#B0:?I2CR(79,#8BE,4,#8BE,3):RTN

緯度経度の差の合計が10万分の1度を超えたら位置情報を送信。最小送信間隔は200行のWAITで10秒と設定して通信量を制限していますが、お好みに合わせて設定ください。1万回で64円のさくらインターネットのsakura.io、いろいろ夢、広がりますねっ。

links
- 今や中学校のプログラミング部は大人気!どんどん作ってコンテストに応募しよう!近所の学校同士で交流もいいかも!? – about yrm

鯖江市地域活性化プランコンテストの参加賞、鯖江生まれのパソコン IchigoJam の鯖江スペシャル MeganeJam 組み立て動画

2018/09/09
#IchigoJam #movie #sabae #sabaepc 

鯖江で市長をやりませんか?

11回目、リニューアル初回の鯖江市地域活性化プランコンテスト! 地元の高校生と、全国から集まった大学生がチームを組み、デザイン思考とスキット(寸劇)形式で発表し、観覧車全員審査委員。

3日間のプラコン終えた参加高校生&大学生!


新たな第一回の始まりと挨拶する、竹部さん


分かりやすいと好評だった、スキット型の発表、鯖江市の選べる未来、6プラン。
18名の大学生と12名の高校生、参加者計30名に参加賞、鯖江生まれのパソコン、IchigoJamの鯖江スペシャル、MeganeJam!


参加賞パッケージ


MeganeJam特性はんだづけ手順を同梱しています。手順書はオープンデータ、他Jamへのカスタマイズへも活用ください。(PDF


動画でたわかる「MeganeJam(IchigoJam鯖江版)のはんだづけからエルチカ、ゲームづくりまで」 by スマホARの録画アプリmeganerec

- 組み立て推奨場所
1. 福井県鯖江市 Hana道場(はんだごてあり!)
2. 東京秋葉原 Tokyo Assemblage AKIHABARA(東京秋葉原)


配信を担当した福井高専の後輩たち!


高校生!


高校生!


福井高専専攻科生、大学生と永平寺町エボリューション大使、あみる。(も浮く意向セッションだアイク部)!


参加チーム!


みなさん、おつかれさまっ&ありがとう!


スタッフも大集合!


一本締めする鯖江市リアル市長、牧野さん!

地元の高校生のやる気に火がついたのはヤバイ!
加速する鯖江の未来づくり。

マシン語で150倍速!フルカラーLED「APA102C」がお土産のゲーム機を作ろう福井高専公開講座

2018/09/01
#IchigoJam #sabae #kosen 

未来の高専生に会えた、福井高専の公開講座。テーマは「ゲーム機を作ろう」

できあがったゲーム機!
ブレッドボードにタクトスイッチを2つ、LED1つ、サウンダーを搭載し、改造かわくだりゲームを作りました!


中学生向けの2時間の講座、エルチカゲームからかわくだりゲームの基本コースに加え、ブレッドボードとフルカラーLEDを扱う高専スペシャル!(資料、ゲーム機を作ろうPDF


コントローラーにするのにちょうどいい!


続いて、演出用のフルカラーLEDをまずははんだづけ!


そして今回の最難関、フルカラーLED、APA102Cを使った「SparkFun Lumenati」用プログラムの写経!
全員完走!色とりどりに光るLEDをゲット!

今回はBASICでフルカラーLEDを制御しましたが、フルパワーで毎秒5000万回計算するCPUをフルに使うマシン語を使うと、150倍速以上の制御が可能です!

BASIC、SPIの8bit送信を一部マシン語化、制御部分をフルアセンブラで実装の3パターン、速さの違いをぜひご覧ください!

配列の[0]から[7]に10進数3桁で色の三原色、RGBを入れてGSB@Lで呼び出す、BASICのAPA102フルカラーLED制御プログラムとデモがこちら。

30 CLV:GSB@L:FORI=0TO7:[I]=RND(1000):NEXT:CLT:GSB@L:?TICK():CONT 200 @L:N=0:FORI=0TO3:GSB@S:NEXT 210 FORI=0TO7:N=255:GSB@S:M=[I]:N=M%10:GSB@S:N=M/10%10:GSB@S:N=M/100:GSB@S:NEXT 220 N=255:FORI=0TO3:GSB@S:NEXT:RTN 230 @S:FORJ=7TO0STEP-1:OUT1,0:OUT2,N>>J&1:OUT1,1:NEXT:RTN

8コ点灯するのに155カウント、2.5秒かかります。順番に変わっていく様子が分かりやすい。

230行のCIに向けてオン・オフしながらDIにデータを8bit送るSPIという制御部分をマシン語化してみましょう。

@SPIW8BIT R3=[@GPIO1]L R1=1<<7 @LOOP R2=0 R0&R1 'F=N>>(7-I)&1 IF 0 GOTO @SKIP R2=2 @SKIP [R3+`11]L=R2 ' OUT1,0:OUT2,F R2+=1 [R3+`11]L=R2 ' OUT1,1 R1=R1>>1 IF !0 GOTO @LOOP @END RET @GPIO1 DATA L #50010000

asm15でアセンブルして、28byteのマシン語を書き込み、@Sの中をマシン語に変更すると20倍速!

10 POKE#700,5,75,128,33,0,34,8,66,0,208,2,34,218,96,1,50,218,96,73,8,246,209,112,71,0,0,1,80 230 @S:U=USR(#700,N):RTN

8コ分の制御をまるっとマシン語に置き換えてしまうことで、更に高速化!

@APA102C PUSH {PC,R4,R5,R6,R7} R4=8 R4=R4<<8 R4+=R1 R5=8 ' num of LEDs R6=#F R7=@SPIW8BIT R7-=1 ' for Thumb +1 or -1 R3=[@GPIO1]L R0=0 GOSUB R7 GOSUB R7 GOSUB R7 GOSUB R7 @LOOP R0=255 ' brightness `11100000+max31 GOSUB R7 R0=[R4]W R0&=R6 GOSUB R7 R0=[R4]W R0=R0>>4 R0&=R6 GOSUB R7 R0=[R4]W R0=R0>>8 GOSUB R7 R4+=2 R5-=1 IF !0 GOTO @LOOP R0=255 GOSUB R7 GOSUB R7 GOSUB R7 GOSUB R7 POP {LR,R4,R5,R6,R7} @SPIW8BIT 'setting:R3 param:R0 use:R1,R2 R1=1<<7 @LOOP R2=0 R0&R1 'F=N>>(7-I)&1 IF 0 GOTO @SKIP R2=2 @SKIP [R3+`11]L=R2 ' OUT1,0:OUT2,F R2+=1 [R3+`11]L=R2 ' OUT1,1 R1=R1>>1 IF !0 GOTO @LOOP @END RET @GPIO1 DATA L #50010000

96byteのマシン語で制御できました!(色の指定は、16進数3桁、例えば #F00 で赤)

10 POKE#700,240,181,8,36,36,2,12,68,8,37,15,38,14,167,1,63,18,75,0,32,184,71,184,71,184,71,184,71,255,32,184,71,32,136,48,64,184,71,32,136,0,9,48,64,184,71,32,136,0,10,184,71,2,52,1,61,240,209,255,32 20 POKE#73C,184,71,184,71,184,71,184,71,240,189,128,33,0,34,8,66,0,208,2,34,218,96,1,50,218,96,73,8,246,209,112,71,0,0,1,80 30 CLV:U=USR(#700,0):FORI=0TO7:[I]=RND(#1000):NEXT:CLT:U=USR(#700,0):?TICK():CONT

一瞬で8コの色を変更できるので、いろんな演出ができそうですね!
マシン語に興味を持ったら「IchigoJamマシン語入門」をどうぞ!

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