PocketCHIPで初めてのPICO-8プログラム、Luaのテーブルを使ったパーティクル計算


ようやく届いたPocketCHIPを触り始めてまだ3日ほどですが、環境いじりはひとまず置いといて、メインのPICO-8を触り始めました。


PICO-8
http://www.lexaloffle.com/pico-8.php

PocketCHIPを買わなくてもPICO-8のソフトだけ$14.99で販売しています。
WindowsやLinux、Mac、Raspberry Piで実行できるようです。
子供さんでもゲーム感覚でプログラムができる学習教材としてもよい環境かと思います。

昨今のゲーム機は4Kの時代のようですが、PICO-8はたった128*128ドットの小さなモニターに16色で絵を描いてゲームを作るバーチャルコンソールになっていますが、その全体的なデザインセンスが素晴らしいです。小さな環境だからこそプログラムもしやすく、アイデア勝負でセンスの良いプログラムが書けるかと思います。

将棋は9×9マスでゲームをしますが、おそらく今後数百年は廃れることはないでしょう。
ゲームの真髄は解像度ではないということです。

そのPICO-8の環境がPocketCHIPの中に入っているので屋外に持ち出せてモバイルで遊ぶことも出来ます。そんなことで寿司屋でプログラムを作ってました。


プログラムはLuaという言語で書きます。
正直、Luaという言語があることも知りませんでしたが、昔のBASICっぽい感じで直感的に理解できると思います。

ちょっとユニークなのがテーブルという配列によく似た変数で、数字や文字、計算式までごちゃ混ぜに管理できます。今回のパーティクル計算のテストプログラムはこのテーブルを利用して計算しています。ということで今回は見た目よりはプログラムの内容がポイントになっています。

出来たプログラムをコンパイルするとこんなパッケージが作れます。


これ普通のPNG形式の画像ですが、実はこの画像の中にプログラムが入っています。
これを実行できる環境で再生するとこんな映像が出てきます。


映像だけなく音楽や効果音もこのPNG画像ファイルに含まれているのが凄いですよねー
下記のリンクから普通のパソコンのブラウザでも実行できます。

particle test 0.1
http://www.lexaloffle.com/bbs/?tid=27751

カーソルキーでキャラクターの移動、キャラクターの回りを飛び回っているパーティクルのビットは、Xキーで減少、Zキーで増加します。

是非、お試しください。



焚き火の炎で癒される。焼きイモ付き


伐採した庭木で焚き火をしました。
焚き火の炎は見てるだけで癒やされます。



焚き火の炎で癒される
https://youtu.be/iXyebt8Rx84


目的は焼きイモです。
自家製のサツマイモを庭木で焼くなんてほぼ完全自給自足だな。
 

秋の夜に、イモを食う幸せかな・・・




スーパーカブで行く秋の和歌浦

 
スーパーカブで秋の和歌浦を走ってきました。

お天気が良ければ最高のコースです。











スーパーカブで行く秋の和歌浦
https://youtu.be/J_l_pwnlU00




PocketCHIPのキャブレーション設定とブラウザとメディアプレイヤーをインストールしてみる


ようやく届いたPocketCHIPですが、早い人は3月頃には届いていたようです。
しかしながら、PocketCHIPについてネットを検索してみても日本語の情報はほとんどありません。その筋の超マニアックな方しか購入しない変態マシーンですからね。(笑)

そんな早期に届いた超マニアックの方の情報を読んでみると非常に難解だったりします。中には既に遊び飽きて手放(放置)している方もいるようです。

そういうことで6ヶ月ほど出遅れた今更な情報になると思いますが、私的には初体験なので日記として残しておきたいと思います。この手のマシーンを触るのは初めてなので勘違いや間違いも多々ある可能性があります。自己責任でよく調べてから遊んでください。

まずPocketCHIPの基本性能ですがこんな感じです。
・SoC:Allwinner R8 CortexA8 processor @1GHz、1 Core
・Mali-400 GPU (Compatible with Allwinner A13)
・System Memory:512 MB RAM
・Storage:4GB NAND flash
・Monitor:420 x 272 pixel display 
・Connectivity:802.11 b/g/n Wi-Fi + Bluetooth 4.0
・Video Output:3.5mm jack for composite video and audio
  (HDMI and VGA available via adapters)
