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

Code for Japan 地域フィールドラボ 鯖江第5期大鵬薬品&大塚グループIoT研修からつながる縁、この度、徳島県にて大塚グループ社員のみなさま向けIoTプログラミング研修会。

IchigoJam web - LED見える化版
画面だけではいまいち伝わらない、コマンド「LED1」でIchigoJamのLEDがコントロールできる感動を、少しでも再現すべく、合成写真版を作ってみました。
今回の研修ではスキップした、ゲームづくりのパートのチャレンジにもぜひどうぞ! もちろん、IchigoJamや、IchigoSoda実機でも!


スライド「はじめてのIoTプログラミング with IchigoJam x sakura.io (PDF)
2時間の体験型研修、IoTの基本はT。電子工作とプログラミングの入門から始めて、温度センサー、光センサーをIoTセンサーとして使い、スマホからLEDやサーボのコントロール体験まで!


こちらLEDが消えているIchigoJam


LED1コマンドで点灯!(合成写真)


GREENがテーマ、ステキなオフィスでした!

links
- 大鵬薬品、大塚グループで開催、IchigoJamでIoTプログラミングはじめのいっぽ / 人間に必要な栄養素アプリ
- 大鵬薬品 x 鯖江市、第5期 Code for Japan 地域フィールドラボ事業報告会 - 現場での恊働とデータが生むイノベーション

PCN秋葉原からアナログフルカラーLED用、1行色相環BASICプログラムで制御できる、色相環キラキラ新ボード!
試作版を1セット組み立てて、IoT化してみました。


ネットから回転する速度をコントロールするIoT色相環 (color wheel)


OUT2,3,4、3つの出力だけで6つのアナログフルカラーLEDをコントロール!


色の三原色、赤、緑、青、3つのLEDが1つのフルカラーLEDに入っていることがよくわかります。


雪結晶として3D組み立てされたアイロンビーズを装着でファンシー度アップ。


OUT2,1など、試してもよし。PWMを使って平均出力量をランダムに変更してみてもよし。

ぐるぐる変わる色相環、IoTで回転する速さを変えるプログラム

10 T=100 20 PWM2,0,T:PWM3,T,T:PWM4,0,T 30 FORI=0TO5:FORH=0TOT:PWMI%3+2,ABS(I%2*T-H),T:NEXT:NEXT 40 N=IOT.IN():IF N T=N 50 GOTO 20

40行を消せば、IchigoJam ver 1.2.3 でも普通に動きます! T=RND(100) としてもかわいい。


こちらパーツ!


抵抗をはんだづけ。


次にフルカラーLEDをはんだづけ。アノードコモンとカソードコモン、見た目はほぼ一緒ですが、2種類あるので注意です!


ちょっとピッチが狭くて難しいフルカラーLED部分のはんだづけは、製品版では難易度下がる予定。


完成!

商品化、楽しみですね!
実物を見たい方は、PCN秋葉原Assemblageへどうぞ。
G空間ハッカソン in 福井でも活躍した、IchigoSoda で、かんたんIoT、ぜひ IchigoJam BASIC ver 1.3 でお試しください。

3社共催、親子プログラミングイベント、楽しんでくれました!

2019-2-3 はじめてのIoTデータ活用 親子プログラミングワークショップ

かんたんデータ管理の kintone(キントーン)の サイボウズ
かんたん格安IoTの sakura.io(サクラアイオー)の さくらインターネット
かんたんプログラミングの IchigoJam(イチゴジャム)の jig.jp

人間業じゃない計算力と記憶力を持ち、世界中とつながるコンピューターくんを味方にしよう!
「データで遊ぶ」をテーマに、その入口を親子で楽しく体験するイベント。

スライドダウンロード
はじめてのIoTデータ活用 親子プログラミングワークショップ kintone x sakura.io x IchigoJam (PDF)


サイボウズ社長室ビジネスプロデューサー 中村龍太さんから、kintoneの魅力をご紹介!
牛乳で身長は伸びる?運動で身長は伸びる?データで検証してみよう!


まずはプログラミングはじめの定番、LEDの制御、エルチカゲーム、エルチカロボット、かわくだりゲーム!
電子工作も、プログラミングも、極力シンプルでインパクトあるものにとチューニングしています。


本題、IoTとは? IoT = Internet of Things、(人じゃなくて)モノのインターネット
いろんなものとネットを通じて話ができたり、モノとモノ同士がお話したりする世の中のスタートです。


インターネットは、世界100億台のコンピューターがつながったもの。
2台のIchigoJamをつないでネットワーク実験!
子供2人、Aさん、Bさんとしてペアになって、順番に操作!


遠隔操作、ブロック、チャット体験、コンピューターはつなぐともっとおもしろい。


今回使ったIchigoSodaは、IoT通信モジュール sakura.io が内蔵されたIchigoJam。

