Building a memory game with Blocの手習い(Chapter 3)

これはSmalltalk Advent Calendar 2017の記事です。

前回に引き続いて、Bloc のチュートリアルである Building a memory game with Bloc のChapter 3(Building card graphical elements) の内容をやっていく。
元ネタは
https://github.com/pharo-graphics/Bloc
の中にある、
http://files.pharo.org/books-pdfs/booklet-Bloc/2017-11-09-memorygame.pdf
である。
続きを読む →

Building a memory game with Blocの手習い(Chapter 2)

これはSmalltalk Advent Calendar 2017の記事です。

前回に引き続いて、Bloc のチュートリアルである Building a memory game with Bloc のChapter 2(Game model insights) の内容をやっていく。
元ネタは
https://github.com/pharo-graphics/Bloc
の中にある、
http://files.pharo.org/books-pdfs/booklet-Bloc/2017-11-09-memorygame.pdf
である。
続きを読む →

Building a memory game with Blocの手習い(Chapter 1)

これはSmalltalk Advent Calendar 2017の記事です。

Smalltalk絡みで何か書こうと思っていたけど、本職が火を吹いているので何もできず、そうかといってやり過ごすのも癪だ。
最近、Pharo Smalltalk界隈でBlocの話題がよく出ている気がする。小田さんのAdvent Calendarの記事にもなってるし。勉強会にも行ってないので何のことやら取り残された感を持っていたが、github にチュートリアルが出ていたので、それを記事を書くことで Bloc について勉強することにした。
ということで、元ネタは
https://github.com/pharo-graphics/Bloc
の中にある、
http://files.pharo.org/books-pdfs/booklet-Bloc/2017-11-09-memorygame.pdf
である。
続きを読む →

GPD Win/GPD Pocketにxubuntu 16.04をインストールする

GPD Pocket(ubuntu版)を入手したのだが、起動が遅かったりイザという時に自分でインストールできないと困るので、いろいろと方法を試してみたところ、 https://apt.nexus511.net/ のビルドイメージがなかなか便利だった。GPD Winでも使えるようなので備忘として残しておく。
続きを読む →

Pharo 4.0でアイコン一覧を表示する方法

いつも忘れてしまうので。
参考:SpecBooklet.pdf

| iconList |
iconList := IconListModel new.
iconList
  items: (Smalltalk ui icons iconSelectors collect: [ :each | each -> (Smalltalk ui icons iconNamed: each) ]);
  displayBlock: [ :assoc | assoc key];
  sortingBlock: [ :assocA :assocB | assocA key < assocB key ];
  icons: [ :assoc | assoc value ];
  title: 'Availiable icons for the current theme.'.
iconList openWithSpec

ScratchとSmalltalkの関係

この記事はSmalltalk Advent Calendar 2016のエントリです。

今年のSmalltalk Advent Calendarを何もネタを考えずに引き受けてしまった。このところ忙しくてなかなかコーディングの機会がない。昨年は何を書いたのだろうと思ったら、こんな記事を書いていた。毎度のネタで心苦しいが、今回もScratch絡みの記事を書く事にする。
続きを読む →

Scratch拡張 — ServoDesigner公開

今年のゼミ夏合宿で「サーボを制御するのにHeartToHeartのようなツールが欲しい」という声があった。
Scratchのコスチューム切り換えの機能を流用すれば、それらしい機能を提供できそうだと思ったので、合宿中から早速取りかかってみた。
杉浦先生のMugbot Designerを参考にさせて頂いて(名前の一部も頂いて)、ほとんどの部分はあっという間に作り上げた。
ServoDesigner — github
sd1
ServoDesigner ではサーボのチャンネルを模した変数の値を一括して変更する機能しかない。その値を実際のサーボに設定するには別プログラムを使う。Scratchと別プログラムとの通信は Remote Sensor Protocol を用いて行い、 servo changed というブロードキャストメッセージによって、切り換えのタイミングが知らされる。なお、Based on Scratchで無効化されている Remote Sensor Protocol は、ServoDesignerを導入することで有効化される。
現時点では firmata で Arduino に接続されたサーボを制御するサンプルがあるが、今後はラズパイに接続されたサーボの制御プログラムなども用意していく。

Raspberry pi model B(Raspbian jessie版)にROS indigoをインストールする

この記事は以前の記事(Raspberry pi(Raspbian wheezy)にROS indigoをインストールする)をもとに、Raspbian jessie用に書き換えた記事である。
Raspbian のバージョンによってインストールするパッケージが異なるので、以下のコマンドでRaspbianのバージョンを確認した上で、適切な方法を選ぶ必要がある。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 8.0 (jessie)
Release:	8.0
Codename:	jessie
$ 

Codenameの行に動作中のバージョンが表示される。

続きを読む →

WiringPi2 for Pythonをインストールする

前回の記事に引き続いて Raspberry Pi A+ へ、もろもろインストールする。

Python開発用ツールのインストール

python-pipはインストール済のようなので、python-devだけインストールする。

sudo apt-get install python-dev

WiringPi2のインストール

wiringipi2をインストールする。以前よりずっと簡単になった。

sudo pip install wiringpi2

いろいろ警告が出るけど、下のようになって終わればOK。

Successfully installed wiringpi2 wiringpi
Cleaning up...

試運転

$ python
Python 2.7.9 (default, Mar  8 2015, 00:52:26)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wiringpi2
__main__:1: DeprecationWarning: The wiringpi2 module has been deprecated, please 'import wiringpi' instead.

以前のようにwiringpi2をimportすると、deprecatedだと怒られる。素直にwiringpiをimportすればよい。

>>> import wiringpi
>>> wiringpi.piBoardRev()
2
>>> wiringpi.wiringPiSetup()
wiringPiSetup: Must be root. (Did you forget sudo?)
$

wiringPiSetupを使うにはroot権限が必要なので、sudo pythonとしなければならない。
以上。