Edited at
SmalltalkDay 19

PhratchでLEDをピカピカ光らせる

More than 3 years have passed since last update.


PhratchでLEDをピカピカ光らせる

気分を変えて別な感じの投稿をしてみます。予定していたRDBの話は別の機会に投稿します。

Smalltalkを利用するユーザーの中には、Smalltalkの世界で完結するだけではもの足りず、Smalltalkのダイナミックな開発環境を活用しながら、外部世界、現実世界とつなげ、ロボティックス分野や教育現場への利用に挑戦する方がいらっしゃいます。このAdvent Calenderでも、@EiichiroItoさんが12/12の投稿Pharoでフィジカルコンピューティング(2)で、Pharo SmalltalkとArduinoの接続方法を紹介されておりました。また、@maeda_さんが、昨日(12/18)Phratch(ScratchのPharo移植版)の紹介で、ScratchをPharoに移植した「Phratch ( http://www.phratch.com/ )」が紹介されました。そこで今日はPhratchでArduinoに接続して、LEDをピカピカ光らせてみます。今はこれが精一杯(ルパン風)。

ちなみに私はハードウェアについては素人です。学生のころ電子回路について少しだけ学びましたが忘れてしまっている。


必要なもの


  • MacまたはPC

  • Pharo Smalltalk 3.0

  • Arduino (今回はArduino Uno)

  • ArduinoとMacをつなげるためのUSB

  • LED(なければ、Arduino Unoの標準のランプで代用)

  • ハードウェアをいじる勇気(怖くない、怖くない・・・きっと)


Phratch インストール

昨日(12/18)の記事を参考にインストールをしてください。

Phratch(ScratchのPharo移植版)の紹介


Arduinoプラグインのインストール

「記載漏れ」でした。ご指摘ありがとうございます。@maeda_さん

PhratchとArduinoを接続するにはプラグインをインストールします。インストールは画面上部のメニューの「AddOns」より「ArduinoForPhratch」を選択します。少し時間がかかりますが、プラグインが自動的にインストールされます。


Arduinoとの接続確認

Pharoでフィジカルコンピューティング(2)を参考の情報をもとにArduinoの準備をします。 Firmataを忘れないようにしましょう。

PharoとArduinoの動作確認をします。今回は私が持っているArduino UnoをUSB接続します。

USB接続をしているデバイスの名前をチェックします。(Macの場合)

$ ls /dev/*usb*

/dev/cu.usbmodem1421 /dev/tty.usbmodem1421

詳しくないのだが、Unixの伝統的に /dev/tty.* は受信用、/dev/cu.* が発信用というのがあるらしい。

デバイス名が分かりましたので、PharoからArduinoに接続をしてみます。以下のコードを実行。

"Connection"

arduino := Arduino on: Firmata new.
arduino connectOnPort: '/dev/cu.usbmodem1421'.
arduino isConnected."接続されたかどうか確認"

それでは、LEDを点滅してみます。LEDが無い方は、Arduinoのボードに付属の13Pin接続のランプを用います。

"Led (digital output)"

led := LightEmittingDiode new.
led attach: (arduino digitalPin: 13).

10回LEDをピカピカ光らせます。

"10回LEDを点滅させる"

10 timesRepeat: [
led value: 1.
(Delay forMilliseconds: 500) wait.
led value: 0.
(Delay forMilliseconds: 500) wait.].

処理が終わったら、Arduinoとの接続を閉じます。忘れないように実行しましょう。

arduino disconnect.


Phratchの起動

いよいよ本番のPhratchでArduinoを操作してみましょう。Phratchを起動します。

PhratchFrameMorph open.


PhratchからArduinoに接続する


  1. [New Sprite]をクリック



  2. [create PhratchSpriteArduinoMorph]をクリック



3.Stage内のArduinoを選択

選択するとArduinoに関するタイルが表示されます。

今回は、先ほど実行した10回LEDをピカピカ光らせるのをPhratchでやってみます。ビジュアル言語でほとんど直感的に操作できますが、外部世界との接続のタイルだけは少し知識が必要な気がしました。 connectタイルのArduinoの選択および接続ポートの指定は知らないと若干難しいかもしれません

プログラムは以下の感じです(ビジュアル言語なので画面キャプチャ)。

あとは数値を変えたり、ArduinoのアイコンをLEDの点灯と合わせて動かしてみると面白いかもしれません。


ご紹介

@maeda_さんが発起人の名古屋界隈のプログラマ集団 DyNagoyaでは、201411月よりPhratchをArduinoに連携したりやAndroid上で動かすことに挑戦しております。ご興味があるかは参加してみてはいかがでしょうか。

DyNagoya イベント告知ページ

http://dynagoya.doorkeeper.jp/


Phratchの開発協力

@janniklaval さんより以下のツイートがありました。

Phratchにご興味があるかたは是非ご協力ください。

Yes we are looking for Japanese version and an Arduino version too. If someone want to help :)

https://twitter.com/janniklaval/status/544466925154095104


参考

Phratch

http://www.phratch.com/

Pharoでフィジカルコンピューティング(2)

http://oohito.com/nqthm/archives/2568

Phratch(ScratchのPharo移植版)の紹介

http://qiita.com/maeda_/items/7f75307df5fc5efc3dcf