CyberFridayで初発表された福井高専発の自作ミュージックシーケンサーTracksのファームウェアづくり開始。 ひとまず文字とMIDI出力を確認!

以前IchigoJamと接続して遊んだ、MIDI楽器、KORG volca beatsをTracksで鳴らしている様子。


Tracks付属の240x240の液晶ST7789のデバイスドライバを通じて、Hello STM32F405 と表示。開発言語は現在はC言語。音づくりや、作曲用に向いた言語をサポートするのもおもしろそうです。(参考、オーディオプログラミング言語 Advent Calendar 2020 - Qiita

TracksとMacは、Nucleoを経由して、st-linkで書き込み。--resetをつけると書き込み後自動起動してくれて便利。

$ st-flash --reset write build/tracks_f405.bin 0x8000000

TracksのCPU、STM32F405RGは、最大168MHz、浮動小数点ユニット付きの32bit Cortex-M4、Flashは1MB。豪華!

本日はものづくり好きデー!


技術実証費用としてチームごとに最大300万円の予算がつく、総務省主催、高専WiCON2020の審査会。 10高専のチームによるIoTや5Gを使ったさまざまな新しいものづくりへのチャレンジに刺激を受けます。実際作って試してみる、いいですね! 審査結果をお楽しみに!
高専WiCON2021」への応募内容も公開されてますよ!

最終金曜日の夜はCyberFriday!
新高校1年生、地域活性化アプリを企画する高校生、現役高専生、大学生、新社会人、料理人、二胡奏者、フィジカル職人、IT職人など多彩な参加者で賑わいました。


めがね 修理 再生工房」鈴木眼鏡工業の鈴木さんの展示コーナー。


壊れたメガネを修理するだけでなく、その持ち味生かした新しいアクセサリーへの生まれ変わる!


オセロのコマを投げあう新スタイル「投げオセロ」を体験!重ねたり、ぶつけて動かしたり、立てた状態にしたりといろいろ新感覚がユニーク! 来月はiPhoneでも動くようになる!?


動画でもどうぞ!


はんだづけコーナー!


NT鯖江で出会ったやきもの「抵抗の形のはんだこて台」かわいいでしょう!


すてきカフェ&眼鏡屋さん、EIGHT SENSEによる、竹の子えだ豆たきこみご飯 by EIGHT-SENSE


ほうれんそうキッシュ、デザートのブリュレチーズケーキ、ラスクも人気でした!


初投入のドローン。条件はGPS付き、4K写真撮影可能、200g未満!
HolyStone HS175


ドローンからの撮影、用意したmicroSDカードがうまく動かず、スマホへのストリーミング映像なので本気な画質ではありません。 次回の集合写真はドローンで撮ろう。


コンパクトに持ち運び用のケースもついてます!


LTタイム!おもしろいを共有しよう!


意外とすぐ乗れるようになる、セグウェイ体験も好評でした!


高専4年生によるミュージックシーケンサー「Tracks」CyberFridayで初お披露目!


音楽とコンピューターはなかよし!


押し心地の良いキーボードの赤軸の派生キーを使ったインターフェイス。レーザーカッターで切り出したケースを重ね合わせた丁寧かつ、CPUを魅せるスタイルがかっこいい! これは、ファームウェア開発にも力が入る!MIDI-OUT端子による他楽器やPCとの連動にも対応!


オススメ本の紹介コーナー。 「電子工作マガジン 記念50号」と「ゼロからのOS自作入門」。 ハードウェアから、基本ソフトもアプリも!


生成したefiファイルをUSBメモリに EFI/BOOT/BOOTX64.EFI として保存、BIOSをいじって起動、動きました!

Zen言語開発者クリス協力による、Zen言語によるUEFI ハローワールドはこちら!(src on GitHub)

pub const UefiHandle = *mut @Type(.Opaque); pub const SimpleTextOutputProtocol = extern struct { reset: fn (*SimpleTextOutputProtocol, bool) callconv(.C) usize, output_string: fn (*SimpleTextOutputProtocol, [*:0]u16) callconv(.C) usize, }; pub const SystemTable = extern struct { _: [60]u8, con_out: ?*mut SimpleTextOutputProtocol, }; fn printu8(out: *SimpleTextOutputProtocol, msg: []u8) void { for (msg) |c| { _ = out.output_string(out, &[1:0]u16{c}); } } comptime { @export(EfiMain, .{ .name = "EfiMain" }); } pub fn EfiMain(handle: UefiHandle, system_table: *mut SystemTable) callconv(.C) usize { const con_out = system_table.con_out.?; _ = con_out.reset(con_out, false); printu8(con_out, "Hello UEFI in Zen!"); while (true) {} }


ご参加、ありがとうございました!
ごはん、デザート、シーケンサー、スマホゲーム、コンピューター、地域活性化アプリ、めがねのリメイクアクセサリ、OS、いろんなものづくりに触れたサイバーフライデー。
来月は2021/4/30(金)、お楽しみに!

すべてのこどもたちにプログラミングを!
PCN主催、11回目の小中学生向けプログラミングコンテスト「PCNこどもプロコン2021」の表彰式。応募総数282点、海外からも12点の作品が集まり実質世界大会!

チャレンジしてくれたこどもたち、ありがとう!受賞した人、おめでとう!受賞しなかった人も、受賞した人の技を盗んで次にチャレンジ!

PCNこどもプロコン2021表彰式ライブ映像」(録画、2021.3.27 追記)


IchigoJam賞は、おしえて!アイチャン!
障害物との距離を音で教えてくれるアイチャンを頼りに、障害物を避けて進むゲーム!
両目が見えなくなった家族の声をきっかけにまずはゲームづくり。勉強して実用的なものにもチャレンジしたいとのこと!
副賞として、勉強用の図書券5,000円と、新たなデバイスづくりに活かせるIchigoJamハーフキット
IchigoJam readnspeak もぜひ参考に)