こちらが1行ずつ、楽しくキーボードからタイピングしてできあがった、かわくだりゲーム!

10 CLS:X=15 11 CLT 20 LOCATE X,5:?"O" 30 LOCATE RND(32),23:?"*" 35 WAIT 3 36 X=X-BTN(LEFT)+BTN(RIGHT) 39 IF SCR(X,5) GOTO 50 40 GOTO 20 50 ?"GAME OVER!" 60 S=TICK():?S

1行足すだけで、IoTエディションのできあがり!

70 IOT.OUT S

かわくだりゲームが、みんなの反射神経を計測するIoTデバイスに早変わり!


kintoneでみんなから送られたデータをみよう!


かわくだりゲーム、スコアランキング!
しばらく放っておいたらチートされてすごいスコアにw


大人の問題、子供がチャレンジ!
お父さん、お母さんに課題を聞いて、IoTでどう解決するか考えてみよう!
「大人の課題」とかけて「子供の好きなもの」と解く、その心は?
と、なぞかけ形式にして、即興で答えを出してもらうのもいいかも。
時間があれば、じっくり時間をかけて「こどもIoTハッカソン」が楽しい!
(課題例:留守中の火災が怖い → 創電さん、IchigoSodaで、IoT火災報知器「火守くん」を開発、販売!)


自由時間、果敢にサーボや光センサーに挑戦する子供たち!


kintone の今回のイベントページ。質問や、感想などもこちらに描いていただきました。
右側にあるアプリがメイン!


お父さん参加が多かった、今回の親子ワークショップ。親子で楽しくプログラミング、ぜひご家庭でも!


自分でつくれる IcihgoJam、秋葉原にある PCN秋葉原Assemblage ではんだづけできますよ!


楽しい作品、PCNこどもプロコンへぜひどうぞ!
決まった、第9回のノミネート作品はこちら。
PCNこどもプロコン2018 一次審査結果発表 | PCN プログラミング クラブ ネットワーク


ちょうど節分!


kintone x sakura.io x IchigoJam IoT.OUT
大人も楽しいかんたん、IoTプログラミング!

IoTでデータを気軽に集めて、kintone のグラフでいろいろデータで遊んでみると、また新たなデータが欲しくなる。
オープンデータを含めて、たくさんデータを集めてできたビッグデータ、かんたんAIを使ったアドバンストコースも楽しそう!
さくらインターネットさん中心で進む、宇宙オープンデータプラットフォーム「Tellus」β公開しています!

Tellus


本日の機材、準備らくらく IchigoJamスピードパックのIchigoSoda&わくわく電子工作キットバージョン
こんの研修してみたい!機材提供など、ご相談ください!

技術的なお話

IchigoJam ver 1.3 で正式対応した、IoT.OUT を使って、64円/月/1万回通信の格安IoT sakura.ioを通じて、1コマンドでネットへ送信。 Python3 で sakura.io から WebSocket で受け取ったデータ kintone REST API で、kintone アプリに送信、グラフ化などが簡単!というシカケ。


通信モジュールを sakura.io の管理画面で登録、サービス連携として、WebSocketを設定。
ここで表示されるトークンを使います。


ドラッグ&ドロップでできちゃう、kintone上でのアプリづくり。
かわくだりゲームのスコアランキングアプリは、「文字列(1行)」でモジュール番号、「数値」でスコアを入れることにします。
設定、APIトーク、生成する、アクセス権、レコード追加にチェックをいれて、こちらのAPIトークンと、例として URL app=?? と書かれている ID を使います。

こちらPython3のプログラム、WebSocketで受け取ったデータを、kintone に送る

import http.client import websocket import json import ssl SAKURA_TOKEN = *sakura.ioのトークンを設定* KINTONE_DOMAIN = "*kintoneのドメインを設定*.cybozu.com" KINTONE_TOKEN = "*kintoneのAPIトークン" KINTONE_APPID = *kintoneのAPP ID* SAKURA_MODULE = [ { "id":"m01", "module":"*モジュールID1*" }, { "id":"m02", "module":"*モジュールID2*" }, ] def getModule(moduleid): for item in SAKURA_MODULE: if item['module'] == moduleid: return item['id'] return None def sendData(module, val): record = { "app": KINTONE_APPID, "record": { "文字列__1行_": { "value": module }, "数値": { "value": val } } } requestJson = json.dumps(record) headers = { "Content-Type": "application/json", 'X-Requested-With': 'XMLHttpRequest', 'X-Cybozu-API-Token': KINTONE_TOKEN } connect = http.client.HTTPSConnection(KINTONE_DOMAIN) connect.request("POST", "/k/v1/record.json", requestJson, headers) response = connect.getresponse() print(response.status) data = response.read() print(data.decode("utf-8")) def on_message(ws, message): data = json.JSONDecoder().decode(message) mestype = data['type'] if mestype == 'channels': module = getModule(data['module']) val = data['payload']['channels'][0]['value'] print('on_message: ' + module + " -> " + str(val)) sendData(module, val) if __name__ == "__main__": websocket.enableTrace(True) path = "wss://api.sakura.io/ws/v1/" + SAKURA_TOKEN ws = websocket.WebSocketApp(path) ws.on_message = on_message ws.run_forever(sslopt = { "cert_reqs": ssl.CERT_NONE })

