『情報コース』もっとくわしく編
『情報コース』では、シングルボードコンピュータ『Raspberry Pi』や独自仕様のブロックプログラミング開発・実行環境『オコゲ』、各種センサやモータなどを使用してプログラミングを楽しく学び、ICT (Information and Communication Technology – 情報通信技術) や IoT (Internet of Things – モノのインターネット) などの情報技術を習得することを目的としています。
Raspberry Pi シングルボードコンピュータ
Raspberry Pi は、イギリスのラズベリーパイ財団 によって主に教育で利用することを想定して開発されたシングルボードコンピュータ です。小型・軽量で低価格、性能は価格なりですが、OS (基本ソフト) に Linux (Debian) を採用し、モニタとキーボード、マウスを接続してデスクトップを備えた GUI が使える、れっきとしたパーソナルコンピューターです。モニタは HDMI 入力のあるテレビでも代用でき、導入コストが低いのが特徴です。PC と大きく異なる点は GPIO ( General-purpose input/output – 汎用入出力) 端子の存在で、ここに各種センサやモータなどを接続して数値を読み 取ったり制御したりすることができます。つまり、コンピュータが物理的に「感じ」たり、「動い」たりすることができるのです。
ブロックプログラミング開発・実行環境『オコゲ』
『オコゲ』は、Google Blockly ライブラリを使用した、Raspberry Pi 用ブロックプログラミング環境です。
ブロックプログラミング (Block-Based Coding) は、コンピュータへの命令が記述されたブロックを並べたり積み重ねることでプログラムを作成するプログラミングの形式で、主にプログラミング学習の目的で使用されています。学生がプログラム言語を覚えたりタイピングを習得する苦労やストレスから解放され、プログラミングの概念そのものを学習することに専念できるからです。また、何ができるかが一目でわかり簡単に試してみることができ、子供(大人でも!)の創造性を強く刺激します。
ブロックプログラミングツールの最も有名なもののひとつに Scratch があります。『スクラッチの猫ちゃん』(Scratch cat) を見たことがあるかもしれません。その Scratch も、バージョン2までは Macromedia (Adobe) Flash で作られていましたが、最新のバージョン3では Google Blockly ベースになりました。ブロックプログラミングツールのもうひとつの代表格 Microsoft MakeCode も Blockly を元にしています。
Raspberry Pi + オコゲ = ?
では、Raspberry Pi と『オコゲ』を組み合わせると何ができるのでしょうか。その一部を動画でご紹介します。
※動画ではブロックの色や形状などの『オコゲ』の見た目や周辺機器が最近更新された記事と異なりますが、機能や内容に変更はありません。
デモンストレーション
『情報コース』で使用する機材の一部を使用した動作サンプルです。
- 『Julius』との連携による音声認識
- サーボモータ制御
- Lチカ
- 温湿度センサー
- 赤外線LEDによるリモコン(キーボードに乗っけてあるミニライト)
- 接触が悪くてLEDが発光しなかったカメラ
- 画像ファイルのロードと表示
飲み過ぎ防止システム
IoT のとってもくだらない例。2杯目からもうコンピュータに怒られる。
スマートスイッチ
Raspberry Pi につないだサーボモータで物理的に照明のスイッチをオンオフします。操作は『オコゲ』を通じて音声で行います。ちょっと強力な両面テープと結束バンドだけでできる工事いらずのスマートホームです。
顔認識
カメラモジュールの映像をリアルタイムで処理してヒトの顔を認識し、その座標情報を使用してペーパークラフト人形の顔の向きを制御しています。動画ではちょっとわかりにくいかもしれませんが、お人形がずっとこちらを見続けていますヨー。
ネットワーク
ネットワークにつながるだけでプログラミングのアイディアは大きく広がります。例えば2つ上の「スマートスイッチ」は音声でコントロールしていますが、これをネットワークにつなげれば、出先や離れからスマートフォンなどを通じて照明のオンオフができるようになるでしょう。 『オコゲ』は簡単にウェブサーバとそれにアクセスするためのクライアントを作ることができます。動画では、音声合成LSI「AquesTalk pico 」を接続したサーバ側 Raspberry Pi に、ミニディスプレイをつないだクライアント側 Raspberry Pi から LAN 経由で HTTP 接続をして朝のあいさつや「吾輩は猫である」の朗読をさせています。
ウェブチャット
用途が限定された特殊ブロックもあります。この例では、WebRTC(ウェブブラウザ上でシンプルなリアルタイムコミュニケーションを実現する技術)を使用してテキストベースのウェブチャットを実装しています。
ゲーム制作
テレビゲームっぽいものも作れます。
『オコゲ』にさわってみよう
ここまでご覧になって「おもしろそう!」と思った方は、ぜひ当学習塾に… の前に、Web 体験版を触ってみましょう。サンプルプログラムや、自分で考えてサンプルを改良するプチレッスンをご用意しております。
『オコゲ』Web 体験版 | おこげ俱楽部
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。
『情報コース』もっとくわしく編
『情報コース』では、シングルボードコンピュータ『Raspberry Pi』や独自仕様のブロックプログラミング開発・実行環境『オコゲ』、各種センサやモータなどを使用してプログラミングを楽しく学び、ICT (Information and Communication Technology – 情報通信技術) や IoT (Internet of Things – モノのインターネット) などの情報技術を習得することを目的としています。
Raspberry Pi シングルボードコンピュータ
Raspberry Pi は、イギリスのラズベリーパイ財団 によって主に教育で利用することを想定して開発されたシングルボードコンピュータ です。小型・軽量で低価格、性能は価格なりですが、OS (基本ソフト) に Linux (Debian) を採用し、モニタとキーボード、マウスを接続してデスクトップを備えた GUI が使える、れっきとしたパーソナルコンピューターです。モニタは HDMI 入力のあるテレビでも代用でき、導入コストが低いのが特徴です。PC と大きく異なる点は GPIO ( General-purpose input/output – 汎用入出力) 端子の存在で、ここに各種センサやモータなどを接続して数値を読み 取ったり制御したりすることができます。つまり、コンピュータが物理的に「感じ」たり、「動い」たりすることができるのです。
ブロックプログラミング開発・実行環境『オコゲ』
『オコゲ』は、Google Blockly ライブラリを使用した、Raspberry Pi 用ブロックプログラミング環境です。
ブロックプログラミング (Block-Based Coding) は、コンピュータへの命令が記述されたブロックを並べたり積み重ねることでプログラムを作成するプログラミングの形式で、主にプログラミング学習の目的で使用されています。学生がプログラム言語を覚えたりタイピングを習得する苦労やストレスから解放され、プログラミングの概念そのものを学習することに専念できるからです。また、何ができるかが一目でわかり簡単に試してみることができ、子供(大人でも!)の創造性を強く刺激します。
ブロックプログラミングツールの最も有名なもののひとつに Scratch があります。『スクラッチの猫ちゃん』(Scratch cat) を見たことがあるかもしれません。その Scratch も、バージョン2までは Macromedia (Adobe) Flash で作られていましたが、最新のバージョン3では Google Blockly ベースになりました。ブロックプログラミングツールのもうひとつの代表格 Microsoft MakeCode も Blockly を元にしています。
Raspberry Pi + オコゲ = ?
では、Raspberry Pi と『オコゲ』を組み合わせると何ができるのでしょうか。その一部を動画でご紹介します。
※動画ではブロックの色や形状などの『オコゲ』の見た目や周辺機器が最近更新された記事と異なりますが、機能や内容に変更はありません。
デモンストレーション
『情報コース』で使用する機材の一部を使用した動作サンプルです。
- 『Julius』との連携による音声認識
- サーボモータ制御
- Lチカ
- 温湿度センサー
- 赤外線LEDによるリモコン(キーボードに乗っけてあるミニライト)
- 接触が悪くてLEDが発光しなかったカメラ
- 画像ファイルのロードと表示
飲み過ぎ防止システム
IoT のとってもくだらない例。2杯目からもうコンピュータに怒られる。
スマートスイッチ
Raspberry Pi につないだサーボモータで物理的に照明のスイッチをオンオフします。操作は『オコゲ』を通じて音声で行います。ちょっと強力な両面テープと結束バンドだけでできる工事いらずのスマートホームです。
顔認識
カメラモジュールの映像をリアルタイムで処理してヒトの顔を認識し、その座標情報を使用してペーパークラフト人形の顔の向きを制御しています。動画ではちょっとわかりにくいかもしれませんが、お人形がずっとこちらを見続けていますヨー。
ネットワーク
ネットワークにつながるだけでプログラミングのアイディアは大きく広がります。例えば2つ上の「スマートスイッチ」は音声でコントロールしていますが、これをネットワークにつなげれば、出先や離れからスマートフォンなどを通じて照明のオンオフができるようになるでしょう。 『オコゲ』は簡単にウェブサーバとそれにアクセスするためのクライアントを作ることができます。動画では、音声合成LSI「AquesTalk pico 」を接続したサーバ側 Raspberry Pi に、ミニディスプレイをつないだクライアント側 Raspberry Pi から LAN 経由で HTTP 接続をして朝のあいさつや「吾輩は猫である」の朗読をさせています。
ウェブチャット
用途が限定された特殊ブロックもあります。この例では、WebRTC(ウェブブラウザ上でシンプルなリアルタイムコミュニケーションを実現する技術)を使用してテキストベースのウェブチャットを実装しています。
ゲーム制作
テレビゲームっぽいものも作れます。
『オコゲ』にさわってみよう
ここまでご覧になって「おもしろそう!」と思った方は、ぜひ当学習塾に… の前に、Web 体験版を触ってみましょう。サンプルプログラムや、自分で考えてサンプルを改良するプチレッスンをご用意しております。
『オコゲ』Web 体験版 | おこげ俱楽部
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。
ブロックプログラミング環境『オコゲ』
『オコゲ [ocoge: code generator]』は、 Google Blockly ライブラリを使用した、Raspberry Pi 用ブロックプログラミング環境です。 プログラム言語を覚える必要がなく、未経験の方でもすぐにプログラミングの楽しさを体験することができます。
デモンストレーション
『オコゲ』Web 体験版 | おこげ俱楽部
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。
機能と特徴
- Google Blockly を用いたブロックプログラミングによる開発・実行環境
特別な機能を持ったブロックをつなげていくだけでプログラムを組み立てることができます。プログラム言語を覚える必要がないため、アルゴリズム(処理の手順)を考えることに集中できます。また、作成したプログラムは『オコゲ』上ですぐに実行することができます。 - GPIO 入出力
Raspberry Pi の GPIO(汎用入出力端子)に接続したセンサや LED、サーボモータなどを操作するプログラムを作成・実行できます。 - Javascript コードジェネレータ
ブロックで作成したプログラムを Javascript 言語で出力・閲覧することができます。次のステップ(コードによるプログラミング)に進むための足がかりになります。
その他技術情報
- Node.js + Electron によりデスクトップアプリケーションとして動作
- GPIO ライブラリには rgpio を使用し、自作ネイティブモジュール により『オコゲ』から直接 GPIO へのアクセスが可能。
ブロックプログラミング環境『オコゲ』
『オコゲ [ocoge: code generator]』は、 Google Blockly ライブラリを使用した、Raspberry Pi 用ブロックプログラミング環境です。 プログラム言語を覚える必要がなく、未経験の方でもすぐにプログラミングの楽しさを体験することができます。
デモンストレーション
『オコゲ』Web 体験版 | おこげ俱楽部
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。
機能と特徴
- Google Blockly を用いたブロックプログラミングによる開発・実行環境
特別な機能を持ったブロックをつなげていくだけでプログラムを組み立てることができます。プログラム言語を覚える必要がないため、アルゴリズム(処理の手順)を考えることに集中できます。また、作成したプログラムは『オコゲ』上ですぐに実行することができます。 - GPIO 入出力
Raspberry Pi の GPIO(汎用入出力端子)に接続したセンサや LED、サーボモータなどを操作するプログラムを作成・実行できます。 - Javascript コードジェネレータ
ブロックで作成したプログラムを Javascript 言語で出力・閲覧することができます。次のステップ(コードによるプログラミング)に進むための足がかりになります。
その他技術情報
- Node.js + Electron によりデスクトップアプリケーションとして動作
- GPIO ライブラリには rgpio を使用し、自作ネイティブモジュール により『オコゲ』から直接 GPIO へのアクセスが可能。
『オコゲ』Web 体験版
※ Web 体験版は Google Chrome (Chromium) 推奨です。それ以外のブラウザをご使用の場合、表示が乱れたり、機能の一部が使用できないことがあります。 ※ レンダリングエンジンに Blink (Chromium) を使用しているブラウザは使えます。例えば、Microsoft Edge(バージョン79.0.309.65以降)、Yandex Browser(日本じゃ誰も使ってないだろうけど)などです。
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。下の方にあるサンプルプログラムを組んで試してみてください。それが済んだら「プチレッスン」にも挑戦してみましょう。
『オコゲ』Web 体験版
ブロックプログラミングを体験してみましょう
各部の名称と使い方
- コーディング
ツールボックスのカテゴリをクリックするとフライアウトが開きます。フライアウト上のブロックをドラッグしてワークスペースに配置します。
ワークスペース上に配置したブロックは、ドラッグで移動できます。基本的にはつまんだブロックは上のブロックと切り離され、その下のブロックとはつながったまま移動します。つまんだブロックだけを取り出したい場合はキーボードの Ctrl キーを押しながらドラッグします。
つまんだブロックは、ツールボックスかゴミ箱の上にドロップすると削除することができます。 - プログラムの実行
「実行」メニューボタンをクリックします。 - 実行停止(リロード)
自動的に実行が停止しないコードや画面上にエレメントを表示するようなプログラムの場合、「リロード」メニューボタン をクリックすることでアプリケーションをリセットすることができます。ワークスペース上にあるブロックはそのまま残ります。 - ワークスペース保存
「保存」メニューボタンをクリックすると、XMLファイルがダウンロードされますのでローカルに保存してください。 - ワークスペース読込
「開く」メニューボタンをクリックすると、ファイル選択ダイアログが開くので、ワークスペースを保存した XML ファイルを選択してください。 - ワークスペースをクリア
「新規」メニューボタンをクリックすると、ワークスペース上のブロックが全て消去されます。 - Javascript コードを見る
「CODE」メニューボタンをクリックします。
サンプルプログラム
Web体験版で作成・実行できるプログラムをいくつかご紹介します。ブロックプログラムの画像を見ながら、同じように組み立ててみてください。できたら、画面右上にある「実行」ボタンをおしてみましょう。
簡単な入出力
名前を入力するとその名前を呼んでくれるプログラムです。
実行すると入力欄が表示されるので、名前を入力してエンターキーを押すかチェックボタン をクリックしてください。
タイプライターもどき
「黒板」を表示し、アルファベットを1行に1文字ずつタイプできます。エンターキーやバックスペースキー、矢印キーなどの特殊キーを押してみると…?
※特殊キーを試す前に、ワークスペース上の何もない所をクリックしてブロックからフォーカス(ブロックが枠で囲まれて選択された状態)を外しておいてください。バックスペースを押したときにフォーカスされたブロックがあると削除されてしまうためです。
「プチレッスン」に、もっとタイプライターらしくする課題「タイプライターっぽいもの」を作成しました。
プチレッスン
『オコゲ』Web 体験版を使用して、問題形式でプログラミング学習を体験することができるレッスンをご用意しております。(準備中)
『オコゲ』Web 体験版
※ Web 体験版は Google Chrome (Chromium) 推奨です。それ以外のブラウザをご使用の場合、表示が乱れたり、機能の一部が使用できないことがあります。 ※ レンダリングエンジンに Blink (Chromium) を使用しているブラウザは使えます。例えば、Microsoft Edge(バージョン79.0.309.65以降)、Yandex Browser(日本じゃ誰も使ってないだろうけど)などです。
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。下の方にあるサンプルプログラムを組んで試してみてください。それが済んだら「プチレッスン」にも挑戦してみましょう。
『オコゲ』Web 体験版
ブロックプログラミングを体験してみましょう
各部の名称と使い方
- コーディング
ツールボックスのカテゴリをクリックするとフライアウトが開きます。フライアウト上のブロックをドラッグしてワークスペースに配置します。
ワークスペース上に配置したブロックは、ドラッグで移動できます。基本的にはつまんだブロックは上のブロックと切り離され、その下のブロックとはつながったまま移動します。つまんだブロックだけを取り出したい場合はキーボードの Ctrl キーを押しながらドラッグします。
つまんだブロックは、ツールボックスかゴミ箱の上にドロップすると削除することができます。 - プログラムの実行
「実行」メニューボタンをクリックします。 - 実行停止(リロード)
自動的に実行が停止しないコードや画面上にエレメントを表示するようなプログラムの場合、「リロード」メニューボタン をクリックすることでアプリケーションをリセットすることができます。ワークスペース上にあるブロックはそのまま残ります。 - ワークスペース保存
「保存」メニューボタンをクリックすると、XMLファイルがダウンロードされますのでローカルに保存してください。 - ワークスペース読込
「開く」メニューボタンをクリックすると、ファイル選択ダイアログが開くので、ワークスペースを保存した XML ファイルを選択してください。 - ワークスペースをクリア
「新規」メニューボタンをクリックすると、ワークスペース上のブロックが全て消去されます。 - Javascript コードを見る
「CODE」メニューボタンをクリックします。
サンプルプログラム
Web体験版で作成・実行できるプログラムをいくつかご紹介します。ブロックプログラムの画像を見ながら、同じように組み立ててみてください。できたら、画面右上にある「実行」ボタンをおしてみましょう。
簡単な入出力
名前を入力するとその名前を呼んでくれるプログラムです。
実行すると入力欄が表示されるので、名前を入力してエンターキーを押すかチェックボタン をクリックしてください。
タイプライターもどき
「黒板」を表示し、アルファベットを1行に1文字ずつタイプできます。エンターキーやバックスペースキー、矢印キーなどの特殊キーを押してみると…?
※特殊キーを試す前に、ワークスペース上の何もない所をクリックしてブロックからフォーカス(ブロックが枠で囲まれて選択された状態)を外しておいてください。バックスペースを押したときにフォーカスされたブロックがあると削除されてしまうためです。
「プチレッスン」に、もっとタイプライターらしくする課題「タイプライターっぽいもの」を作成しました。
プチレッスン
『オコゲ』Web 体験版を使用して、問題形式でプログラミング学習を体験することができるレッスンをご用意しております。(準備中)
おこげ倶楽部自宅サーバについて
ocoge.club は Orange Pi 自宅サーバ(上写真)にてホスティングされています。現在 Webサーバ、メールサーバ、Git サーバが稼働しています。数千円で購入できる手のひらサイズのシングルボードコンピュータと3千円程度のSSDを使ってなかなか充実したネットサービスごっこwができます。
タマちー
ミミィ
らずぱい売ってない... 困る...
RSコンポーネンツの通販サイトに「11月入荷」とか書いてあるのよ!
鬼も笑えないわ!!
ハードウェア構成
- Orange Pi 3 LTS
- Crucial SSD 120GB 2.5インチ (CT120BX500SSD1JP)
- Salcar USB-C 2.5インチ SATA HDD/SSDケース
ケースは RPi 用を流用。ネジ穴が合わなかったので百均の耐震マットを小さく切って貼り付け。
ソフトウェア構成
種類 | 名称 |
---|---|
OS | Orange Pi3 LTS Debian Buster Server |
Webサーバ | Nginx |
サーバサイドインタプリタ | PHP |
データベース | SQLite3 |
メールサーバ (MTA) | Postfix |
Webメールクライアント | Rainloop |
POP/IMAP サーバ | Dovecot |
Git サーバ | Gitea |
このほか、スパムメール対策に SpamAssasin であるとか証明書取得に Let’s Encrypt (certbot) であるとか
その他利用しているもの
独自ドメイン (ocoge.club)
MyDNS (無料ダイナミックDNS)
インターネット接続回線(有線LANで接続)
静的サイトジェネレータ 11ty 及びブログテーマ Vredeburg
参考サイト
Sam Hobbs | Raspberry Pi Email Server
英語でメールサーバのみの解説ではあるが、ステップごとにインストールや設定がうまくいっているかどうか確認を行うことができるようになっているため、長い作業の中でどこでミスをしたのか、または不具合が出ているのかがわかりやすい。また、設定をデフォルトから変更する箇所にそれぞれ設定の意味の説明があり、自分が何をしているのかがわかるため、ソフトウェアのアップデートで設定項目やその値に変更があり見本と齟齬が生じていても対処が容易である。わけもわからず言われた通り延々ソフトウェアのインストールと設定ファイルの書き換えを繰り返し、辟易しながら終わらせたものの結局動作せず問題のある個所も見当がつかないまま挫折、などという悲劇を起こしにくい、ナイスなサイト。
セキュリティアップデートが面倒だったのヨ!
仕事でもないのにあんなのやってられないワ!!
おこげ倶楽部自宅サーバについて
ocoge.club は Orange Pi 自宅サーバ(上写真)にてホスティングされています。現在 Webサーバ、メールサーバ、Git サーバが稼働しています。数千円で購入できる手のひらサイズのシングルボードコンピュータと3千円程度のSSDを使ってなかなか充実したネットサービスごっこwができます。
タマちー
ミミィ
らずぱい売ってない... 困る...
RSコンポーネンツの通販サイトに「11月入荷」とか書いてあるのよ!
鬼も笑えないわ!!
ハードウェア構成
- Orange Pi 3 LTS
- Crucial SSD 120GB 2.5インチ (CT120BX500SSD1JP)
- Salcar USB-C 2.5インチ SATA HDD/SSDケース
ケースは RPi 用を流用。ネジ穴が合わなかったので百均の耐震マットを小さく切って貼り付け。
ソフトウェア構成
種類 | 名称 |
---|---|
OS | Orange Pi3 LTS Debian Buster Server |
Webサーバ | Nginx |
サーバサイドインタプリタ | PHP |
データベース | SQLite3 |
メールサーバ (MTA) | Postfix |
Webメールクライアント | Rainloop |
POP/IMAP サーバ | Dovecot |
Git サーバ | Gitea |
このほか、スパムメール対策に SpamAssasin であるとか証明書取得に Let’s Encrypt (certbot) であるとか
その他利用しているもの
独自ドメイン (ocoge.club)
MyDNS (無料ダイナミックDNS)
インターネット接続回線(有線LANで接続)
静的サイトジェネレータ 11ty 及びブログテーマ Vredeburg
参考サイト
Sam Hobbs | Raspberry Pi Email Server
英語でメールサーバのみの解説ではあるが、ステップごとにインストールや設定がうまくいっているかどうか確認を行うことができるようになっているため、長い作業の中でどこでミスをしたのか、または不具合が出ているのかがわかりやすい。また、設定をデフォルトから変更する箇所にそれぞれ設定の意味の説明があり、自分が何をしているのかがわかるため、ソフトウェアのアップデートで設定項目やその値に変更があり見本と齟齬が生じていても対処が容易である。わけもわからず言われた通り延々ソフトウェアのインストールと設定ファイルの書き換えを繰り返し、辟易しながら終わらせたものの結局動作せず問題のある個所も見当がつかないまま挫折、などという悲劇を起こしにくい、ナイスなサイト。
セキュリティアップデートが面倒だったのヨ!
仕事でもないのにあんなのやってられないワ!!
受講生限定アカウントサービス
『情報コース』受講者でご希望の方に、『おこげ倶楽部』オリジナルのメールアドレスと Git サーバアカウントを進呈しております。
『おこげ倶楽部』メールアドレス
お好きな名前@ocoge.club というメールアドレスを取得できます(※名前が使用済みでない場合に限ります)。また、画像のようなウェブメールクライアントをご用意していますので、特別なソフトウェアや設定をすることなしに、ウェブブラウザですぐにご利用になれます。
Git サーバ
Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。( Wikipedia )
コースで作成したプログラムソースなどの管理をすることができます。(Git についての緩い感じの解説はこちら )
セキュリティ対策
常時SLL対応済み、不要ポート閉鎖など 以下は、セキュリティチェックサイトでのスコア。
メール
POP3などはポートを閉じているため No Info となっているようです。
安心してご利用いただける範囲内である…と、思われます。
受講生限定アカウントサービス
『情報コース』受講者でご希望の方に、『おこげ倶楽部』オリジナルのメールアドレスとクラウドストレージを進呈しております。
『おこげ倶楽部』メールアドレス
お好きな名前@ocoge.club というメールアドレスを取得できます(※名前が使用済みでない場合に限ります)。また、画像のようなウェブメールクライアント(下記 Nextcloud プラグイン)をご用意していますので、特別なソフトウェアや設定をすることなしに、ウェブブラウザですぐにご利用になれます。
クラウドストレージ(Nextcloud)
Nextcloud は、オンラインストレージの作成と使用のためのクライアント・サーバ型のソフトウェアである。機能的には Dropbox に似ている(略)。Nextcloud はフリーかつオープンソースなので、誰でも自分のプライベートサーバにインストールして利用することができる。( Wikipedia )
コースで作成したプログラムソースなどをご家庭からも閲覧・利用できるよう、独自のクラウドストレージをご用意いたしました。
セキュリティ対策
常時 SLL 対応済み、不要ポート閉鎖など
以下は、セキュリティチェックサイトでのスコア。
メール
POP3 などはポートを閉じているため No Info となっているようです。
安心してご利用いただける範囲内である…と、思われます。
『オコゲ』マスコットのご紹介
『オコゲ』のキャンバスにデフォルトで表示されるマスコットキャラクターのご紹介です。せっかくですから、本人たちから自己紹介をしてもらいましょう。
Mimmy
まずはアタシからネ!アタシ、ミミィ!
カラダはウサギ、ココロは乙女! ヨロシクね!ウフフ!
ミミィ
ウサギのぬいぐるみ。顔はタマちーの手描き。紹介文もアタシの顔もちょっと適当が過ぎるんじゃないかしらね?
Tamachii
マスコットキャラがいきなりオネェ全開って SEO 的にどうなんだろ…
タマちー
『オコゲ』『おこげ倶楽部』メインマスコット。近所にある「玉木平神社」から名前を(勝手に)もらった、平環(たいら・たまき)という猫にしては立派な本名を持つ。「オコゲ猫のタマちー」。 ウサギのぬいぐるみにミミィと名前を付けて大事(?)にしている。ミミィを触っていないと眠れない。触りすぎて顔がすり切れてしまい、自分で描きなおしたことをちょびっとだけ後悔している。わたしには絵心がなかった でござる…
アタシ本当に大事にされてるのかしら?かしら?
それにしてもアンタずいぶんと眠そうね!?
上の紹介文のところの絵とはだいぶ違うじゃない?
いい子ね!その調子でこれからも頑張んなさいよね! アタシはぬいぐるみだから動けなくてクタッとしてるけどね! その分おしゃべりで頑張るから皆さんよろしくね~
このような手法は子供向けの学習書で使われるものだという認識だったのですが、最近はビジネスマン向けの入門サイトなどでも見かけるようになりました。そんなわけでウチも流れに乗ってみようかという感じでやってみました。
今後ともこの子たちをよろしくお願いいたします。
あ…わたし「自己」紹介してないや…
…
…まぁいっか…
いいのかーい
『オコゲ』マスコットのご紹介
『オコゲ』のキャンバスにデフォルトで表示されるマスコットキャラクターのご紹介です。せっかくですから、本人たちから自己紹介をしてもらいましょう。
Mimmy
まずはアタシからネ!アタシ、ミミィ!
カラダはウサギ、ココロは乙女! ヨロシクね!ウフフ!
ミミィ
ウサギのぬいぐるみ。顔はタマちーの手描き。紹介文もアタシの顔もちょっと適当が過ぎるんじゃないかしらね?
Tamachii
マスコットキャラがいきなりオネェ全開って SEO 的にどうなんだろ…
タマちー
『オコゲ』『おこげ倶楽部』メインマスコット。近所にある「玉木平神社」から名前を(勝手に)もらった、平環(たいら・たまき)という猫にしては立派な本名を持つ。「オコゲ猫のタマちー」。 ウサギのぬいぐるみにミミィと名前を付けて大事(?)にしている。ミミィを触っていないと眠れない。触りすぎて顔がすり切れてしまい、自分で描きなおしたことをちょびっとだけ後悔している。わたしには絵心がなかった でござる…
アタシ本当に大事にされてるのかしら?かしら?
それにしてもアンタずいぶんと眠そうね!?
上の紹介文のところの絵とはだいぶ違うじゃない?
いい子ね!その調子でこれからも頑張んなさいよね! アタシはぬいぐるみだから動けなくてクタッとしてるけどね! その分おしゃべりで頑張るから皆さんよろしくね~
このような手法は子供向けの学習書で使われるものだという認識だったのですが、最近はビジネスマン向けの入門サイトなどでも見かけるようになりました。そんなわけでウチも流れに乗ってみようかという感じでやってみました。
今後ともこの子たちをよろしくお願いいたします。
あ…わたし「自己」紹介してないや…
…
…まぁいっか…
いいのかーい
プチレッスン『タイプライターっぽいもの』その1
ミミィ
『オコゲ』Web体験版サンプルプログラムの「タイプライターもどき」をもうちょっとだけタイプライターっぽくしてみるわ! 準備はいいかしら!?
タマちー
『オコゲ』Web 体験版 | おこげ俱楽部
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。
まず最初に、どこをどのように変更するか決めておきます。
サンプルプログラムの記事にあるブロックはこれです。実行してみるとわかりますが、このプログラムでは、キーボードの入力が1行に1文字ずつ表示されます。
以下の記事では、このプログラムを1行に文字を横並びに行として表示、改行とついでにバックスペースで文字を削除できるように改造することにしましょう。
このプログラムは永久にキーボードからの入力待ちをします。実行後は次のステップに行く前に をクリックしてページをリロードしておきましょう。
キー入力を変数に記憶させて表示する
『オコゲ』の黒板表示は1行ずつ表示することしかできません。そこで、キーボードから入力された文字を変数に代入して記憶してから、まとめて表示できるようにしましょう。
変数とは、数字や文字を代入して保存しておくことができる領域のことです。変数には名前をつけて使います。「変数1」という名前の変数に「あいう」を記憶させてから、『「変数1」を表示しなさい』と命令すれば「あいう」が表示されます。変数の中身は必要に応じて何度でも書き換えることができます。
変数を作成する
まず、入力を記録する変数を作成します。「変数」カテゴリから「変数の作成…」をクリックします。
ダイアログで変数の名前を入力します。ここでは「行」にします。
キー入力を変数に代入する
この状態で「変数」カテゴリを開くと、 がありますので、これと を使って、変数「行」に変数「キー」の内容を代入するコードを作ります。黒板には「キー」ではなく「行」を表示するように変更します。
これを実行しても、結果は変更前とまだ変わりありません。これは、変数「行」が1回分の「キー」しか覚えていないからです。では、変数「行」にキー入力を続けて記憶させるにはどのようにすれば良いのでしょうか。
変数に文字を追加して文字列を作成しよう
文字列とは、文字の並びや集まりのことです。文字列も変数に記憶させておくことができます。では変数「行」の後ろに「キー」を追加するコードを考えてみましょう。例えば、最初「行」が “a" で「キー」が “b" だったら、最後に「行」が “ab" になるような、そんなプログラムを作りましょう。
さ、初めての出題ね!すぐに答えを開かないで、自分で考えて実際にブロックを組んで実行してみるのヨ!
ヒント: を使います。
レッスン:変数「行」に「キー」を追加しよう
これを実行してスペースキーを押してみてください。 と表示されたでしょうか。"undefined" は「未定義」という意味で、ここでは「行」という変数が未定義ですよ、ということになります。 何が起きているかというと、プログラム実行後最初にキーボードを押したとき、プログラムはまず「行」と「キー」を連結しようとします。ところが、これより前にプログラムは「行」に対して何もしていません。つまり、このときプログラム的には「行」という入れ物はあっても、何が入っているのか分かっていない状態なのです。だからプログラムは「『行』?わからんなー」と答えているのです。これを避けるためには、次のように、最初に変数「行」は空っぽの文字列だよー、と決めてあげる必要があります。
繰り返し処理の中で変数を使う場合、この「変数の初期化」をしないとちゃんと動かないことがよくあります。 昔 C 言語で変数を宣言しただけだと中にゴミデータが入ったままで…いや、なんでもない
頭の片隅にでも入れておくといいかもしれません。
では、実行してキーボードから「abcdefg」と入力してみましょう。
しっかり変数にキー入力が蓄積されて行っているようですね!でもこれだとタイプライターとは言い難い挙動なので、1か所修正します。
それっぽくなってきましたね?
その2に続きます。 (準備中)
プチレッスン『タイプライターっぽいもの』その1
ミミィ
『オコゲ』Web体験版サンプルプログラムの「タイプライターもどき」をもうちょっとだけタイプライターっぽくしてみるわ! 準備はいいかしら!?
タマちー
『オコゲ』Web 体験版 | おこげ俱楽部
ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。
まず最初に、どこをどのように変更するか決めておきます。
サンプルプログラムの記事にあるブロックはこれです。実行してみるとわかりますが、このプログラムでは、キーボードの入力が1行に1文字ずつ表示されます。
以下の記事では、このプログラムを1行に文字を横並びに行として表示、改行とついでにバックスペースで文字を削除できるように改造することにしましょう。
このプログラムは永久にキーボードからの入力待ちをします。実行後は次のステップに行く前に をクリックしてページをリロードしておきましょう。
キー入力を変数に記憶させて表示する
『オコゲ』の黒板表示は1行ずつ表示することしかできません。そこで、キーボードから入力された文字を変数に代入して記憶してから、まとめて表示できるようにしましょう。
変数とは、数字や文字を代入して保存しておくことができる領域のことです。変数には名前をつけて使います。「変数1」という名前の変数に「あいう」を記憶させてから、『「変数1」を表示しなさい』と命令すれば「あいう」が表示されます。変数の中身は必要に応じて何度でも書き換えることができます。
変数を作成する
まず、入力を記録する変数を作成します。「変数」カテゴリから「変数の作成…」をクリックします。
ダイアログで変数の名前を入力します。ここでは「行」にします。
キー入力を変数に代入する
この状態で「変数」カテゴリを開くと、 がありますので、これと を使って、変数「行」に変数「キー」の内容を代入するコードを作ります。黒板には「キー」ではなく「行」を表示するように変更します。
これを実行しても、結果は変更前とまだ変わりありません。これは、変数「行」が1回分の「キー」しか覚えていないからです。では、変数「行」にキー入力を続けて記憶させるにはどのようにすれば良いのでしょうか。
変数に文字を追加して文字列を作成しよう
文字列とは、文字の並びや集まりのことです。文字列も変数に記憶させておくことができます。では変数「行」の後ろに「キー」を追加するコードを考えてみましょう。例えば、最初「行」が “a" で「キー」が “b" だったら、最後に「行」が “ab" になるような、そんなプログラムを作りましょう。
さ、初めての出題ね!すぐに答えを開かないで、自分で考えて実際にブロックを組んで実行してみるのヨ!
ヒント: を使います。
レッスン:変数「行」に「キー」を追加しよう
これを実行してスペースキーを押してみてください。 と表示されたでしょうか。"undefined" は「未定義」という意味で、ここでは「行」という変数が未定義ですよ、ということになります。 何が起きているかというと、プログラム実行後最初にキーボードを押したとき、プログラムはまず「行」と「キー」を連結しようとします。ところが、これより前にプログラムは「行」に対して何もしていません。つまり、このときプログラム的には「行」という入れ物はあっても、何が入っているのか分かっていない状態なのです。だからプログラムは「『行』?わからんなー」と答えているのです。これを避けるためには、次のように、最初に変数「行」は空っぽの文字列だよー、と決めてあげる必要があります。
繰り返し処理の中で変数を使う場合、この「変数の初期化」をしないとちゃんと動かないことがよくあります。 昔 C 言語で変数を宣言しただけだと中にゴミデータが入ったままで…いや、なんでもない
頭の片隅にでも入れておくといいかもしれません。
では、実行してキーボードから「abcdefg」と入力してみましょう。
しっかり変数にキー入力が蓄積されて行っているようですね!でもこれだとタイプライターとは言い難い挙動なので、1か所修正します。
それっぽくなってきましたね?
その2に続きます。 (準備中)
『オコゲ』でぐーちょきぱーを機械学習
Raspberry Pi 専用デスクトップアプリ『オコゲ』は、Raspberry Pi の GPIO に直接アクセス1することができます。また、特定のセンサーに対応した専用ブロック2も用意されています。
ここでは、デスクトップ版『オコゲ』の目玉機能のひとつ、GPIO と TensorFlow.js3 を使った「機械学習体験」をご紹介いたします。
タマちー
ミミィ
目玉機能ね!目玉といえるかどうかは保証できないけど、機械学習はコンピュータ界隈で今もっともホットな話題のひとつではあるわね!
機械学習による画像分類(ぐーちょきぱー)
一言で機械学習といっても、その内容は多岐に渡ります。『オコゲ』が実装するのは「画像の分類」です。
今回は赤外線アレイセンサ(サーマルカメラ)でとらえたじゃんけんのハンドポーズ(ぐー・ちょき・ぱー)を Raspberry Pi で学習してみることにしましょう。
なんかゲームとか作れそうですね。Raspberry Pi とあっちむいてほいとか勝てそうにないですね!
機械学習とは
機械学習とは、データを分析する方法の1つで、データから、「機械」(コンピューター)が自動で「学習し、データの背景にあるルールやパターンを発見する方法。近年では、学習した成果に基づいて「予測・判断」することが重視されるようになった。機械学習 | 用語解説 | 野村総合研究所(NRI)
Google で「機械学習」を検索してトップに表示される野村総研の文章を引用してみました。 機械学習は「人工知能(AI)」を実現するためのデータ分析技術の1つで、人間や動物が経験を通して自然に学習するのと同様のことをコンピュータでもやろうというものです。 本来コンピュータは高速で正確な演算が得意な半面、あまり融通が利きません。例えば、従来のコンピュータに「四角」という図形を教えるとすると
これは四角
これも四角
これは?
じゃあこれは?
…?
見たことない形だヨ
すでに覚えたものと全く同じ「正方形」は認識できても、教わっていない「長方形」は理解できません。
機械学習の仕組みを組み込んだシステムでは同じように教える(学習させる)と
これは?
この「たぶん」が重要で、この場合、コンピュータは正方形と平行四辺形から「四角」という図形の特徴を 自分で勝手に 見つけ出し、長方形がその特徴を持っていると判定して「90%の確率で四角」などと答えます。このように学習したデータを使用して新しいデータに対して予測や判断を行うことを「推論」といいます。
AMG8833 8×8 赤外線アレイセンサ (Grid-EYE)
Grid-EYE(AMG8833) は、Panasonic が開発した縦横8ピクセル(64画素)の赤外線センサ(サーマルカメラ)です。I2C接続で利用することができ、記事トップのカバー写真のような簡単な回路で温度データを取得できます。温度データは64画素それぞれの温度で、次のようなものです。
13.25,13.25,18,16.75,16.5,15.75,14.25,12.25,12.75,14,20,20,19.25,17.25,15.25,13.25,14,15.25,21,22,21.25,19.75,15.25,13.25,15,19.25,22,22.5,21.75,19.25,14.25,13,14.75,20.75,23.25,23.25,22.5,17,13.75,13,14.5,18,23,23.5,21.75,15.25,13.25,12.5,14.5,15.75,21.25,23.5,20,15,13.5,13.25,18.25,17.75,21.75,24,20.75,15.25,14.5,14
-
これを温度によって色付けして描画することで次のような画像を得ることができます。
見えないし
20倍に拡大してみました。これでも何が映っているのかなんとなくわかりますが、スムージングをかけることで少し見やすくなります。
手と言われれば、手。ちなみに左下のちょっとだけ赤い部分は、筆者の頭が写り込んだものです。最初、天井に温度が高い部分があるのかと思って上を見たりしていましたw
ところで、こんな感じの映像をどこかで見たことがありませんか?
そう、これ です。まさか Joy-Con にサーマルカメラが内蔵されていようとは。テレビCMを見て「おおお…」などと一人で盛り上がっていたのは内緒です。そのほか距離センサなどが同時に使用できるようになっている様子。ジャイロも入っているしホンマどえらいコントローラーやでぇ…
やってみる
プログラムは以下のようなものです。
※ボタンの作成など、本質に関係のない一部のブロックは折り畳み/省略しています。
センサで取得した画像はキャンバスに表示されるのようになっているので、これを「なし(手がかざされていない状態)」「ぐー」「ちょき」「ぱ」の4つのボタンを使って分類します。
キャンバス上の画像に対する推論は常時実行されていて、結果はマスコットキャラクターの横の吹き出しに表示されます。
学習を行う様子は動画をご覧ください。
- 何も学習していない状態では「undefined」が表示される。センサーに手をかざしてじゃんけんの形を作っても反応なし
- 手をかざさない状態を「なし」ボタンをクリックして学習させる(このとき画面には「じゃんけん…」と表示)
- 同様にして「ぐー」「ちょき」「ぱ」を学習。いずれも2回クリックで正しい推論をするようになった。念のため3回クリック
- その後はハンドポーズを正しく答えることができるようになる
なんということでしょう。たった3×4=12回のクリックでぐーちょきぱー判別の機械学習ができてしまいました。上のプログラムでは使われていませんが、学習したデータを保存・復元するブロックもありますので、育てた学習データを他のプログラムから呼び出して利用することができます。
ちょっと詳しく
『オコゲ』では機械学習ライブラリとして、Google が開発した TensorFlow (テンサーフロー)を利用しています。Google がこれをオープンソースとして公開したことで、機械学習を誰もがすぐに利用できるようになりました。Google 側もわかりやすいチュートリアルを用意したりして普及に余念がありません。
しかし、機械学習を一からやろうとすると、大量(画像何千枚とかのレベル)のサンプルデータとそれを学習するための高い処理能力を持つコンピュータ、そして膨大な学習時間が必要です。Raspberry Pi のような非力な子はお呼びではありません。理論も難解で(テンソル って何さ?)、「ばあさんや、なんか流行りらしいからちょっと齧ってみようかね」というわけにはなかなかいきません。先人が作った機械学習のデータ(モデルと呼びます)を利用するという手もありますが、応用がききません。犬種を分類する学習済みモデルを猫に使うことはできないからです。
そこで考案されたのが「転移学習 (Transfer Learning)」です。ある分野ですでに学習済みのモデルを別の分野での推論に転用して、少ないサンプルデータと学習時間で成果を出そうという手法です。言ってみれば成績の良い先輩からノートを借りてテスト勉強をするようなイメージです。 『オコゲ』の機械学習ブロックは、この転移学習を利用して簡単お手軽に機械学習を行うことができるようになっています。
今回のような「手のポーズの認識」であれば、そのまま使える学習済みモデルとして、Webカメラを使った MediaPipe Handpose (またはこっち )も利用できるだろうと思いますが、当たり前だけど手にしか反応しない(前述の「応用がきかない」)のと、Webカメラなので Raspberry Pi である必要がない、なにより「学習をさせる」という面白みがないのでここでは扱うのをやめました。サーマルカメラを使ったここで紹介したやり方なら、ちょっと離れたところから上半身が映るようにして例えば 「ヤングマン」のポーズ の認識などもできるかもしれません。
ポーズをとるのが恥ずかしくて試してないんですって!
誰も見てやしないのにね…
注釈
1. pigpio デーモンを利用するので厳密には直接ではないが...
2. 2022年5月現在、センサー専用ブロックは次の通り。
● ジェスチャーセンサー PAJ7620
● 温湿度センサー DHT11
● 温湿度気圧センサー BME280
● 赤外線アレイセンサ(サーマルカメラ)AMG8833
3. TensorFlow.js は、JavaScript 上で利用できる TensorFlow 実装。
TensorFlow といえばプログラム言語は Python が定番だが、Raspberry Pi では最新の TensorFlow を使おうと思うと、できないこともないようではあるものの、環境構築やインストールなど、少々敷居が高い。ありていに言うと、面倒くさい。TensorFlow.js は、それ自体が JavaScript で書かれているため、ブラウザ上の JavaScript から簡単に扱うことができ、導入の手間もほとんどかからない。スクリプト言語で書かれているが故の速度的な問題も WebAssembly バックエンド (wasm) でほぼ解決。そのまま使えるいくつもの有用な学習済みモデル があらかじめ用意されているうえ、AI に触れたことのない Webフロントエンジニアを意識しているようで、初学者向けの平易なドキュメントも充実している。「画像の転移学習」にはステップバイステップの丁寧なチュートリアル まで存在する。『オコゲ』を Blockly + Electron で開発してきたのは、もしかしたらこのためだったんじゃないかと思うほどの、あつらえたかのような環境であった。正味の話、前述の転移学習チュートリアルがなかったら機械学習ブロックの導入は諦めてたかもしれない。サンキューグーグル。
『オコゲ』でぐーちょきぱーを機械学習
Raspberry Pi 専用デスクトップアプリ『オコゲ』は、Raspberry Pi の GPIO に直接アクセス1することができます。また、特定のセンサーに対応した専用ブロック2も用意されています。
ここでは、デスクトップ版『オコゲ』の目玉機能のひとつ、GPIO と TensorFlow.js3 を使った「機械学習体験」をご紹介いたします。
タマちー
ミミィ
目玉機能ね!目玉といえるかどうかは保証できないけど、機械学習はコンピュータ界隈で今もっともホットな話題のひとつではあるわね!
機械学習による画像分類(ぐーちょきぱー)
一言で機械学習といっても、その内容は多岐に渡ります。『オコゲ』が実装するのは「画像の分類」です。
今回は赤外線アレイセンサ(サーマルカメラ)でとらえたじゃんけんのハンドポーズ(ぐー・ちょき・ぱー)を Raspberry Pi で学習してみることにしましょう。
なんかゲームとか作れそうですね。Raspberry Pi とあっちむいてほいとか勝てそうにないですね!
機械学習とは
機械学習とは、データを分析する方法の1つで、データから、「機械」(コンピューター)が自動で「学習し、データの背景にあるルールやパターンを発見する方法。近年では、学習した成果に基づいて「予測・判断」することが重視されるようになった。機械学習 | 用語解説 | 野村総合研究所(NRI)
Google で「機械学習」を検索してトップに表示される野村総研の文章を引用してみました。 機械学習は「人工知能(AI)」を実現するためのデータ分析技術の1つで、人間や動物が経験を通して自然に学習するのと同様のことをコンピュータでもやろうというものです。 本来コンピュータは高速で正確な演算が得意な半面、あまり融通が利きません。例えば、従来のコンピュータに「四角」という図形を教えるとすると
これは四角
これも四角
これは?
じゃあこれは?
…?
見たことない形だヨ
すでに覚えたものと全く同じ「正方形」は認識できても、教わっていない「長方形」は理解できません。
機械学習の仕組みを組み込んだシステムでは同じように教える(学習させる)と
これは?
この「たぶん」が重要で、この場合、コンピュータは正方形と平行四辺形から「四角」という図形の特徴を 自分で勝手に 見つけ出し、長方形がその特徴を持っていると判定して「90%の確率で四角」などと答えます。このように学習したデータを使用して新しいデータに対して予測や判断を行うことを「推論」といいます。
AMG8833 8×8 赤外線アレイセンサ (Grid-EYE)
Grid-EYE(AMG8833) は、Panasonic が開発した縦横8ピクセル(64画素)の赤外線センサ(サーマルカメラ)です。I2C接続で利用することができ、記事トップのカバー写真のような簡単な回路で温度データを取得できます。温度データは64画素それぞれの温度で、次のようなものです。
13.25,13.25,18,16.75,16.5,15.75,14.25,12.25,12.75,14,20,20,19.25,17.25,15.25,13.25,14,15.25,21,22,21.25,19.75,15.25,13.25,15,19.25,22,22.5,21.75,19.25,14.25,13,14.75,20.75,23.25,23.25,22.5,17,13.75,13,14.5,18,23,23.5,21.75,15.25,13.25,12.5,14.5,15.75,21.25,23.5,20,15,13.5,13.25,18.25,17.75,21.75,24,20.75,15.25,14.5,14
+
これを温度によって色付けして描画することで次のような画像を得ることができます。
見えないし
20倍に拡大してみました。これでも何が映っているのかなんとなくわかりますが、スムージングをかけることで少し見やすくなります。
手と言われれば、手。ちなみに左下のちょっとだけ赤い部分は、筆者の頭が写り込んだものです。最初、天井に温度が高い部分があるのかと思って上を見たりしていましたw
ところで、こんな感じの映像をどこかで見たことがありませんか?
そう、これ です。まさか Joy-Con にサーマルカメラが内蔵されていようとは。テレビCMを見て「おおお…」などと一人で盛り上がっていたのは内緒です。そのほか距離センサなどが同時に使用できるようになっている様子。ジャイロも入っているしホンマどえらいコントローラーやでぇ…
やってみる
プログラムは以下のようなものです。
※ボタンの作成など、本質に関係のない一部のブロックは折り畳み/省略しています。
センサで取得した画像はキャンバスに表示されるのようになっているので、これを「なし(手がかざされていない状態)」「ぐー」「ちょき」「ぱ」の4つのボタンを使って分類します。
キャンバス上の画像に対する推論は常時実行されていて、結果はマスコットキャラクターの横の吹き出しに表示されます。
学習を行う様子は動画をご覧ください。
- 何も学習していない状態では「undefined」が表示される。センサーに手をかざしてじゃんけんの形を作っても反応なし
- 手をかざさない状態を「なし」ボタンをクリックして学習させる(このとき画面には「じゃんけん…」と表示)
- 同様にして「ぐー」「ちょき」「ぱ」を学習。いずれも2回クリックで正しい推論をするようになった。念のため3回クリック
- その後はハンドポーズを正しく答えることができるようになる
なんということでしょう。たった3×4=12回のクリックでぐーちょきぱー判別の機械学習ができてしまいました。上のプログラムでは使われていませんが、学習したデータを保存・復元するブロックもありますので、育てた学習データを他のプログラムから呼び出して利用することができます。
ちょっと詳しく
『オコゲ』では機械学習ライブラリとして、Google が開発した TensorFlow (テンサーフロー)を利用しています。Google がこれをオープンソースとして公開したことで、機械学習を誰もがすぐに利用できるようになりました。Google 側もわかりやすいチュートリアルを用意したりして普及に余念がありません。
しかし、機械学習を一からやろうとすると、大量(画像何千枚とかのレベル)のサンプルデータとそれを学習するための高い処理能力を持つコンピュータ、そして膨大な学習時間が必要です。Raspberry Pi のような非力な子はお呼びではありません。理論も難解で(テンソル って何さ?)、「ばあさんや、なんか流行りらしいからちょっと齧ってみようかね」というわけにはなかなかいきません。先人が作った機械学習のデータ(モデルと呼びます)を利用するという手もありますが、応用がききません。犬種を分類する学習済みモデルを猫に使うことはできないからです。
そこで考案されたのが「転移学習 (Transfer Learning)」です。ある分野ですでに学習済みのモデルを別の分野での推論に転用して、少ないサンプルデータと学習時間で成果を出そうという手法です。『オコゲ』の機械学習ブロックは、この転移学習を利用して簡単お手軽に機械学習を行うことができるようになっています。
今回のような「手のポーズの認識」であれば、そのまま使える学習済みモデルとして、Webカメラを使った MediaPipe Handpose (またはこっち )も利用できるだろうと思いますが、当たり前だけど手にしか反応しない(前述の「応用がきかない」)のと、Webカメラなので Raspberry Pi である必要がない、なにより「学習をさせる」という面白みがないのでここでは扱うのをやめました。サーマルカメラを使ったここで紹介したやり方なら、ちょっと離れたところから上半身が映るようにして例えば 「ヤングマン」のポーズ の認識などもできるかもしれません。
ポーズをとるのが恥ずかしくて試してないんですって!
誰も見てやしないのにね…
注釈
1. pigpio デーモンを利用するので厳密には直接ではないが...
2. 2022年5月現在、センサー専用ブロックは次の通り。
● ジェスチャーセンサー PAJ7620
● 温湿度センサー DHT11
● 温湿度気圧センサー BME280
● 赤外線アレイセンサ(サーマルカメラ)AMG8833
3. TensorFlow.js は、JavaScript 上で利用できる TensorFlow 実装。
TensorFlow といえばプログラム言語は Python が定番だが、Raspberry Pi では最新の TensorFlow を使おうと思うと、できないこともないようではあるものの、環境構築やインストールなど、少々敷居が高い。ありていに言うと、面倒くさい。TensorFlow.js は、それ自体が JavaScript で書かれているため、ブラウザ上の JavaScript から簡単に扱うことができ、導入の手間もほとんどかからない。スクリプト言語で書かれているが故の速度的な問題も WebAssembly バックエンド (wasm) でほぼ解決。そのまま使えるいくつもの有用な学習済みモデル があらかじめ用意されているうえ、AI に触れたことのない Webフロントエンジニアを意識しているようで、初学者向けの平易なドキュメントも充実している。「画像の転移学習」にはステップバイステップの丁寧なチュートリアル まで存在する。『オコゲ』を Blockly + Electron で開発してきたのは、もしかしたらこのためだったんじゃないかと思うほどの、あつらえたかのような環境であった。正味の話、前述の転移学習チュートリアルがなかったら機械学習ブロックの導入は諦めてたかもしれない。サンキューグーグル。
『ゲーム電卓パイ』プロジェクト
CASIO のレトロガジェット「ゲーム電卓」を、『オコゲ』と LCD キャラクタディスプレイモジュールで作成します。
※ コード開発と記事は同時進行ですので、まったり更新&内容変更有です。
「ゲーム電卓」とは
ゲーム電卓(ゲームでんたく)は、卓上電子計算機にコンピュータゲームの機能を盛り込んだ多機能化商品。1980年代の電子ゲーム流行の際に大手電卓メーカー等から発売された。 Wikipedia | ゲーム電卓
ここでは、CASIO から発売された「デジタルインベーダー」SM880 の復刻版である SL-880 を指すこととします。プレイのイメージは、以下のサイトの動画をご覧ください。
ミミィ
懐かしいヮ・・・
「AIM」キーと「FIRE」キーがユルユルになるまで遊んだものョ・・・ハッ
タマちー
ミミィって歳いくつなんだろ・・・
準備
以下の記事に従ってデスクトップアプリ『オコゲ』の導入と設定を行ってください。
『オコゲ』デスクトップ | おこげ俱楽部
Raspberry Pi デスクトップアプリ版『オコゲ』について
ハードウェア
- Raspberry Pi 4B (8GB)
- I2C 接続小型 LCD モジュール
- 圧電サウンダ
- タクトスイッチ
記事中では、これらの部品をブレッドボードとワイヤ類で接続して使用します。
回路構成
以下は配線の一例です。
LCD キャラクタディスプレイ | Raspberry Pi GPIO (BCM) |
---|---|
A | 3V3(バックライト不要の場合は接続不要) |
VDD | 3V3 |
RESET | 3V3 または 10kΩ でプルアップ |
GND | GND |
SDA | 22* |
SCL | 23* |
K | GND(バックライト不要の場合は接続不要) |
* I2C バス1(GPIO2-3)を使用する場合、キャラクタディスプレイにはこちら を使用
圧電サウンダ | Raspberry Pi GPIO (BCM) |
---|---|
片方 | 20 |
もう片方 | GND |
タクトスイッチ | Raspberry Pi GPIO (BCM) |
---|---|
左 | 26 |
右 | 19 |
左右 GND | GND |
キャラクタディスプレイに文字を表示してみるわ!
AQM0802A に文字を表示してみる | おこげ俱楽部
『ゲーム電卓パイ』プロジェクト~その2:LCD キャラクタディスプレイモジュール AQM0802A を試してみる
『ゲーム電卓パイ』プロジェクト
CASIO のレトロガジェット「ゲーム電卓」を、デスクトップ版『オコゲ』と LCD キャラクタディスプレイモジュールで作成します。
※ コード開発と記事は同時進行ですので、まったり更新&内容変更有です。
「ゲーム電卓」とは
ゲーム電卓(ゲームでんたく)は、卓上電子計算機にコンピュータゲームの機能を盛り込んだ多機能化商品。1980年代の電子ゲーム流行の際に大手電卓メーカー等から発売された。 Wikipedia | ゲーム電卓
ここでは、CASIO から発売された「デジタルインベーダー」SM880 の復刻版である SL-880 を指すこととします。プレイのイメージは、以下のサイトの動画をご覧ください。
ミミィ
懐かしいヮ・・・
「AIM」キーと「FIRE」キーがユルユルになるまで遊んだものョ・・・ハッ
タマちー
ミミィって歳いくつなんだろ・・・
ハードウェア
- Raspberry Pi 4B (8GB)
- I2C 接続小型 LCD モジュール
- 圧電サウンダ
- タクトスイッチ
記事中では、これらの部品をブレッドボードとワイヤ類で接続して使用します。
回路構成
以下は配線の一例です。
LCD キャラクタディスプレイ | Raspberry Pi GPIO (BCM) |
---|---|
A | 3V3(バックライト不要の場合は接続不要) |
VDD | 3V3 |
RESET | 3V3 または 10kΩ でプルアップ |
GND | GND |
SDA | 22* |
SCL | 23* |
K | GND(バックライト不要の場合は接続不要) |
* I2C バス1(GPIO2-3)を使用する場合、キャラクタディスプレイにはこちら を使用
圧電サウンダ | Raspberry Pi GPIO (BCM) |
---|---|
片方 | 20 |
もう片方 | GND |
タクトスイッチ | Raspberry Pi GPIO (BCM) |
---|---|
左 | 26 |
右 | 19 |
左右 GND | GND |
キャラクタディスプレイに文字を表示してみるわ!
AQM0802A に文字を表示してみる | おこげ俱楽部
『ゲーム電卓パイ』プロジェクト~その2:LCD キャラクタディスプレイモジュール AQM0802A を試してみる
『オコゲ』デスクトップ
このページで紹介するアプリは、限定的な環境において使用することを前提として素人が趣味で開発しているもので、不特定多数の方々の利用を想定したものではありません。ご了承くださいませ。
ミミィ
要するにちゃんと動かなくても文句言うなってことネ!
タマちー
言い方・・・
ダウンロードとインストール
『オコゲ』ダウンロードページ から最新版(最上部に表示されているもの)をダウンロードしてください。
ターミナルから次のようにインストールします。
$ sudo apt install ./ocoge_x.x.x_arm64.deb
+『オコゲ』デスクトップ | おこげ俱楽部 『オコゲ』デスクトップ
June 13, 2022このページで紹介するアプリは、限定的な環境において使用することを前提として素人が趣味で開発しているもので、不特定多数の方々の利用を想定したものではありません。ご了承くださいませ。
ミミィ
要するにちゃんと動かなくても文句言うなってことネ!
タマちー
言い方・・・
ダウンロードとインストール
『オコゲ』ダウンロードページ から最新版(最上部に表示されているもの)をダウンロードしてください。
ターミナルから次のようにインストールします。
$ sudo apt install ./ocoge_x.x.x_arm64.deb
# x.x.x はバージョン番号
アンインストール
ターミナルから次のように入力してください。
$ sudo apt remove ocoge
~/.config/ocoge に設定ファイルが残っていて気になる場合は手動で削除してください。
使い方
GPIO にアクセスするために、PIGPIO デーモンを起動しておきます。
$ sudo pigpiod
diff --git a/htdocs/2022-06-21_aqm0802a/index.html b/htdocs/2022-06-21_aqm0802a/index.html
index 354883e..b6f80dc 100644
--- a/htdocs/2022-06-21_aqm0802a/index.html
+++ b/htdocs/2022-06-21_aqm0802a/index.html
@@ -1,4 +1,4 @@
-AQM0802A に文字を表示してみる | おこげ俱楽部 AQM0802A に文字を表示してみる
2022年6月21日ミミィ
とにかく試しに動かしてみるわよ!
考えてるヒマがあったら手を動かすのよ手を!
タマちー
1行目に「ocoge」、2行目に「club」と表示してみよう・・・手順説明の下に『オコゲ』のブロックで組み立てたプログラムコードを畳んで置いてあります。クリックすると開きます。
【「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 】
ユルくて好き・・・
I2C アドレス
次のコマンドで確認します。
$ i2cdetect -y 6
+AQM0802A に文字を表示してみる | おこげ俱楽部 AQM0802A に文字を表示してみる
June 21, 2022ミミィ
とにかく試しに動かしてみるわよ!
考えてるヒマがあったら手を動かすのよ手を!
タマちー
1行目に「ocoge」、2行目に「club」と表示してみよう・・・手順説明の下に『オコゲ』のブロックで組み立てたプログラムコードを畳んで置いてあります。クリックすると開きます。
※一部ブロックの形状が現行バージョンと異なります。
【「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 】
ユルくて好き・・・
I2C アドレス
次のコマンドで確認します。
$ i2cdetect -y 6
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
diff --git a/htdocs/2022-07-26_rp2040/index.html b/htdocs/2022-07-26_rp2040/index.html
index 384e6dd..5014cf4 100644
--- a/htdocs/2022-07-26_rp2040/index.html
+++ b/htdocs/2022-07-26_rp2040/index.html
@@ -1,4 +1,4 @@
-海外からいろいろ届いたよ | おこげ俱楽部 海外からいろいろ届いたよ
2022年7月26日ミミィ
ちょっとRP2040マイクロコントローラユニット (MCU) を色々買ってみたワ!
RP2040 はラズベリーパイ財団が開発したマイクロコントローラで、Raspberry Pi Pico に搭載されているものヨ!
マイクロコントローラとは、CPU(Central Processing Unit:中央処理装置)とメモリ等の周辺機能が1チップに集積された半導体の一つです。日本では、「マイコン」と呼ばれることもありますが、海外では通じない事が多いです。CPUは、ソフトウェアによるプログラムに従い演算や制御を行います。そのためにプログラムを格納するROMや演算データを一時記憶するRAMなどのメモリが周辺機能として内蔵されることが多く、その他にタイマやADコンバータと呼ばれる様々な機能も追加され現在では家電やOA機器、車載など多くのアプリケーションに採用されています。マイクロコントローラ(MCU)とは? - エプソン
No MCU フラッシュ ピン数 外寸1 USB 価格 1 Raspberry Pi Pico 2MB 20x2+3 51×21mm micro 527円2 2 Raspberry Pi Pico W 2MB 20x2+3 51×21mm micro 810円2 3 Waveshare RP2040-Zero 2MB 9x2+5 23.5x18mm Type-C 517円3 4 PIMORONI Tiny 2040 8MB4 8x2+3 21x18mm Type-C 1,134円2 5 RP2040 Black Board New Type 4MB5 20x2+4 53x23mm Type-C 405円3
1. 基板部のみの大きさ
2. PIMORONIの日本円表示価格 (送料別 - 小物なので800円くらい)
3. AliExpressの価格 (送料込・当方購入時の最低価格)
4. 2MB版もある
5. 16MB版もある (700円くらい)
タマちー
1,2 はオリジナル、4 はイギリスの有名ベンダーの製品、3,5 は中華製なの・・・中華製品は基盤の仕上げとか動作のクセとか、些細なところで大きなストレスを与えてくるのよネ! 本質と違うところで苦労したくなければ中華は避けるべきヨ!
ヘンなモジュールで安く遊びたい変態さんには中華製超オススメ・・・
アンタ・・・
ただ、オリジナルの Pico に全く問題がないのかというとそうでもなく、例えばリセットボタンがない、基盤の上面にピン番号が印刷されていない、USB 端子形状が micro USB であるなど、使い勝手の悪い部分があります。まあこの辺りは Raspberry Pi コンピュータも同様なので、そういう思想なのでしょう。
そういうわけで、現在当方では小さいサイズに Tiny 2040 、普通サイズに RP2040 Black Board New Type を使用中。どちらも、リセットボタン、ピン番号のシルク印刷、USB Type-C、大容量のフラッシュメモリ、フルカラーLED搭載。加えて後者は送込み400円のお陰で、やらかしてしまっても怖くないのがイイ。
海外からいろいろ届いたよ
July 26, 2022ミミィ
ちょっとRP2040マイクロコントローラユニット (MCU) を色々買ってみたワ!
RP2040 はラズベリーパイ財団が開発したマイクロコントローラで、Raspberry Pi Pico に搭載されているものヨ!
マイクロコントローラとは、CPU(Central Processing Unit:中央処理装置)とメモリ等の周辺機能が1チップに集積された半導体の一つです。日本では、「マイコン」と呼ばれることもありますが、海外では通じない事が多いです。CPUは、ソフトウェアによるプログラムに従い演算や制御を行います。そのためにプログラムを格納するROMや演算データを一時記憶するRAMなどのメモリが周辺機能として内蔵されることが多く、その他にタイマやADコンバータと呼ばれる様々な機能も追加され現在では家電やOA機器、車載など多くのアプリケーションに採用されています。マイクロコントローラ(MCU)とは? - エプソン
No MCU フラッシュ ピン数 外寸1 USB 価格 1 Raspberry Pi Pico 2MB 20x2+3 51×21mm micro 527円2 2 Raspberry Pi Pico W 2MB 20x2+3 51×21mm micro 810円2 3 Waveshare RP2040-Zero 2MB 9x2+5 23.5x18mm Type-C 517円3 4 PIMORONI Tiny 2040 8MB4 8x2+3 21x18mm Type-C 1,134円2 5 RP2040 Black Board New Type 4MB5 20x2+4 53x23mm Type-C 405円3
1. 基板部のみの大きさ
2. PIMORONIの日本円表示価格 (送料別 - 小物なので800円くらい)
3. AliExpressの価格 (送料込・当方購入時の最低価格)
4. 2MB版もある
5. 16MB版もある (700円くらい)
タマちー
1,2 はオリジナル、4 はイギリスの有名ベンダーの製品、3,5 は中華製なの・・・中華製品は基盤の仕上げとか動作のクセとか、些細なところで大きなストレスを与えてくるのよネ! 本質と違うところで苦労したくなければ中華は避けるべきヨ!
ヘンなモジュールで安く遊びたい変態さんには中華製超オススメ・・・
アンタ・・・
ただ、オリジナルの Pico に全く問題がないのかというとそうでもなく、例えばリセットボタンがない、基盤の上面にピン番号が印刷されていない、USB 端子形状が micro USB であるなど、使い勝手の悪い部分があります。まあこの辺りは Raspberry Pi コンピュータも同様なので、そういう思想なのでしょう。
そういうわけで、現在当方では小さいサイズに Tiny 2040 、普通サイズに RP2040 Black Board New Type を使用中。どちらも、リセットボタン、ピン番号のシルク印刷、USB Type-C、大容量のフラッシュメモリ、フルカラーLED搭載。加えて後者は送込み400円のお陰で、やらかしてしまっても怖くないのがイイ。
ジェスチャーセンサ PAJ7620 を試す
2022年8月3日ちょっと楽しそうなハンドジェスチャセンサモジュール PAJ7620 を入手したので、『オコゲ』を使って遊んでみました。
PAJ7620 概要
- 9種類のジェスチャーを認識(上下左右、前後、時計回り・反時計回り、波)
- I2C インターフェース
- 動作電圧:3.3V
- 検出範囲:5~10cm
- データシート
配線
VIN→3.3V
GND→GND
SDA→GPIO2
SCL→GPIO3
INT→オープン
Raspberry Pi の設定
メニュー→設定→Raspberry Piの設定→「インターフェース」タブで I2C を有効にしておく
『オコゲ』プログラム
動画サンプル
PAJ7620を『オコゲ』で使用している動画です。
※ 古い動画なので現在の『オコゲ』とは見た目が色々と異なっています。ご了承ください。
いろいろ遊べそうな雰囲気。Raspberry Pi Zero をネットラジオ再生専用機にしたりしているので、ジェスチャ対応にしてみたら面白いかもしれない。
昔見たイギリス製SFテレビドラマ「SPACE: 1999」を思い出した。「The Last Enemy(邦題:宇宙戦艦ミサイル発射!)」というエピソードで、その宇宙戦艦「 サタゼウス 」のコントロールパネルがまさにこんな感じの非接触式ジェスチャ操作で、当時その未来的な雰囲気がチョーカッコイイと感じたのを覚えている。今見るとこれはこれで「レトロ未来感」が逆にカッコイイのだが。 関係ないけどサタゼウスの乗組員が全員女性(全員女性の惑星と全員男性の惑星が戦争しているという設定w)で、これまたカッコイイ のだった。リンク先の写真の直後、戦艦が爆破されてみんな死んじゃうけど。敵だったからネ
ジェスチャーセンサ PAJ7620 を試す
August 3, 2022ちょっと楽しそうなハンドジェスチャセンサモジュール PAJ7620 を入手したので、『オコゲ』を使って遊んでみました。
PAJ7620 概要
- 9種類のジェスチャーを認識(上下左右、前後、時計回り・反時計回り、波)
- I2C インターフェース
- 動作電圧:3.3V
- 検出範囲:5~10cm
- データシート
配線
VIN→3.3V
GND→GND
SDA→GPIO2
SCL→GPIO3
INT→オープン
Raspberry Pi の設定
メニュー→設定→Raspberry Piの設定→「インターフェース」タブで I2C を有効にしておく
『オコゲ』プログラム
動画サンプル
PAJ7620を『オコゲ』で使用している動画です。
※ 古い動画なので現在の『オコゲ』とは見た目が色々と異なっています。ご了承ください。
いろいろ遊べそうな雰囲気。Raspberry Pi Zero をネットラジオ再生専用機にしたりしているので、ジェスチャ対応にしてみたら面白いかもしれない。
昔見たイギリス製SFテレビドラマ「SPACE: 1999」を思い出した。「The Last Enemy(邦題:宇宙戦艦ミサイル発射!)」というエピソードで、その宇宙戦艦「 サタゼウス 」のコントロールパネルがまさにこんな感じの非接触式ジェスチャ操作で、当時その未来的な雰囲気がチョーカッコイイと感じたのを覚えている。今見るとこれはこれで「レトロ未来感」が逆にカッコイイのだが。 関係ないけどサタゼウスの乗組員が全員女性(全員女性の惑星と全員男性の惑星が戦争しているという設定w)で、これまたカッコイイ のだった。リンク先の写真の直後、戦艦が爆破されてみんな死んじゃうけど。敵だったからネ
おこげ倶楽部自宅サーバについて
2023年3月22日唐突ですが「押し入れで眠っている RPi を活用しようプロジェクト」の一環として、ocoge.club のウェブサーバマシンは Raspberry Pi 3B+ へ変更となりました。
ocoge.club は Raspberry Pi 自宅サーバ(上写真)にてホスティングされています。現在 Webサーバ、メールサーバが稼働しています。また、別マシン Orange Pi 3 LTS にクラウドサーバを入れてリバースプロキシを通した2台体制で運用しています。数千円で購入できる手のひらサイズのシングルボードコンピュータと3千円程度のSSDを使ってなかなか充実したネットサービスごっこwができます。
タマちー
「おこげ俱楽部」は、軽量多目的 Raspberry Pi サーバーとして絶賛開店中です...。ミミィ
らずぱい高くなった...
在庫はだいぶ回復してきた1ようで一安心ね!価格はもうこのご時世じゃ諦めるしかないわネ!
ハードウェア構成
サーバ1
- Raspberry Pi 3B+ + アルミケース
- Crucial SSD 120GB 2.5インチ (CT120BX500SSD1JP)
- Salcar USB-C 2.5インチ SATA HDD/SSDケース
サーバ2
- Orange Pi 3 LTS
- グリーンハウス SSD 120GB (GH-SSDR2SA120)
- GiGimundo 2.5インチ HDD ケース
ソフトウェア構成
サーバ1
種類 名称 OS Raspberry Pi OS (64-bit) Lite Webサーバ Nginx サーバサイドプログラム CGI (FastCGI Wrap ) ※ローカルアクセスのみ メールサーバ (MTA) Postfix POP/IMAP サーバ Dovecot
サーバ2
種類 名称 OS Armbian Jammy CLI Git サーバ Forgejo クラウドサーバ Nextcloud HUB 4 Web メールクライアント SnappyMail (Nextcloud プラグイン)
このほか、証明書取得に Let’s Encrypt (certbot) とか
その他利用しているもの
独自ドメイン (ocoge.club)
MyDNS (無料ダイナミックDNS)
インターネット接続回線(有線LANで接続)
静的サイトジェネレータ 11ty 及びブログテーマ Vredeburg
参考サイト
Sam Hobbs | Raspberry Pi Email Server
英語でメールサーバのみの解説ではあるが、ステップごとにインストールや設定がうまくいっているかどうか確認を行うことができるようになっているため、長い作業の中でどこでミスをしたのか、または不具合が出ているのかがわかりやすい。また、設定をデフォルトから変更する箇所にそれぞれ設定の意味の説明があり、自分が何をしているのかがわかるため、ソフトウェアのアップデートで設定項目やその値に変更があり見本と齟齬が生じていても対処が容易である。わけもわからず言われた通り延々ソフトウェアのインストールと設定ファイルの書き換えを繰り返し、辟易しながら終わらせたものの結局動作せず問題のある個所も見当がつかないまま挫折、などという悲劇を起こしにくい、ナイスなサイト。
サーバの構成を一新した理由は他にもあって...セキュリティアップデートが面倒だったのヨ!
WordPress(とテーマ) と Nextcloud と RainLoop(ウェブメールクライアント)を手作業でアプデとか!
仕事でもないのにあんなのやってられないワ!!
今入れてる Nextcloud+SnappyMail は Snap 経由のインストールでそのうえ勝手に自分でアップデートしてくれる…楽…
注釈
1. 2023年8月現在
おこげ倶楽部自宅サーバについて
March 22, 2023唐突ですが「押し入れで眠っている RPi を活用しようプロジェクト」の一環として、ocoge.club のウェブサーバマシンは Raspberry Pi 3B+ へ変更となりました。
ocoge.club は Raspberry Pi 自宅サーバ(上写真)にてホスティングされています。現在 Webサーバ、メールサーバが稼働しています。また、別マシン Orange Pi 3 LTS にクラウドサーバを入れてリバースプロキシを通した2台体制で運用しています。数千円で購入できる手のひらサイズのシングルボードコンピュータと3千円程度のSSDを使ってなかなか充実したネットサービスごっこwができます。
タマちー
「おこげ俱楽部」は、軽量多目的 Raspberry Pi サーバーとして絶賛開店中です...。ミミィ
らずぱい高くなった...
在庫はだいぶ回復してきた1ようで一安心ね!価格はもうこのご時世じゃ諦めるしかないわネ!
ハードウェア構成
サーバ1
- Raspberry Pi 3B+ + アルミケース
- Crucial SSD 120GB 2.5インチ (CT120BX500SSD1JP)
- Salcar USB-C 2.5インチ SATA HDD/SSDケース
サーバ2
- Orange Pi 3 LTS
- グリーンハウス SSD 120GB (GH-SSDR2SA120)
- GiGimundo 2.5インチ HDD ケース
ソフトウェア構成
サーバ1
種類 名称 OS Raspberry Pi OS (64-bit) Lite Webサーバ Nginx サーバサイドプログラム CGI (FastCGI Wrap ) ※ローカルアクセスのみ メールサーバ (MTA) Postfix POP/IMAP サーバ Dovecot
サーバ2
種類 名称 OS Armbian Jammy CLI Git サーバ Forgejo クラウドサーバ Nextcloud HUB 4 Web メールクライアント SnappyMail (Nextcloud プラグイン)
このほか、証明書取得に Let’s Encrypt (certbot) とか
その他利用しているもの
独自ドメイン (ocoge.club)
MyDNS (無料ダイナミックDNS)
インターネット接続回線(有線LANで接続)
静的サイトジェネレータ 11ty 及びブログテーマ Vredeburg
参考サイト
Sam Hobbs | Raspberry Pi Email Server
英語でメールサーバのみの解説ではあるが、ステップごとにインストールや設定がうまくいっているかどうか確認を行うことができるようになっているため、長い作業の中でどこでミスをしたのか、または不具合が出ているのかがわかりやすい。また、設定をデフォルトから変更する箇所にそれぞれ設定の意味の説明があり、自分が何をしているのかがわかるため、ソフトウェアのアップデートで設定項目やその値に変更があり見本と齟齬が生じていても対処が容易である。わけもわからず言われた通り延々ソフトウェアのインストールと設定ファイルの書き換えを繰り返し、辟易しながら終わらせたものの結局動作せず問題のある個所も見当がつかないまま挫折、などという悲劇を起こしにくい、ナイスなサイト。
注釈
1. 2023年8月現在
『おこげ俱楽部』
2022年4月25日『おこげ倶楽部』は『情報コース』のポータルサイトです。
このサイトでは、『情報コース』のご紹介のほか、独自のブロックプログラミング環境である『オコゲ』、教室で実施または実施予定の実習内容や技術情報の公開等をしています。
クイックリンク
まず目を通していただきたいページをいくつかご紹介いたします。
『情報コース』もっとくわしく編
教室での使用機材やソフトウェアについて、ランディングページより少し具体的にご紹介。
『情報コース』もっとくわしく編 | おこげ俱楽部
『情報コース』では Raspberry Pi やブロックプログラム開発環境『オコゲ』、センサやモータなどを使用して、楽しみながら ICT や IoT などの情報技術を学習します。
ブロックプログラミング環境『オコゲ』
オコゲってなんぞ?と思った方はこちら。Web体験版を操作できます。
ブロックプログラミング環境『オコゲ』 | おこげ俱楽部
『オコゲ』は、Google Blockly ライブラリを使用して作られた、Raspberry Pi 向けブロックプログラミング環境です。
プチレッスン
『オコゲ』Web 体験版を使用してプログラミング学習を体験することができます。
プチレッスン目次 | おこげ俱楽部
各レッスンに進む前にお読みください。問題形式で『オコゲ』でのプログラミング学習を体験することができます。
技術情報
初級者向け、Raspberry Pi や ICT について気付いたことや覚えておきたいことなどを記していきます。
「技術情報」タグをご覧ください。
おこげ倶楽部自宅サーバ
『おこげ倶楽部』は、Raspberry Pi 3 Model B+ を使った自宅サーバで稼働しています。ネット回線やハードウェアが専用業者のものに比べて貧弱であるため、表示に多少時間がかかることがありますことをご了承ください。 これは、ちいさな SBC(シングルボードコンピュータ)でミニマルなサーバ運用のデモンストレーションの意味もあります。興味がおありでしたら、以下の記事もどうぞ。
おこげ倶楽部自宅サーバについて | おこげ俱楽部
ocoge.club は Raspberry Pi 自宅サーバにてホスティングされています。Webサーバ、メールサーバ稼働中。さらに...
『おこげ俱楽部』
April 25, 2022『おこげ倶楽部』は『情報コース』のポータルサイトです。
このサイトでは、『情報コース』のご紹介のほか、独自のブロックプログラミング環境である『オコゲ』、教室で実施または実施予定の実習内容や技術情報の公開等をしています。
クイックリンク
まず目を通していただきたい記事をいくつかご紹介いたします。
『情報コース』もっとくわしく編
教室での使用機材やソフトウェアについて、ランディングページより少し具体的にご紹介。
『情報コース』もっとくわしく編 | おこげ俱楽部
『情報コース』では Raspberry Pi やブロックプログラム開発環境『オコゲ』、センサやモータなどを使用して、楽しみながら ICT や IoT などの情報技術を学習します。
ブロックプログラミング環境『オコゲ』
オコゲってなんぞ?と思った方はこちら。Web体験版を操作できます。
ブロックプログラミング環境『オコゲ』 | おこげ俱楽部
『オコゲ』は、Google Blockly ライブラリを使用して作られた、Raspberry Pi 向けブロックプログラミング環境です。
プチレッスン
『オコゲ』Web 体験版を使用してプログラミング学習を体験することができます。
プチレッスン目次 | おこげ俱楽部
各レッスンに進む前にお読みください。問題形式で『オコゲ』でのプログラミング学習を体験することができます。
おこげ倶楽部自宅サーバ
『おこげ倶楽部』は、Raspberry Pi 3 Model B+ を使った自宅サーバで稼働しています。ネット回線やハードウェアが専用業者のものに比べて貧弱であるため、表示に多少時間がかかることがありますことをご了承ください。 これは、ちいさな SBC(シングルボードコンピュータ)でミニマルなサーバ運用のデモンストレーションの意味もあります。興味がおありでしたら、以下の記事もどうぞ。
おこげ倶楽部自宅サーバについて | おこげ俱楽部
ocoge.club は Raspberry Pi 自宅サーバにてホスティングされています。Webサーバ、メールサーバ稼働中。さらに...
Untitled
2023年8月26日Untitled
September 15, 2023
\ No newline at end of file
diff --git a/htdocs/index.json b/htdocs/index.json
index b21969a..9d706b6 100644
--- a/htdocs/index.json
+++ b/htdocs/index.json
@@ -3,105 +3,98 @@
{
"url": "/ict-course-portal/",
"title": "『おこげ俱楽部』",
- "date": "2199年1月1日",
+ "date": "January 1, 2199",
"description": "『情報コース』ご紹介、独自のブロックプログラミング環境『オコゲ』、教室での実習内容や周辺技術情報等のアウトプット"
},
{
"url": "/2023-03-22_server/",
"title": "おこげ倶楽部自宅サーバについて",
- "date": "2023年3月22日",
+ "date": "March 22, 2023",
"description": "ocoge.club は Raspberry Pi 自宅サーバにてホスティングされています。Webサーバ、メールサーバ稼働中。さらに..."
},
{
"url": "/2022-08-03_paj7620/",
"title": "ジェスチャーセンサ PAJ7620 を試す",
- "date": "2022年8月3日",
+ "date": "August 3, 2022",
"description": "ちょっと楽しそうなハンドジェスチャセンサモジュール PAJ7620 を入手したので、『オコゲ』を使って遊んでみました。"
},
{
"url": "/2022-07-26_rp2040/",
"title": "海外からいろいろ届いたよ",
- "date": "2022年7月26日",
+ "date": "July 26, 2022",
"description": "RP2040 ベースのマイクロコントローラユニットをいくつか買ってみました。"
},
{
"url": "/2022-06-21_aqm0802a/",
"title": "AQM0802A に文字を表示してみる",
- "date": "2022年6月21日",
+ "date": "June 21, 2022",
"description": "『ゲーム電卓パイ』プロジェクト~その2:LCD キャラクタディスプレイモジュール AQM0802A を試してみる"
},
{
"url": "/2022-06-10_game-dentak/",
"title": "『ゲーム電卓パイ』プロジェクト",
- "date": "2022年6月14日",
+ "date": "June 14, 2022",
"description": "Raspberry Pi と LCD キャラクタディスプレイモジュールで「ゲーム電卓」を再現してみる"
},
- {
- "url": "/2022-06-13_ocoge-desktop/",
- "title": "『オコゲ』デスクトップ",
- "date": "2022年6月13日",
- "description": "Raspberry Pi デスクトップアプリ版『オコゲ』について"
- },
-
{
"url": "/2022-05-16_tf-janken/",
"title": "『オコゲ』でぐーちょきぱーを機械学習",
- "date": "2022年5月16日",
+ "date": "May 16, 2022",
"description": "『オコゲ』デスクトップ版の機能を動画でご紹介。サーマルカメラと TensorFlow を使ったインタラクティブでリアルタイムな機械学習。"
},
{
"url": "/2022-05-14_petitlesson-01_typewriter-1/",
"title": "プチレッスン『タイプライターっぽいもの』その1",
- "date": "2022年5月15日",
+ "date": "May 15, 2022",
"description": "サンプルプログラム「タイプライターもどき」をもうちょっとだけタイプライターっぽくしてみましょう。"
},
{
"url": "/petit-lesson/",
"title": "プチレッスン目次",
- "date": "2022年5月14日",
+ "date": "May 14, 2022",
"description": "各レッスンに進む前にお読みください。問題形式で『オコゲ』でのプログラミング学習を体験することができます。"
},
{
"url": "/2022-05-14_mascots/",
"title": "『オコゲ』マスコットのご紹介",
- "date": "2022年5月13日",
+ "date": "May 13, 2022",
"description": "『オコゲ』のキャンバスにデフォルトで表示されるマスコットキャラクターをご紹介。"
},
{
"url": "/2022-05-13_account/",
"title": "受講生限定アカウントサービス",
- "date": "2022年5月13日",
- "description": "『情報コース』受講者でご希望の方に、『おこげ倶楽部』オリジナルのメールアドレスと Git アカウントを進呈しております。"
+ "date": "May 13, 2022",
+ "description": "『情報コース』受講者でご希望の方に、『おこげ倶楽部』オリジナルのメールアドレスとクラウドストレージを進呈しております。"
},
{
"url": "/2022-05-07_demo/",
"title": "『オコゲ』Web 体験版",
- "date": "2022年5月7日",
+ "date": "May 7, 2022",
"description": "ブロックプログラミングを体験してみましょう。ハードウェアなどの制限から、Web体験版ではできないこともありますが、感触を確かめることはできます。"
},
{
"url": "/2022-05-01_ocoge-about/",
"title": "ブロックプログラミング環境『オコゲ』",
- "date": "2022年5月1日",
+ "date": "May 1, 2022",
"description": "『オコゲ』は、Google Blockly ライブラリを使用して作られた、Raspberry Pi 向けブロックプログラミング環境です。"
},
{
"url": "/2022-04-27_ict-motto/",
"title": "『情報コース』もっとくわしく編",
- "date": "2022年4月27日",
+ "date": "April 27, 2022",
"description": "『情報コース』では Raspberry Pi やブロックプログラム開発環境『オコゲ』、センサやモータなどを使用して、楽しみながら ICT や IoT などの情報技術を学習します。"
}
diff --git a/htdocs/landing-page/index.html b/htdocs/landing-page/index.html
index 2a50ee7..6f41b45 100644
--- a/htdocs/landing-page/index.html
+++ b/htdocs/landing-page/index.html
@@ -1,4 +1,4 @@
-上野学習塾『情報コース』 | おこげ俱楽部 上野学習塾『情報コース』
2023年8月26日上野学習塾では、来たるべき情報教育時代に向けて、IoT 技術を中心とした「情報」科目を学ぶことのできるクラスを開設いたします。
IoT とは…
Internet of Things、日本語で「モノのインターネット」といい、PCやスマートフォンなどの情報端末だけではなく、身のまわりのあらゆる「モノ」がインターネットに接続され、情報交換することで相互に制御する仕組みのことです。それには「モノ」が何らかの形でコンピュータにつながる必要がありますが、ここにディスプレイやキーボードといった「インターフェース」ではなく「センサー」を使用することで、「モノ」と「ネット」の、人間を介在しない接続が可能になります。IoT の入り口ともいえるこの技術は「フィジカルコンピューティング」と呼ばれています。
学校でプログラミング?
2020年度から「新学習指導要領」が小中高校で順次実施されます。その中に「情報活用能力を、言語能力と同様に学習の基盤となる資質・能力と位置付け」、小学校では「プログラミング的思考を育成」し、中学では「ネットワークを利用した双方向性のあるコンテンツのプログラミング」を学び、高校では共通必履修科目「情報I」を新設する、とあります。2024年には大学入学共通テストにこの「情報I」の導入が検討されています。今すぐ対策を!ということではありませんが、コンピュータに実際に触れプログラムを組むという経験が、大きなアドバンテージとなるであろうことは間違いありません。
子供たちの選択肢を広げるために
10~20年後には49%の職業が機械に代替され、2011年にアメリカの小学校に入学した子どもたちの65%は、今はまだ存在していない職業に就くだろうという予測があります(おそらくそのほとんどがコンピュータに深く関係するでしょう)。新指導要領でも「主体的・対話的で深い学び」(アクティブ・ラーニング)が求められており、今後の変化の大きい世界に対応する力を育てようとしていることがわかります。しかし、そうは言っても具体的にどのように学習を進めればよいのでしょうか。
学習は本来楽しいもの
知らなかったことを知る、できなかったことができるようになる、それは本来とても楽しいはずのものです。しかし、親だけではなく本人でさえ、「できるようになった」よりも「できなかった」の方に目が行きがちです。そして「できた」ことは正しく評価されないまま、「勉強はイヤなもの」になっていくのです。 今後プログラミングが学校での学習に取り入れられていく中で、同じことが起こらないとは言えません。
プログラミングを楽しもう
コンピュータプログラミングは成果が「アプリ」という形で残るため「できた」ことが本人にも分かりやすく、自分で作ったアプリで遊んだり、PC操作や生活を便利にしたりすることで大きな充実感を得ることができます。簡単に言うと「楽しい」のです。楽しければ理解も進み、創意工夫をする意欲もわいてきます。それはまさに「アクティブラーニング」そのものです。わたしたちは、プログラミングを通して「学習」の楽しさを取り戻すお手伝いができれば、と考えています。
カリキュラム
基本的に高校の情報の要領に沿ったものを、Raspberry Pi と『オコゲ』を使って進めていきます。また、中学生以上ではプログラミングだけではなく授業形式でコンピュータの基礎からネットリテラシーまで幅広く行います。受講者の年齢や理解度に合わせた内容となりますが、「高校の要領」とは言っても、小学生にも十分理解できるものです。具体的な内容については、『情報コース』「もっとくわしく編」をご覧ください。
『情報コース』もっとくわしく編 | おこげ俱楽部
『情報コース』では Raspberry Pi やブロックプログラム開発環境『オコゲ』、センサやモータなどを使用して、楽しみながら ICT や IoT などの情報技術を学習します。
『オコゲ』に慣れたら、本格的なプログラム言語にステップアップすることもできます。『オコゲ』内部でも使用されている Javascript から始めて(以下2つはプログラミング言語ではありませんが)HTML 、CSS と進めば、立派な Web アプリ技術者の出来上がり(?)です。
最後に、上野学習塾
プログラミングは総合的な知的活動です。数学的・論理的な思考や国語力などを同時に要求されます。例えばゲームを作るために物体が落下するアニメーションを描画するのに、中学3年で学習する2次関数(数学)や物体の運動(理科)の知識がないと自然な動きを作ることはできません。 また、文科省が目指す「アクティブラーニング」ですが、一見「暗記中心の学習からの脱却」に見えますが、実はそうではなく「基礎はできて当たり前」という前提があってその上で創造的な学習をという内容となっています。大学入試ではその傾向がはっきりしており、「英検準2級を持っていない学生は出願すら受け付けない」という大学が学科を問わず増加しているという話を聞きます。あくまで、基礎学力が基準を満たしていることが前提なのです。 と、いう訳で、『情報コース』と共に上野学習塾『学習コース』をオススメしております。是非、合わせてご検討くださいませ。
講師について…東京学芸大学特別教科教員養成課程卒業後、東電ソフトウェア炉心管理システム部に在籍、ウラン濃縮シミュレーション作成チームに所属したりした。
『おこげ俱楽部』について
『おこげ俱楽部』は、「情報コース」ポータルサイトです。『オコゲ』や Raspberry Pi をはじめとする SBC(シングルボードコンピュータ)の情報を発信しています。
おこげ俱楽部 - Ohiwa Code Generator - Portal
Ohiwa Code Generator - Portal
上野学習塾『情報コース』
September 15, 2023上野学習塾では、来たるべき情報教育時代に向けて、IoT 技術を中心とした「情報」科目を学ぶことのできるクラスを開設いたします。
IoT とは…
Internet of Things、日本語で「モノのインターネット」といい、PCやスマートフォンなどの情報端末だけではなく、身のまわりのあらゆる「モノ」がインターネットに接続され、情報交換することで相互に制御する仕組みのことです。それには「モノ」が何らかの形でコンピュータにつながる必要がありますが、ここにディスプレイやキーボードといった「インターフェース」ではなく「センサー」を使用することで、「モノ」と「ネット」の、人間を介在しない接続が可能になります。IoT の入り口ともいえるこの技術は「フィジカルコンピューティング」と呼ばれています。
学校でプログラミング?
2020年度から「新学習指導要領」が小中高校で順次実施されます。その中に「情報活用能力を、言語能力と同様に学習の基盤となる資質・能力と位置付け」、小学校では「プログラミング的思考を育成」し、中学では「ネットワークを利用した双方向性のあるコンテンツのプログラミング」を学び、高校では共通必履修科目「情報I」を新設する、とあります。2024年には大学入学共通テストにこの「情報I」の導入が検討されています。今すぐ対策を!ということではありませんが、コンピュータに実際に触れプログラムを組むという経験が、大きなアドバンテージとなるであろうことは間違いありません。
子供たちの選択肢を広げるために
10~20年後には49%の職業が機械に代替され、2011年にアメリカの小学校に入学した子どもたちの65%は、今はまだ存在していない職業に就くだろうという予測があります(おそらくそのほとんどがコンピュータに深く関係するでしょう)。新指導要領でも「主体的・対話的で深い学び」(アクティブ・ラーニング)が求められており、今後の変化の大きい世界に対応する力を育てようとしていることがわかります。しかし、そうは言っても具体的にどのように学習を進めればよいのでしょうか。
学習は本来楽しいもの
知らなかったことを知る、できなかったことができるようになる、それは本来とても楽しいはずのものです。しかし、親だけではなく本人でさえ、「できるようになった」よりも「できなかった」の方に目が行きがちです。そして「できた」ことは正しく評価されないまま、「勉強はイヤなもの」になっていくのです。 今後プログラミングが学校での学習に取り入れられていく中で、同じことが起こらないとは言えません。
プログラミングを楽しもう
コンピュータプログラミングは成果が「アプリ」という形で残るため「できた」ことが本人にも分かりやすく、自分で作ったアプリで遊んだり、PC操作や生活を便利にしたりすることで大きな充実感を得ることができます。簡単に言うと「楽しい」のです。楽しければ理解も進み、創意工夫をする意欲もわいてきます。それはまさに「アクティブラーニング」そのものです。わたしたちは、プログラミングを通して「学習」の楽しさを取り戻すお手伝いができれば、と考えています。
カリキュラム
基本的に高校の情報の要領に沿ったものを、Raspberry Pi と『オコゲ』を使って進めていきます。また、中学生以上ではプログラミングだけではなく授業形式でコンピュータの基礎からネットリテラシーまで幅広く行います。受講者の年齢や理解度に合わせた内容となりますが、「高校の要領」とは言っても、小学生にも十分理解できるものです。具体的な内容については、『情報コース』「もっとくわしく編」をご覧ください。
『情報コース』もっとくわしく編 | おこげ俱楽部
『情報コース』では Raspberry Pi やブロックプログラム開発環境『オコゲ』、センサやモータなどを使用して、楽しみながら ICT や IoT などの情報技術を学習します。
『オコゲ』に慣れたら、本格的なプログラム言語にステップアップすることもできます。『オコゲ』内部でも使用されている Javascript から始めて(以下2つはプログラミング言語ではありませんが)HTML 、CSS と進めば、立派な Web アプリ技術者の出来上がり(?)です。
最後に、上野学習塾
プログラミングは総合的な知的活動です。数学的・論理的な思考や国語力などを同時に要求されます。例えばゲームを作るために物体が落下するアニメーションを描画するのに、中学3年で学習する2次関数(数学)や物体の運動(理科)の知識がないと自然な動きを作ることはできません。 また、文科省が目指す「アクティブラーニング」ですが、一見「暗記中心の学習からの脱却」に見えますが、実はそうではなく「基礎はできて当たり前」という前提があってその上で創造的な学習をという内容となっています。大学入試ではその傾向がはっきりしており、「英検準2級を持っていない学生は出願すら受け付けない」という大学が学科を問わず増加しているという話を聞きます。あくまで、基礎学力が基準を満たしていることが前提なのです。 と、いう訳で、『情報コース』と共に上野学習塾『学習コース』をオススメしております。是非、合わせてご検討くださいませ。
講師について…東京学芸大学特別教科教員養成課程卒業後、東電ソフトウェア炉心管理システム部に在籍、ウラン濃縮シミュレーション作成チームに所属したりした。
『おこげ俱楽部』について
『おこげ俱楽部』は、「情報コース」ポータルサイトです。『オコゲ』や Raspberry Pi をはじめとする SBC(シングルボードコンピュータ)の情報を発信しています。
おこげ俱楽部 - Ohiwa Code Generator - Portal
Ohiwa Code Generator - Portal
\ No newline at end of file
diff --git a/htdocs/page/3/index.html b/htdocs/page/3/index.html
index 05bbf3b..2421c58 100644
--- a/htdocs/page/3/index.html
+++ b/htdocs/page/3/index.html
@@ -1,3 +1,3 @@
-おこげ俱楽部 - Ohiwa Code Generator - Portal
\ No newline at end of file
diff --git a/htdocs/petit-lesson/index.html b/htdocs/petit-lesson/index.html
index 276cee0..cc2e5fa 100644
--- a/htdocs/petit-lesson/index.html
+++ b/htdocs/petit-lesson/index.html
@@ -1,4 +1,4 @@
-プチレッスン目次 | おこげ俱楽部 プチレッスン目次
2022年5月14日ミミィ
よく来たわね!ここでは問題形式で『オコゲ』でのプログラミング学習を体験することができるわ!どんどん挑戦してってちょうだい!
タマちー
どきどき…
レッスンの進め方
問題部分は以下のようなブロックです。
レッスン:生命と宇宙と万物についての究極の疑問の答えは?
クリックすると答えが開きます。なるべくすぐには答えを見ずに、自分で考えてプログラムを作成して実行してみてください。プログラミングは基本的にトライアンドエラーです。まずは手を動かし、うまく動くまでいろいろ試してみましょう。
42?『銀河ヒッチハイク・ガイド』ね!
気になる人は Google で「生命、宇宙、そして万物についての究極の疑問の答え 」を検索するといいわ!ディープ・ソート電卓が750万年の叡智が導き出す答えを計算してくれるわよ!レッスンの内容とは何の関係もないけどね!
注意事項
ブラウザは Chrome (Chromium) 推奨です
『オコゲ』Web 体験版は Google Chrome (Chromium) 推奨です。それ以外のブラウザをご使用の場合、表示が乱れたり、機能の一部が使用できないことがあります。
※ レンダリングエンジンに Blink (Chromium) を使用しているブラウザ(Microsoft Edge、Yandex Browserなど)は使用可能です。
※ 使用できないブラウザの例:Firefox(「CODE」ツールボタン動作せず)、Internet Explorer(画面すらまともに表示されず:D~~)など。
1-Wire 設定は「無効」にしましょう
アプリケーションメニュー→メニューRaspberry Pi の設定→インターフェイスタブの「1-Wire」を有効にすると、 デバイスとの接続に 1-Wire 通信という規格が使用できるようになります。使用するピンはデフォルトで GPIO4 で、「1-Wire」有効時にこのピンを他の目的で使用すると予期せぬ動作をすることがあります。当教室で確認した具体的な例としては LED をつないで点灯させると数秒(一瞬のことも)で勝手に消灯してしまう、PWMを使ってLEDの明るさを変更すると意図しない点滅をするなどです。
GPIO4 は隣が GND で使いやすいためか多くのサンプルで使用されています。1-Wire デバイス機器を使用しないのであれば、「1-Wire」は無効にしておく方が無難です。
目次
プチレッスン『タイプライターっぽいもの』その1 | おこげ俱楽部
サンプルプログラム「タイプライターもどき」をもうちょっとだけタイプライターっぽくしてみましょう。
レッスンでは基本的にアタシが教師役よ!
イマドキの言葉で言えばメンターね!
ミミィメンター…うさんくさい…
プチレッスン目次
May 14, 2022ミミィ
よく来たわね!ここでは問題形式で『オコゲ』でのプログラミング学習を体験することができるわ!どんどん挑戦してってちょうだい!
タマちー
どきどき…
レッスンの進め方
問題部分は以下のようなブロックです。
レッスン:生命と宇宙と万物についての究極の疑問の答えは?
クリックすると答えが開きます。なるべくすぐには答えを見ずに、自分で考えてプログラムを作成して実行してみてください。プログラミングは基本的にトライアンドエラーです。まずは手を動かし、うまく動くまでいろいろ試してみましょう。
42?『銀河ヒッチハイク・ガイド』ね!
気になる人は Google で「生命、宇宙、そして万物についての究極の疑問の答え 」を検索するといいわ!ディープ・ソート電卓が750万年の叡智が導き出す答えを計算してくれるわよ!レッスンの内容とは何の関係もないけどね!
注意事項
ブラウザは Chrome (Chromium) 推奨です
『オコゲ』Web 体験版は Google Chrome (Chromium) 推奨です。それ以外のブラウザをご使用の場合、表示が乱れたり、機能の一部が使用できないことがあります。
※ レンダリングエンジンに Blink (Chromium) を使用しているブラウザ(Microsoft Edge、Yandex Browserなど)は使用可能です。
※ 使用できないブラウザの例:Firefox(「CODE」ツールボタン動作せず)、Internet Explorer(画面すらまともに表示されず:D~~)など。
目次
プチレッスン『タイプライターっぽいもの』その1 | おこげ俱楽部
サンプルプログラム「タイプライターもどき」をもうちょっとだけタイプライターっぽくしてみましょう。
レッスンでは基本的にアタシが教師役よ!
イマドキの言葉で言えばメンターね!
ミミィメンター…うさんくさい…
『オコゲ』Pico (MicroPython) 対応について
2023年8月26日一部のブロックで Raspberry Pi Pico (MicroPython) コードの出力に対応しました。
ミミィ
始めたばっかりなのでほんのちょっぴりだけヨ!
具体的には「ゲーム電卓パイ」のページにあるブロックプログラムに対応しているワ!
『オコゲ』Pico (MicroPython) 対応について
September 15, 2023一部のブロックで Raspberry Pi Pico (MicroPython) コードの出力に対応しました。
ミミィ
始めたばっかりなのでほんのちょっぴりだけヨ!
具体的には「ゲーム電卓パイ」のページにあるブロックプログラムに対応しているワ!
\ No newline at end of file
diff --git a/htdocs/tags/Pico/index.html b/htdocs/tags/Pico/index.html
index cefeeeb..17a8528 100644
--- a/htdocs/tags/Pico/index.html
+++ b/htdocs/tags/Pico/index.html
@@ -1,3 +1,3 @@
-Tagged with "Pico" | おこげ俱楽部
\ No newline at end of file
diff --git a/htdocs/tags/RP2040/index.html b/htdocs/tags/RP2040/index.html
index b958146..ddcbe02 100644
--- a/htdocs/tags/RP2040/index.html
+++ b/htdocs/tags/RP2040/index.html
@@ -1,3 +1,3 @@
-Tagged with "Rp2040" | おこげ俱楽部
\ No newline at end of file
diff --git a/htdocs/tags/index.html b/htdocs/tags/index.html
index 05f65b8..bc48362 100644
--- a/htdocs/tags/index.html
+++ b/htdocs/tags/index.html
@@ -1,3 +1,3 @@
-Tag List | おこげ俱楽部
\ No newline at end of file
diff --git a/htdocs/tags/オコゲ/2/index.html b/htdocs/tags/オコゲ/2/index.html
index eae5ebc..2287cc7 100644
--- a/htdocs/tags/オコゲ/2/index.html
+++ b/htdocs/tags/オコゲ/2/index.html
@@ -1,3 +1,3 @@
-Tagged with "オコゲ" | おこげ俱楽部
\ No newline at end of file
diff --git a/htdocs/tags/オコゲ/index.html b/htdocs/tags/オコゲ/index.html
index 48e1ebe..7949199 100644
--- a/htdocs/tags/オコゲ/index.html
+++ b/htdocs/tags/オコゲ/index.html
@@ -1,3 +1,3 @@
-Tagged with "オコゲ" | おこげ俱楽部