神山まるごと高専賞


高専機構賞、谷口理事長、ご参加ありがとうございました!
小中学絵師にいいところ見せたい高専生向け、インターンで腕磨こう!


ラズベリーパイ財団賞には創始者、エベン・アプトンからメッセージ!
BASICで育ったEbenとは同い年!こどもプログラミングを伝える同士!


アイ・オー・データ機器賞


細野会長からのメッセージ!


自分で作ったロボット、コロちゃんと共に受賞の喜びを伝えてくれました!


最優秀賞 The color picker、おめでとう!

今回も多数提供した副賞のノートパソコン。ScratchやIchigoJamで学んだ子たちは、ぜひステップアップにもチャレンジしてほしい!

Scratch、IchigoJam,JavaScript(Deno)で人類最古のアルゴリズムと言われる最大公約数を求めるユークリッドの互除法を実装する様子。(Scratch, IchigoJam BASIC, JavaScript(Deno), C言語

緯度経度の新表現、Geo3x3が対応するプログラミング言語数は、今回Scratchにも対応して69。 用途に合わせていろいろなプログラムがあります。ぴったりの言語を探してみよう!


次回もやるよ!とPCN代表、松田さん、閉会の挨拶。


参加してくれたこどもたち同士の交流の場、創りたい!

楽しいことがありすぎる!

元高専生による高専生のためのプログラム「jigインターン」をjig.jpのサービスとして個別ページでスタート! 2012年から始まったブログを中心にGitHubでまとめて、Alpine.js のタブ機能と、sakura.cssで飾りました。ソースは、GitHubでのオープンソース。 歴代jigインターンのOBの方たちによる、コンテンツや機能追加のプルリクも、ぜひ!

jigインターン / intern.jig.jp

2021春、2回目のオンラインインターン、募集開始です!プログラミングが好きな高専生、ぜひエントリーください! 本当は鯖江に招待したいところですが、叶わないので替わりにお楽しみjigboxと、優勝賞品としてバーチャルに会えるが創れるツール「Oculus Quest 2」を用意しました!

2021年春jig.jpインターンプログラム ~募集のお知らせ~
オンラインで出会った仲間、企画、webアプリ開発、チーム開発勉強会を経て、3人ずつチームに別れてチーム開発、2日間、福野ががっつりメンタリングします! 作った作品はGitHubでオープンソース。どんな作品が飛び出すか!?楽しみです!

links
- jigインターン / intern.jig.jp

対応言語数が47まで増えた「Geo3x3」、最近使われている言語で見るとどのくらいカバーできているか、 GitHubの言語別統計「GitHut」でチェックしました。
PUSH数(GitHubへのコードのアップロード)で見ると、JavaScriptが次点のPythonの倍以上と圧倒的!


6位のShell(シェルスクリプト)が気になりました。そもそもプログラミング言語としてカウントするもの!?くらいの認識でしたが、変数、繰り返し、関数があって一応プログラミングもできる様子。

geo3x3_encode() { local lat=$1 local lng=$2 local level=$3 local res= if [ $level -gt 0 ]; then if [ `echo "$lng>0" | bc` -eq 1 ]; then res=E else res=W lng=`echo "scale=16; $lng+180" | bc` fi lat=`echo "scale=16; $lat+90" | bc` unit=180 local i for ((i=1; i<$level; i++)) do unit=`echo "scale=16; $unit/3" | bc` local x=`echo "scale=0; $lng/$unit" | bc` local y=`echo "scale=0; $lat/$unit" | bc` res=$res$(($x+$y*3+1)) lng=`echo "scale=16; $lng-$x*$unit" | bc` lat=`echo "scale=16; $lat-$y*$unit" | bc` done fi echo $res }

ということで、Geo3x3のエンコードを移植してみたのがこちら(src on GitHub)。 if文やfor文の書き方にクセがあり、変数代入前後にスペースをいれてはいけなかったり、計算するときは$(())で囲む必要があったり、浮動小数には対応していないので、外部コマンドbcに頼ったりとなかなか大変ですが、ちゃんと動くようになりました。

$ bash geo3x3.sh encode 35.65858 139.745433 14 E9139659937288

LinuxやMacであれば何もインストールすることなく使えて、他のコマンドとの組み合わせも簡単なのがシェルスクリプトのいいところ。

ランキングで見るとC++よりは下ですが、C#やCと同じくらい使われています。 確かに、各種プロダクトでもセットアップや、起動スクリプトなどで使われているので、確かにPUSH数が伸びることにも納得です。 WindowsやDOSでいうバッチファイル(BAT)、深くやるかどうかは別として、エンジニアには必須技術ですね!


本日、日興証券オープンイノベーションラボの新企画「高専インカレチャレンジ」の北陸5高専向けトライアルの説明会!


一緒にメンターする、長岡高専出身、フラーの渋谷さんと共に高専生への応援演説!


今回のプラットフォームとして使用する、フランス生まれのイノベーションプラットフォーム「agorize」、日本法人の中澤社長からもメッセージ。

links
- SMBC日興証券がAgorizeオープンイノベーションプラットフォームにて「高専インカレチャレンジ」を開催|Agorize Japan株式会社のプレスリリース

jigインターンは我々jig.jpの人間にとっても良い刺激になります。シンプル好きな私にいいかもと紹介してもらった「Alpine.js」での不満、ESモジュールが使えない点を勝手に改善した「Alpine_es」をつくりました。

Alpine GAME」(src on GitHub)
Alpine.jsでライフゲームを作ってみた - Qiita」のESモジュール対応版!
VueやReactでおなじみ変数の変化をそのまま画面に反映する拡張タグのみをシンプルに切り出したコンパクトなライブラリがいい感じですが、scriptタグにtype=moduleを付けると動かないのが残念! そんなときはオープンソース、元から改造しちゃいましょう!

1. import文の表記をESモジュールに合わせた
2. 唯一の依存モジュール Observable Membrane by salesforce を組み込み
3. Alpine.start を外出しして、変数定義のタイミングに合わせた

あとは、名前空間の関係で、html側の変数を data() から window.data() に変更して、Alpine_es/es/index.js あらAlpineをimportすればOK!

いろんなアプリ開発に使ってみる準備ができました。


IchigoJamの現状と将来へ向けて
高専フォーラムに参加、国産PC、AMATERASプロジェクトの一貫として、IchigoJamではじめるガチエンジニアの育て方を紹介。


夜は神山まるごと高専のイベント、少人数で別れてディスカッションする、二部のファシリテーターを担当。楽しく未来の学校、話し合うことができました。
次回もお楽しみに!

起業家甲子園と合わせて開催、社会人向けのコンテスト起業家万博に、信越地区代表としてチャレンジした長野高専出身の株式会社エボシステムのサイキックこと、佐伯さん!

ベジスター 〜日誌で繋がる生産者と消費〜
IT集団でありながら、農家を営むエボシステムによる新サービス。農業DXのはじめのいっぽ、農家の方には便利なデジタル日誌を提供しつつ、そのまま消費者へのメッセージを楽しい育成シミュレーションゲームと共に届けるサービス。


かわいいキャラクターとリアルな日誌との連携がおもしろい!


作成した野菜のパッケージにQRコードを付けて、認知を広めます。
iPhone版、ダウンロードできますよっ。
農家とつながる育成シミュレーション 『ベジスター』 公式サイト


SNSでの悪いバズリ”炎上”を未然に防いでくれる、jigインターン2021冬Eチーム作品「炎上チェッカー」は、情報公開な不慣れな農家の方にも提供できると安心かも? 誤字脱字のチェックや、おかしな文章を指摘してくれる機能などあると、更にうれしいかも!


他プロダクトへのコラボや、改善につなげるべく、動かしかたドキュメントを用意しました!自分で作ったものも後でみるとわからなくなるもの。作っていいきながらメモしていくのがおすすめです。


Google社のAPI「Cloud Natural Language」を使って、まずは炎上指数を取得し、計算するAPIをコンソールにて動作を確認。 うまくいかなかったらAPIキーを確認しましょう。


APIとしての動作をブラウザで確認!GETパラーメータ(?以降にJSON指定)でのチェックが便利です。


炎上指数が表示され、ツイートできます。


こうして、ツイートして広がってくれるとうれしいですね!

API活用による新サービス、どんどん実現していきましょう!

昨年に続きオンライン開催となった10回目の総務省/NICT主催の起業家甲子園。 全国の地域予選からICTメンターにより選出された学生チームによる決勝プレゼン!

エムキャスで配信、オンライン開催。


「Wall Art Online」
有明高専チームのプレゼン、地元の工務店とコラボし、壁面ディスプレイを互いに接続し、バーチャル二世帯住宅を提案するプラン。 スマホや、パソコン、大型テレビで十分!?いやいや、きっとその場に等身大に現れる遠隔地の様子は別次元の自然さなはず。 光量の問題は置いておいて、まずは大型プロジェクターで実験してみましょう!


「オーラルボイス」
高専プロコンからの選出、福井高専チームは口の動きと機械学習で英語の発音を判定し、オンライン対戦ゲームで楽しく学ぶプラン。 英語の先生の口の動かし方大事!というアドバイスから生まれた作品。


福井高専チーム、有明高専チームのICTメンターとして応援メッセージ。


「ICT・IoTフュージョンによる農業支援サービス」
旭川高専チームは、テクノロジーで日本の農業を再生させる!


高専WiConでも活躍とのこと。

「エレクロ」
会津大学生による、名前がおもしろい、デザインが変えられる新ファッションというビジネス。 ゲーミングネクタイもエレクロファッションの仲間かも? テクノロジーとファッション、どんどん融合進めたいですね。


Alumnote
同窓会プラットフォーム、Alumnoteプランが最優秀賞!創業済みで、サービス運用も始まっていることが評価されました。


Alumnoteのメンター、UFJリサーチ&コンサルティングの杉原さん、最優秀メンター賞獲得!


審査委員長、セプテーニ・ホールディングスの佐藤さん!


実際の投資家からの質疑応答と審査、良い刺激になりますね。jig.jpもスポンサーです!

良いプランには、良い名前と、良いデザインが伝えるために大事。
プロトタイピング時の味方、お手軽デザインツール「Bootstrap」適応の例です。

すくーるめもりー - Bootstrap一部適応プルリク
Alumnoteにも通じる、同じクラス内での写真共有サービス、jigインターン2021冬Bチーム作品、「すくーるめもりー」への改善提案(プルリク) 左がビフォー、右がアフター。コードの違いは極わずか、参考にどうぞ!


有明高専チームから送ってもらった写真!
ものづくり学生、応援します!

発電所マップを作った後に見つけた、国土地理院のもう少し新しい発電所XMLデータ。形式が違っていたので調整して、アップデート! 都道府県別や、事業者別など、いろいろと活用できそうです。(ただし、非商用利用)


発電所マップ2013
2013年版データを発見、12,722件の発電所データを発電所種別にマッピングしてみました。事業者名などがきれいに入っています。


福井県の原子力発電所。発電量を表すgeneratingPowerの単位が不明です。(スキーマファイルがリンク切れ)


太陽光パネルが太平洋ベルト上に多数設置!


エレクトリカル・ジャパン - 発電所マップと夜景マップから考える日本の電力問題 | 東日本大震災アーカイブ - 国立情報学研究所
最新の発電所をチェックするのにオススメは、こちら、発電所情報を集めているサイトです。 データベース構築の経緯と詳細国土数値情報版発電所データベースの問題点が記述されています。 コロナウイルス対策ダッシュボード構築同様、様々な苦労があるようです。

商用利用を外したオープンデータ化と、発電所施設の稼働状況を知らせるサイト「発電情報公開システム HJKS」のオープンデータ化による連携実現したいですね!

IchigoJamイチゴ刈りを毎年知らせてくれた、福井高専名誉教授、PCN大野研究所の前川さんが亡くなりました。
【訃報】JARL副会長・北陸地方本部長 JA9BOH 前川 公男 氏
アマチュア無線同好会に誘ってくれたのもハムちゃんこと、前川さんでした。心よりご冥福お祈りします。

同ページに、アマチュア無線界の大ニュース。
今春から社会貢献活動でアマチュア無線が活用可能に! -2月2日、意見募集結果を総務省が公表-」(総務省
停電時でも使用可能なアマチュア無線、その役割が大きく見直されそうです。
前川さんの想い、次世代へと引き継ぎます!

えぞプロコンの運営メンバーとして活躍した学生、高専生。 地域の課題、プログラミングで楽しく解決していきましょう!

プログラミング学習とは、問題解決の連続。仲間と一緒にチャレンジすればより楽しいかも?インターネット時代、どんな場所でもつながっています。 後輩からの質問、大歓迎。IchigoJam BASICの次にオススメ、JavaScriptでのオンラインメンタリングを始めます!


若きエンジニア、Code for Hakodate/PCN函館メンバーとオープンデータ伝道師で「VS COVID19」のデザインを担当、行政アーティストの山形さんのいる、北海道森町へ!


森町からの帰路で発見、不思議なお店、ラッキーピエロは函館ならでは!


函館、MIRAIベースにて、Dvorakをはじめた高専生へ、ミニJavaScript講座!
JavaScriptはじめのいっぽ


learnglobish
タイピングといえばで思い出した、Globishの1500単語CSVデータ化して、プログラムを少し修正。


Type 100 words Globish」(src on GitHub)
福井高専後輩takerucamのコードをGitHub上で添削改造。 シンプルでやさしいオルト英語、Globish 1500単語から100単語を早打ちするゲームにしました。

なんとか2分切ろうとチャレンジするも及ばず・・・ 表示後の反応速度と、ミスなく流れるように打てる単語数をいかに増やすかがタイム短縮のコツです。 英語の勉強にもなるので、毎日数分チャレンジするのもいいかも!?

await/async(アウェイト / エイシンク)を使うと、手続き通りにプログラムが並び、すっきりシンプル分かりやすい!(元のイベントドリブンで記述されたプログラムと比べてみよう)

window.onload = async () => { for (;;) { target.textContent = "Click to Start!" const t = new Timer(timer); const words = ['red', 'blue', 'yellow']; await waitClickOrEnter(target); shuffle(words); t.start(); for (let i = 0; i < words.length; i++) { const word = words[i]; target.textContent = word; for (let j = 0; j < word.length; j++) { while (word[j] != await waitKeyDown()); target.textContent = '_'.repeat(j + 1) + word.substring(j + 1); } } t.stop(); result.textContent = "Congratulations!!"; restart.textContent = "もう一度挑戦する"; await waitClickOrEnter(restart); result.textContent = ""; restart.textContent = ""; } };

これにシンプルに話す英語、Globishの1500単語を CSV.js を使って、読み込んでつくりました。


ロボットとIchigoJamのプログラミングづくりに通う小学生!高専生、大学生に刺激を受けて、ぐんぐん伸びることでしょう!
えぞプロコンでのネットワークプログラミング」もどうぞ!

PCNで仲間を集めて、Code for で身近ないろいろ創って地域から域広めよう!


黄色の消火栓がかわいい。福井と同じ雪国、消火栓オープンデータを使ったアプリ活躍候補エリア。


ラッキーピエロ、MIRAIベースの近くにも!ご当地オープンデータ、楽しめますよ!

このJavaScriptのコード見てほしいという方、ご連絡ください! → @taisukef

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