・USB:1x USB host port, 1x micro USB OTG port
・Two expansion headers
・Power:5V via micro USB OTG or battery、5 Hour
・GPIO Access
・Dimensions:60 x 40 mm
・Linux:Debian Jessie+Patch

CHIPには1GHzのプロセッサ、512MBのDDR3メモリ、4GBのフラッシュメモリストレージ、IEEE 802.11b/g/nのWi-Fi、Bluetooth 4.0対応しています。


4.3インチ(420 x 272)のモニターが老眼には厳しいです。


ちなみに、金色のシールの正体は・・・


ワンコ!


たぶんこいつです。

ホームメニューから直接アクセスできるソフトは以下の通りです。
・PICO-8 - play, create, share 8-bit games
・SUNVOX - listen or compose electronic music
・Terminal - use a Linux shell to run commands
・Write - a lightweight text editor
・File Browser - a graphical file browser
・Help - the same documentation you’re reading here, built into to PocketC.H.I.P.

これ以外にWi-Fiなどを設定する環境設定画面とシャットダウンやスリープ設定する画面があります。もちろんLinuxマシーンなのでターミナルからソフトをインストールすれば色々と動作します。

何と言ってもメインはやはり「PICO-8」です。
PICO-8だけでもう一つのタイニーコンピュータとして遊べると思います。

操作が難解なソフトシンセサイザーの「SunVox」は下記の動画参考になると思います。

SunVox on iOS: another simple tutorial
https://youtu.be/yLWwpA1Zj8I


まず、工場の出荷状態では若干タッチパネルがズレているようで、特に上部が押しづらい状態です。誤操作防止のためにもまずはキャブレーションしたほうが無難です。

ちなみに細かな設定にはダイソーのタッチペンが使いやすいです。
指や鉛筆の消しゴムでは細かな設定は厳しいです。

【設定方法】
「Terminal」のアイコンからターミナルを立ち上げる。
 ※事前にWi-Fiの接続をしてください。

↓まずシステムパッケージリストを更新する。
 途中パスワードの入力が来たら「chip」+ Enter
sudo apt update

↓タッチパネルのキャリブレーションをインストール
sudo apt-get install xinput-calibrator

↓キャリブレーションを実行
sudo /usr/bin/xinput_calibrator


順番に四角の+マークをタッチすると設定終了。
ただし、この方法だとシャットダウンする度に補正値がリセットされます。
起動ごとにキャリブレーションしないといけないので面倒です。

キャブレーションの値をメモしておいてコンフィグの既定値を変更します。

【設定方法】
↓「nano」で「99-calibration.conf」の既定値の内容を変更します。
sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf
 
 Option "Calibration" "3965 112 3776 227"
⇒Option "Calibration" "3929 162 3595 237"

↓上書きして終了する。
ctrl+o 上書き
ctrl+x 終了

設定後リブートするとキャブレーションが修正されます。
上記の値は端末によって個体差があると思います。
よく確認してから変更してください。


次にブラウザをインストールします。
大前提としてPocketCHIPは非力なハンドヘルドのlinuxマシーンです。
普通のパソコンやスマホのようなスムーズなブラウジングはできません。
一昔前のDSブラウザ並みに超スローでフリーズ寸前の動作になります。
しかも表示画面が小さいため全体像はよくわかりません。
あくまで緊急避難用としてネットに接続できる程度のです。


一応、標準でも簡単なブラウザは搭載されています。
ターミナルから「surf google.com」と入れるとGoogleが立ち上がります。
ヘルプ画面はこれで表示されています。
しかし、ヘビーなページではフリーズ状態になり全く使い物になりません。
下記のフォーラムあったdwb (dynamic web browser) をインストールしてみます。

Forum PocketCHIP Browser Installer Script
https://bbs.nextthing.co/t/pocketchip-browser-installer-script/4832

【設定方法】
「Terminal」のアイコンからターミナルを立ち上げる。