*参考
レコードの登録(POST) – cybozu developer network
IchigoSoda スタートガイド — sakura.io ドキュメント
WebSocketでの通信内容の確認 — sakura.io ドキュメント


あとは受け取ったデータでグラフをつくるだけ。こちらも選択ボックスから順番に選ぶだけ、右側にプレビューがあるのでわかりやすい!


かわくだりゲーム、一番たくさんやったのはだれかなランキング!
いろんな切り口のグラフが、簡単に作って、すぐにグループ内で共有できます。


sakura.io、イベントアラートを設定しておけば、いつのまにかすごい数が通信されてしまう心配も無用。
切断アラートを使えば、電池切れや意図しないトラブルの検出もできます!

* 撮影協力、チアプログラミング 浅井さん

links
- 小学生がつくるIoTプログラム教室、サイボウズ、jig.jp、さくらインターネットが共催 - BCN+R
- はじめてのIoTデータ活用 親子プログラミングワークショップ レポート | CSAJ 一般社団法人コンピュータソフトウェア協会

愛知県豊田市にある豊田高専。愛知高専ではない。福井高専は鯖江市にあるが、鯖江高専ではない。
高知高専からスタートした、IchigoSodaを使った出張IoT&情報セキュリティ入門、今回も楽しんでもらえました。
創造モチベアップに期待!


情報工学科2年生、IchigoSodaを使ったIoTプログラミング研修&情報セキュリティ入門。

情報工学科1年生にも楽しいIoTプログラミングの世界を紹介。
webアプリ+電子工作で広がるIoTというイノベーションの種!ぜひ気になるもの、身近なものから取り組みましょう!


こちら4年生、プログラミングに慣れている学生でも、サクッとゲームが作れる感はウケが良い。
ALT+C を押すと、ネコ絵文字登場!敵キャラを出して、ループすれば早速現れるゲーム感。
かわくだりゲーム - IchigoJamプリント


IoT化した端末から続々と送られてくるスコア、ランキング表示で盛り上がる!


ヒストグラム表示で全員のデバイスから送られて集まるビッグデータ感を体験。


チートOK宣言をした後、荒れたヒストグラム。
データに罪なし、誰にどこまで許すか、情報セキュリティは設計次第!


4年生授業後、豊田高専出身、鳥羽商船高専を経て、現在豊田高専の先生、都筑さんと。
今年度のインターンあさしぐれ、起業家甲子園メンバーも!


クイズ Q4愛知 - q4js
福井編に続き、愛知編、数が多いので10問勝負としました。
ぜひ、みなさんの愛知度、測ってみてください。