↓設定用のsh(シェルスクリプト)をダウンロードします。
wget https://raw.githubusercontent.com/SteveMcGrath/chipbuild/master/pocket_builder.sh

↓shを実行する。
 途中パスワードの入力が来たら「chip」+ Enter
bash pocket_builder.sh

↓リブートします。
sudo reboot

リブートすると「Get Help」が「Web Browser」に変更されています。


「Web Browser」をクリックしてブラウザを立ち上げます。
初めて立ち上げるとこんな画面になります。


DWBではキー入力によるコマンド指定になっています。
コマンドは下記を参考にしてください。

DWB(1) Manual Page
http://portix.bitbucket.org/dwb/resources/manpage.html

まず「o」コマンドでURL指定でページを開きます。
「o」→ open: https://www.google.com

後はコマンド表を参考にしてください。
こちらのページがわかりやすいです。

dwb (dynamic web browser) の特徴と利点
http://9oe.me/distro/?p=4281

【注意事項】
このままでは日本語のページは文字化けします。
別途、日本語の設定とフォント等のインストールが必要です。

DWBはタブブラウザですが、新しいタブを作って「d」コマンドで削除すると落ちました。
それ以降、動作不安定になりうまく立ち上がらなかったり途中で落ちる場合もあります。
タブは使わないほうがいいかもしれません。(未解決)

動作不安定で標準の状態ではYoutube等も見れないので、もう一つFierfox(iceweasel)を入れてみます。

【設定方法】
「Terminal」のアイコンからターミナルを立ち上げる。

↓iceweaselをインストールする。
 途中パスワードの入力が来たら「chip」+ Enter
sudo apt-get install iceweasel

↓iceweaselを実行する。
iceweasel

画面が小さくて全体がわかりづらいので50%くらいに縮小すると使いやすいです。
非常に重いですがYoutubeも再生できます。


毎回ターミナルから起動するのは面倒なので、ホーム画面のアイコンを変更します。
先程設定した「dwb」 から「iceweasel」に変更します。

ホームの変更は下記フォーラムを参考
https://bbs.nextthing.co/t/personalization-of-gui/5167

【設定方法】
↓cdで下記デレクトリーに移動
usr/share/pocket-home

↓「nano」で「config.json」の内容を書き換える。 dwb → iceweasel
sudo nano config.json

↓上書きして終了する。パスワードは「chip」
ctrl+o 上書き
ctrl+x 終了

アイコンの変更は下記のpngを変更する。
/usr/share/pocket-home/


初期値(バックアップ用)
=======================================
{
  "defaultPage": "Apps",
  "pages": [
    {
      "name": "Apps",
      "items": [
     
    {
      "name": "Terminal",
          "icon": "appIcons/terminal.png",
          "shell": "vala-terminal -fs 8 -g 20 20"
        },
        {
          "name": "Play PICO-8",
          "icon": "appIcons/pico8.png",
          "shell": "pico8"
        },
        {
          "name": "Make Music",
          "icon": "appIcons/musicsequencer.png",
          "shell": "sunvox"
        },
        {
          "name": "Get Help",
          "icon": "appIcons/help.png",
          "shell": "surf /usr/share/pocketchip-localdoc/index.html"
        },
        {
          "name": "Write",
          "icon": "appIcons/texteditor.png",
          "shell": "leafpad"
        },
        {
          "name": "Browse Files",
          "icon": "appIcons/filebrowser.png",
          "shell": "pcmanfm"
        }
      ],
      "cornerButtons": [
        {
          "location": "TopLeft",
          "name": "Battery",
          "icon": "battery_0.png"
        },
        {
          "location": "TopRight",
          "name": "WiFi",
          "icon": "wifiOff.png"
        },
        {
          "location": "BottomLeft",
          "name": "Power",
          "icon": "powerIcon.png"
        },
        {
          "location": "BottomRight",
          "name": "Settings",
          "icon": "settingsIcon.png"
        }
      ]
    },
    {
      "name": "Settings"
    },
    {
      "name": "Power"
    },
    {
      "name": "WiFi"
    },
    {
      "name": "Battery"
    }
  ],
  "background": "0000FF"
}
=======================================