豊田高専学生のコメントを受けて、問題文が徐々に表示するように改良。
簡単JavaScriptフレームワークで、手軽なスマホアプリづくり、ぜひやってみてね!(src on GitHub
地図フレームワーク「egmapjs」、万華鏡フレームワーク「webbasarajs」もどうぞ。


いろんなキャッチフレーズがあって楽しい。
「書のまち」で検索するとちゃんと「春日井市」がトップで表示!特化するまち、いいですね。


豊田高専散策、ちょっと狭そうだけどきれいな寮!全体で約600人のキャパがあり、1-2年生は基本寮生活。
1-2年生はパソコン持ち込み禁止という規定はかなりユニーク。
自治で運営しているという寮、規定はどのような思いで作られ、今後どうしていくのか、興味深い。
福井高専では、通学制でしたが、いろいろ聞くほどに寮経験がうらやましくなります。これから高専に行く人、ぜひ!


80円のデザートがうれしい、豊田高専学食!


学科ホームページのリュニューアルアイデア募集がおもしろい!
オープンデータ対応で、アプリフレンドリーなページづくりを目指してみるのもおもしろいかも?


放課後、オープンデータアプリコンテスト、宇部高専生と豊田高専生のチームが最優秀賞獲得!
豊田高専コンピュータ部などのみんなと祝賀会!


大きな唐揚げ!


途中、通った名東区、上社JCT、初めてのパソコン、MSXをGETした、幼稚園年長から小3までを過ごした場所!
名古屋市名東区のキャッチフレーズは「文化薫る、活気と思いやりのあるまち」

人が輝く、躍進するまち!
がんがん新しいもの創っていきましょう!

IoTプログラミング体験、情報セキュリティ入門、全国の高専へ伺います!

links
- 高専IT系部活 #kosenit Advent Calendar 2018 - Qiita
- 豊田高専コンピュータ部について - onsd’s blog
- 1時間半でわかる叡智の結晶「IoT」 - IchigoJam x sakura.io 情報セキュリティ実習 in 高知高専

IchigoJamは、MSXに習って、上位互換。
こどものお小遣いでも手が届く「安さ」と「学びやすさ」にこだわるIchigoJam。
大幅な機能拡大や、容量アップを行わない、変わらない安定感がウリです。

IchigoJam ver 1.2.3 の使い勝手をそのままに、IoTと、ちょっとした改善の積み重ねた ver 1.3。
IoT/オープンデータ/ビッグデータ/AIでも連携する、さくらインターネットさんとの共同プレスリリース。
回路もCPUも変更ないので、いままで全てのIchigoJamをバージョンアップできます!

餅は餅屋。いろんな業種の人による「プラスIoT」が熱い!
さくらインターネット「IchigoSoda (=IchigoJam x sakura.io)」のIoT火災報知器。

火災報知器と連動した無線通報端末「火守くん」を“IchigoSoda”で開発 - 導入事例・構成例導入事例・構成例
「子どもの頃、プログラミングが好きでBASICでゲームを開発していたんです。これなら私でも開発できると考えました」と社長の刀根さん自らが開発! 大人も楽しいIoT、IoT研修などのお問い合わせもどうぞ!(ichigojam@jig.jp)

2/3(日) サイボウズさん、さくらインターネットさんとも共同で、IchigoSodaを使った、IoT親子ワークショップも開催!
はじめてのIoTデータ活用 親子プログラミングワークショップ kintone x sakura.io x IchigoJam - さくらのイベント(関東版) | Doorkeeper

IchigoJam BASIC ver 1.3、5つの主な変更点
1. コマンド1つで IoT
2. ちゃんとした RENUM
3. 打ちやすくなったローマ字と絵文字
4. ゲームの幅広がる、カーソルスイッチ
5. 70% 高速化

1. コマンド1つで IoT
月額64円(年間でも768円)で実現できちゃう4G/LTEを使ったIoT。 さくらインターネットの sakura.io をIchigoJamと接続するお手軽IoTをもっと手軽にするIoTコマンドを搭載!

IoT.OUT 1 OK

IoT.OUTコマンドで16bitの数値が送信完了!sakura.ioの管理画面でリアルタイムにデータが届く様子が見えます。 受け取りたいサーバーのアドレスを打ち込めば、webサービスと簡単に接続できますし、WebSocketを使えばリアルタイムに動作するアプリをJavaScriptなどで簡単に作れます。

反対に、ネットから受け取るコマンドは IoT.IN()

?IoT.IN() 5 OK

スマホから家の内外にある家電・ロボットの遠隔操作だってできちゃいます。

いままでのIoTコマンドでは配列や、PCG領域などを使っていましたが、新たなRAM領域を使うようにしたので、使い勝手アップ!

確保した新しいRAM領域(#114A-#117F)の54bytes、ご活用ください!(IchigoJam ver 1.3 メモリマップ
また、I2Cの初期化処理を変更時のみに限定し高速化、BPSの第二パラメータでI2Cの通信速度設定にも対応しました。

2. ちゃんとした RENUM
プログラムに機能をどんどん足していって、ごちゃっとしたものをきれいに整理することを、リファクタリングといいます。 行番号でプログラムを管理する IchigoJam BASIC、10刻みではじめて、間に1刻みでいれていったのに入らない!そんな時に使う RENUM ですが、今までは行番号の振替に非対応でした。

1 LED1:WAIT10 2 LED0:WAIT10 3 GOTO1 RENUM 10 LED1:WAIT10 20 LED0:WAIT10 30 GOTO1 RUN Line error in 30 30 GOTO1

GOTO1が書き換わらないためエラーになり、手で振り直しが必要だった、ver 1.2.3。
ver 1.3 では、番号振り直しに対応したので、リファクタリングがはかどります!
ただし、プログラムの容量を変えない方針で書き換えるので、GOTO1 が GOT100 という形でコマンドにめり込む形になるので、そこは手で修正してあげください。

1 GOTO1 RENUM 100 OK 100 GOT100 OK

3. 打ちやすくなったローマ字と絵文字
キーボードを使いこなすこと、現代のコンピューターを活用する上での必須スキル。 試験の現場でも効率化のため、手描きからキーボード入力への切り替えが進むのは間違いないでしょう。 幼稚園児でもわかるアルファベットのABC、次のステップのSHIFTキーを伝授する前に、ALTキーを使った絵文字遊びがオススメです。

今回の変更で、右ALTと左ALTの違いをなくし、押しても出なかったWXYZも矢印絵文字として割り当てたので、アルファベットと合わせてお楽しみください! 「ALTを押しながらC」で感覚をつかんだら、「SHIFTを押しながら8」などもスッと伝わります。

またローマ字入力 KAK と3つキーを押した時の違いです

' ver 1.2.3 カ ' ver 1.3 カK

このように打ったキーがそのまま表示するようにしたので、打ち間違いを修正しやすくなり「キーを押しても何も出ません!」というケースがなくなります。

通常のパソコンと違って、漢字変換がないので、シンプルにローマ字入力のみを学べます。
Nの区切りとして「'」にも追加対応し、小学校でのローマ字の学習にオススメ「日本式ローマ字」にも対応!
小学校で教えるローマ字は日本式で決まり! IchigoJamプリント「ローマじでうつ、カタカナ - こくごコース」と授業計画例

また、意図せず「OK0」コマンドを使ってしまい「エラーメッセージがでません!」となるケースに対応し、表示なしは「OK2」へと変更。

RNDと「(」の間に空白をいれてしまうと Syntex error と、エラーが起きてしまう分かりにくい間違いを防ぐために、空白無視への変更。

' ver 1.2.3 ?RND (6) Systax error ' ver 1.3 ?RND (6) 5

4. ゲームの幅広がる、カーソルスイッチ
位置を指定するコマンドLOCATE(省略形LC)の第三パラメーターに1を指定すると、点滅するカーソルを表示できるようにしました。

ゲームで学ぶ、アルファベット! LOCATEの第三パラメーター、カーソルスイッチ実装
パズルゲームなどにオススメ!ベーマガへの投稿の際は IchigoJam ver 1.3 と明記しましょう。
逆に、1.2.3で、カーソルスイッチでエラーになってしまう場合は、第三パラメータを消し、自前でカーソルを表示するように改造すればOKです!

5. 70%高速化
速度より機能優先の IchigoJam ですが、せっかくのバージョンアップなので内部ロジックチューニングで少し高速化。
いままでちょっと重いなと思ったゲームが、遊びやすくなります。
1.3にして、いろいろ工夫してもまだ重い?100倍高速化するマシン語を使うのも手ですよ!
はじめてのマシン語 - IchigoJamではじめるArmマシン語その1

その他の変更
BPSで-100以下を指定することで、シリアル通信速度の高速指定に変更(BPS-2304 → 230400bps)
UART4(bit2が1)でキー入力をシリアル通信にエコーバックモード
プログラム実行時にキーバッファをクリアしないように変更
FILES0,0でファイル0のみ表示するよう変更
SOUNDピンをマシン語で使用可能に変更(SOUND()に反映されない不具合修正)
SWITCH時のバージョン表示廃止

IchigoJam BASIC ver 1.3、変わらない点
- NXP LPC1114 向け、IchigoJam BASIC が動く24KBのOS(回路に変更無いので全IchigoJamバージョンアップ可能)
- プログラムは1KB(約1000文字)、4つまで本体に保存可能(0番はボタン押しながら起動で自動起動)
- 32x24テキストスクリーン、64x48のハーフグラフィックス(PCGでパターン変更、VIDEO3などで拡大表示対応)
- 小さなこどもでもわかりやすい、アルファベット大文字を基本に、ローマ字入力でカタカナ入力にも可能

IchigoJam BASIC ver 1.3 リファレンス
IchigoJam BASIC リファレンス ver 1.3
IchigoJam BASIC reference ver 1.3 (英語版)

バージョンアップ方法
店頭のIchigoJamは順次、ver 1.3 へと置き換わっていく予定です。
お手元のIchigoJamも、自分でバージョンアップに挑戦したり、書き換えサービスで、ver 1.3 へと更新できます!
ダウンロード | こどもパソコン IchigoJam - はじめてのプログラミングパソコン(1500円)

links
- こどもIoTを実現する、こどもパソコン『IchigoJam』ver 1.3 をB Inc.がリリース ~さくらインターネットの『sakura.io』を利用した通信用コマンドを標準搭載~
- こどもIoTを実現する、こどもパソコン『IchigoJam』ver 1.3 をB Inc.がリリース | さくらインターネット
- コマンド1つでIoTも可能な1,500円のこどもパソコン「IchigoJam BASIC ver1.3」 - PC Watch
- 子どものプログラミング教育向けに開発された「IchigoJam BASIC」のver1.3がリリース:EdTechZine(エドテックジン)
- ASCII.jp:子供パソコン「IchigoJam BASIC」、さくらインターネットのIoTに対応

オープンデータ伝道師への出動要請あって、新潟県妙高市へ。

鯖江市などでのオープンデータの活用を事例を交えて紹介、IoTプログラミング体験、地理院マップアプリをベースに避難所一覧2つ星オープンデータのアプリ化、SPARQL!

妙高市役所、上越市役所の皆さんと!5つ星オープンデータで、つなげましょう、上越と鯖江!


妙高市避難所一覧(サンプル)
こちら、研修内にて使った、妙高市オープンデータの避難所一覧を表示するものに、更に、今回の旅写真を加えてみました。避難所データはWordファイルで、緯度経度未記載。緯度経度地図を使って、3点ほど追加してみました。 マップアプリづくりも、IchigoJamのプログラミングを一歩先。(src on GitHub

5つ星オープンデータを手軽に実現する odp で、アプリ作成もとっても簡単に!
災害別避難所案内「ヒナンパス」は、データをいれると、即使えます。


縮小すると、上越妙高駅付近や、名物とん汁ラーメンなどの写真も置いてみました。(addIcon)


妙高市議の村越さんと!(アップいただいた、IoT研修中の動画


月額64円で実現、IchigoSoda(sakura.io x IchigoJam)でかんたんIoTプログラミング!
妙高市役所、オープンデータ担当の池田さん、とても楽しそう!


雪の上越妙高駅!雪は少ないそう。


会場は、妙高市役所。エレベーターで見かけたゆるキャラ「ミョーコーさん
胸元の馬は、雪解けとともに山に現れる、跳ね馬!
跳ね馬(はねうま)・牛形 - haneumas jimdo page!
妙高市役所最寄りの新井駅から上越妙高駅をつなぐ、妙高はねうまラインの名前の由来。


災害相互応援協定を結ぶまち、姉妹都市など、関係ある都市同士を結ぶオープンデータもおもしろそう。


松茶屋のとん汁ラーメン、一見大きなとん汁


でも、らーめんが入ってる!


唐辛子を雪にさらして、3年寝かす、薬味、かんずり!いろいろ付けておいしい!


上越妙高駅近くにあるコンテナを並べた飲食店、FURUSATTO(フルサット)


こちらにも、かんずり!特性中華ソースで食べる、地元の鳥料理が美味!(食堂酒場 酉かつ

その土地ならではの特産物、ローカルチェーンなど、グルメオープンデータ、あるといいですね!

EXIFのGPS、位置情報付き写真から、JSONデータをつくるPython3のプログラムつくりました。お手軽マップづくりがはかどります。

from PIL import Image def toDegree(v): d = float(v[0][0]) / float(v[0][1]) m = float(v[1][0]) / float(v[1][1]) s = float(v[2][0]) / float(v[2][1]) return d + (m / 60.0) + (s / 3600.0) def fixfloat(d, beem): s = str(d) n = s.find('.') if n < 0: return s s += "0000000000" return s[0:n + beem + 1] def fixnum(n, beem): s = "0000000000000" + str(n) return s[-beem:] def getExifGPS(fn): im = Image.open(fn) exif = im._getexif() for id, value in exif.items(): if id == 0x8825: # GPS gps = value lat = toDegree(gps[2]) if gps[1] == 'S': lat = -lat lng = toDegree(gps[4]) if gps[3] == 'W': lng = -lng return fixfloat(lat, 7) + "," + fixfloat(lng, 7) return '' def getExifDate(fn): im = Image.open(fn) exif = im._getexif() for id, value in exif.items(): if id == 0x9003: # DateTimeOriginal s = ''.join(value.split(':')) return ''.join(s.split(' ')) return '' def getImageSize(fn): im = Image.open(fn) h, w, c = im.shape return str(w) + '.' + str(h) import os import sys files = os.listdir('./') list = [] for f in files: if f.endswith('.jpg') or f.endswith('.JPG'): list.append([ f, getExifDate(f) ]) list.sort(key = lambda x: x[1]) if len(sys.argv) > 1: nameprefix = sys.argv[1] n = 0 for i in range(len(list)): f = list[i][0] f2 = nameprefix + '-' + fixnum(n, 2) + ".jpg" os.rename(f, f2) list[i][0] = f2 n += 1 print('[') for item in list: f = item[0] print('{ name: "' + f + '", size: [ ' + getImageSize(f) + ' ], latlng: [ ' + getExifGPS(f) + ' ] },') print(']')

高専プロコン2018にて、起業家甲子園挑戦権を獲得したメンタリングのため、舞鶴高専へ。

起業家甲子園に向けてのメンタリング!
舞鶴市民の健康を守るため、舞鶴市役所と高専生の技術、いかに連携していけるかが鍵!


舞鶴高専のプロコン部の精鋭たちへ、NICT半間さんより、来年度の起業家甲子園へのお誘い!


はじめてのIoTプログラミング」スライド資料 PDF。
町田さんの時間をお借りして、電子制御工学科3年生向けに、特別授業!


LED1 であがる歓声! LEDの点灯実験は初めてだったとのこと!


好評、かわくだりゲーム!


IoT化して、スコアを送信して即席ネットワークゲーム大会!
チートも解禁してからのスコア争いも熱かった!
情報セキュリティのはじめのいっぽは、チートから! 攻めを知らずして守れるわけなし。


温度センサーをつないで、IoT温度計づくり。
多人数で一斉に送られてくる温度データ、リアルタイムにヒストグラム表示させるとおもしろい。


IchigoSodaでIoTプログラミング 舞鶴高専で福野さんの特別授業 | yet another 舞鶴電脳工作室より)


IoTコマンドでスマホからコントロール!

1 N=IOT.IN():IF N LED N-1 2 GOTO 1

たったこれだけ、楽しいIoTづくりへとチャレンジしましょう!
IchigoJam web でも、ゲームづくりはできますよっ。(IchigoJamプリント
IchigoJam webでも、IoTコマンドに対応しちゃうのもアリですね。


町田さん研究室、さかなつり x FPGAのデモ! 研究内容をわかりやすく楽しく伝える、楽しい!
下はなんと0歳の子供も楽しんだとのこと。


デモ動画!
PLL/PWM 方式による位置サーボ系の FPGA 実現


手作りスマート化された、ロボコン部の部室の鍵。取りに行くのが面倒だから作った、と、無いものは作る精神!


ご案内いただいt製作工場! キロW級のレーザー加工機! 金属も余裕で貫くとのこと。


加工サンプル、金属加工品があるのがすごい。


金属加工でつくった時計、かっこいい


舞鶴は造船所が近いということで、溶接施設も充実


大型高級切り出し加工機、学生が自由に使っているとのこと、高専生なら、高専にある機材、学科関係なくどんどん活用しちゃいましょう。


舞鶴高専訪問記 2019.1.11
紹介いただきながら撮った写真、EXIFデータとして位置情報がついているので、取り出して、マッピングし、簡単地図アプリフレームワーク「egmapjs」を使って訪問記アプリにしてみました。 町田さん、ありがとうございました!


舞鶴では松葉ガニ(ズワイガニの山陰の呼び名、福井では越前がに)のメスを、「こっぺかに」と呼ぶ?
こっぺかにロボコンというのもかわいい!(参考、小学生 越前がにロボコン


おいしい煮魚、いただきました!


起業家甲子園に向けて、気合充分!

links
- IchigoSodaでIoTプログラミング 舞鶴高専で福野さんの特別授業 | yet another 舞鶴電脳工作室
- 1時間半でわかる叡智の結晶「IoT」 - IchigoJam x sakura.io 情報セキュリティ実習 in 高知高専>

福井市美山中学校の1年生全員24名が、株式会社jig.jpの本店所在地、めがね会館訪問してくれました!
一億総プログラミング必修化時代、中学生にも楽しく体験してもらいたいですね!


はじめての電子工作は、LEDの差し込みから!


パソコン(IchigoJam)に、入力(キーボード)、出力(ディスプレイ)、電源(microUSB)を接続してスイッチオン!


たっぷり2時間、はじめてのプログラミングから、ネットワークの基本、ゲームづくり、IoT化まで!楽しんでもらえたようで、何より! 学校に戻って、いろいろアイデアを出すとのこと。実現に向けてぜひ協力しますよ!

今日の装備、エモペンダントをアップグレード!

ミニエモメガネペンダント!


円形WS2812Bをもうひとつ、L時ピンヘッダーの1ピンをペンチで曲げます。


作ってあった左側の円形LEDのDOUT端子から、右側円形LEDのDIN端子に線材をはんだづけ!


24コのWS2812Bをぐるぐると回す制御の実験!


プログラムはこんな感じ!

10 POKE#700,240,181,68,24,24*3,32,13,73,0,34,114,182,128,37,35,120,1,52,210,67,10,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,210,67,10,96,1,62,253,209,109,8,239,209,1,56,234,209,98,182,240,189 11 POKE#73A,0,0,0,1,0,80 15 OUT11,0:D=#800:W=2:CLT:F=0 16 IF BTN() R=RND(1):CONT 20 FORI=0TO2:C=RND(1000):GSB@PUTC:U=USR(#700,D):GSB@ROTM:GSB@ROTM:GSB@ROTM:GSB@ROTM:NEXT 30 GSB@ROTM 40 IF BTN() F=1:C=RND(1000):GSB@PUTC:CLT 42 IF F && TICK()>5*60 F=0:GOTO 20 44 IF TICK()>180*60 C=0:FORI=0TO11:GSB@PUTC:GSB@ROTM:U=USR(#700,D):WAITW:NEXT:SLEEP 50 GOTO 30 80 @ROTL:A=PEEK(D):B=PEEK(D+1):C=PEEK(D+2):COPYD,D+3,11*3:POKED+11*3,A,B,C:RTN 90 @ROTR:A=PEEK(D+33):B=PEEK(D+34):C=PEEK(D+35):COPYD+12*3-1,D+11*3-1,-11*3:POKED,A,B,C:RTN 100 @ROTM:GSB@ROTL:D=D+12*3:GSB@ROTR:D=D-12*3:WAITW:U=USR(#700,D):RTN 110 @PUTC:POKED+3,0,0,0,C/100,C/10%10,C%10:POKED+12*3,C/100,C/10%10,C%10,0,0,0:RTN

80-90行 COPYコマンドを使って、左右の円形LEDを、右回転と左回転する @ROTR、@ROTL がポイント!
16行 ボタンが押されている間ランダムを回すことで、起動時のパターンを変更
10-11行 WS2812B制御用ドライバ、Armマシン語プログラム

links
- 円形WS2812B x IchigoDake x DakeCap = エモペンダント
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1(もっと深く知りたい人へ)

ポケベル、おつかれさま! 記念に、IchigoJamでポケベル風を作りました。(通信料は月額64円/1万回受信
ポケベル、来年9月終了へ(共同通信) - Yahoo!ニュース

開始はなんと、50年前の1968年(無線呼び出し - Wikipedia)、1996年、高専内でも普及、公衆電話から数字で送るメッセージ、やりました! その後すぐにPHSへと移り変わりつつも、ポケベル入力(ベル打ち)は最強でした。


スマホや、パソコンから8文字メッセージを入れて、送信ボタン、ビープ音がなってディスプレイに表示。なかなかのポケベル感。

sakura.ioからの受信コマンドはこんな感じ!(正常受信でF=1となる)

LET[0],48,48:?I2CR(79,#800,3,#820,22):F=[16]!=5

こちらがポケベルプログラム for IchigoJam x sakura.io。
バイナリを受け取ったとして、受け取った最大8文字を画面に大きく表示(VIDEO 5)し、ビープ音を鳴らす

10 VIDEO 5 20 LET[0],48,48:?I2CR(79,#800,3,#820,22):F=[16]!=5:S=#824:POKE S+8,0 30 IF !F WAIT 10:GOTO 20 40 LC 0,2:?STR$(S) 50 PLAY"O5 A8R64A2R A8R64A2" 60 GOTO 20

送信は国野亘さんによる「Message IoT - sakura.io」を使ってみました! TokenやModuleの保存ができて便利です。とても丁寧な解説があるので、合わせてご覧ください!「ボクにもわかる IchigoJam用 IchigoSoda / sakura.io の接続方法

IoT時代のポケベルは応答もできます。
ボタンが押されていたら「了解」の意味で「1」を返してみましょう。(for βファーム)

25 IF BTN() IOT.OUT 1:WAIT 60:GOTO 20

用途に合わせていろいろ改造ください!

links
- ボクにもわかる IchigoJam用 IchigoSoda / sakura.io の接続方法
- IchigoJam x sakura.io でつくる格安IoTチャットデバイス
- Making of IoP = Internet of Pager(ポケベル@ja) / jig hackathon 2017

福井県の学生集まるFスクエアにて、学生向けイベント。せっかくなので、手を動かしてもらう、IoTプログラミング体験45分版も実施、家電をスマホで操るIoT、簡単にできちゃう感、楽しく伝わった様子! (資料掲載、はじめてのIoTプログラミング

こちら応用例、IchigoJam用の学習リモコン拡張ボード「ADICGIR IchigoJam赤外線学習リモコン」をIchigoSodaに装着し、スマホからテレビやエアコンを遠隔操作できちゃうものも、ものの1分でプログラミング完了!

プログラムはわずか4行

10 OUT 63 20 N=IOT.IN() 30 IF N OUT N,0:WAIT 30:OUT N,1 40 GOTO 20

10行で、ひとまずリモコン送信を全部OFFにする(負論理なので0で送信、1でストップ)。
20行で、ネットからデータを受け取り、番号指定されたリモコン信号を送信!
例えば、1をテレビの電源ON、2をエアコンON、3をアンプなどなど


設定は簡単、リモコン拡張ボードのスイッチをLEARNに切り替え、ボタンを押して、リモコンをボードに向けて送るだけ。
スイッチをCONTROLに切り替えれば、OUTコマンドで送れます!(1番を発信)

OUT 1,0:WAIT 30:OUT 1,1


参加してくれた学生さん、楽しい時間をありがとう!!


福井駅東すぐ側、AOSSAの7FのFスクエアは、学生がふらっと立ち寄れるキレイなスペース。 学生発のいろんなイベントにも良さそうですねっ。

「起業してやりたかったこと・福井から実現したい夢」
伝えたかった、地方の学生ほどにあるチャンス、感想・相談、Twitterでもメールでもお気軽にどうぞ!

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