音楽や動画も再生したいのでメディアプレイヤーを入れてみました。

【設定方法】
「Terminal」のアイコンからターミナルを立ち上げる。
↓「mplayer」をインストールします。
sudo apt-get install mplayer

↓音楽や映像のメディアファイルを指定すれば再生されます。(USBメディアからでもOK)
mplayer xxxxx.mp3

↓ネットアドレスを指定すればネットラジオにもなります。(作業用にオススメなアドレス)
mplayer http://205.164.62.22:9010


パソコン用の無給電スピーカーを繋げても音量も十分で結構いい音が鳴ります。
作業用バックミュージックにはいいかと思います。


【その他の覚書】
・ウィンドウ画面切り替え → Ctrl + TAB
・アプリを終了 → Ctrl + q
・ターミナルシェルの終了 → Ctrl + c
・ターミナルの終了 → exit


ひとまずここまで



PocketCHIPが届きました。

 
クラウドファンディングで申込んだPocketCHIPがようやく届きました。

PocketCHIP
https://getchip.com/pages/pocketchip

当初は7月ぐらいに出荷予定とのアナウンスがあったのですが、色々なトラブルがあったようで、どんどん延期されて8月、9月、10月説というお知らせもあったのですが、本日無事に届きました。

9月1日に香港から出荷されてベルギーを経由して日本に届きました。
延べ20日ほど掛かったことになります。


無事に届いて何よりです。













思っていたよりズッシリとした重みがあります。
キーボードはペコペコのスイッチですが入力できなくもないです。
USBにキーボードを接続しても使えるたので問題なしです。
Wi-Fiはワンクリックで接続できました。

まだ使い方がよくわからないところがあるのですが、中華タブレットにキーボートが付いた感じです。おいおいレビーをしていきたいと思います。

PocketCHIPマニュアル
http://docs.getchip.com/pocketchip.html#pico-8



ミニ船長の妄想


本日は台風で暇だったのでミニボートの模型を作っていました。
ハッチバック車にそのまま乗せられるコンパクトなサイズになっています。








箱が一つ付くだけで一気にオコチャマ化します。
ミニ船長の雰囲気が出てきました。




【参考】

Plywood electric boat
https://youtu.be/CIcGLjjOOb0



Plywood mini boat electric hydro fins
https://youtu.be/2o8N_HWAyIo


My Homemade Boat-5 自作ボート-5
https://youtu.be/ZprtBVVyC3s




Jetsurfはブレークするか? ホルモン系キャンペーン!

 
その昔、ハワイで板に乗って波乗りをする遊びが一部のマニアで流行っていました。
しかし当時は人気もなく一般的ではなかったようです。

ところが、その様子を映画に撮影して若い女の子にモテるというストーリーにしたところ、一気にサーフィンの人気が高まりブレイクしました。

最近流行りのSUPなんかもこの手法で、カヤックよりも不安定で危険ですが、ライフジャケットなんてダサイものは付けずに、ビキニ姿のオネーちゃんに乗ってもらうことでブレイクしたわけです。

自動車やバイクなんかも全てこの手法で売ってきました。
モータショーのキャンペーンガールやレース場でのレースクィーンなど露出度の高い演出で高揚を誘います。バブルな中国のモーターショーではほぼヌードに近いかなり際どい演出をしているようです。乗り物系だけじゃなく電化製品や食品なんかでもキャンペーンガールが付いたりします。

つまり製品の性能とは関係なくホルモンに直接作用するホルモン・キャンペーンなわけです。それに釣られる男も男ですが、それで釣る女も女です。
まっそれだけ人間は単純に動物的な行動をするということでしょう。


ここにその古典的な手法で頑張ってる製品があります。


Jetsurf Cancun
https://youtu.be/g_Hzj7bVLIE


日本では免許とかややこしそうですが、もっとオープンな仕様にすれば楽しそうな乗り物です。

これを2馬力以内で自作したらどうなんでしょうねー
新たな妄想をしています。
あっ、ホルモン系じゃないですよ。(笑)