月別アーカイブ: 2014年2月

Raspberry Pi Robotを動かしてみた

Raspberry Pi Robot
前回はRaspberry Pi Robotを作ったところまで書いたから、今日はその続きな。

問題山積み

Raspberry Pi Robotとりあえず、出来上がったRobotをちょこちょこ動かしてみた訳。
モーターだけ回してるときはなんの問題もなく動いていたんだが、シャーシに積んで動かしたら途中で暴走しちゃう。
車輪もついて負荷がかかるし、電流が云々で上手くいかんじゃね? と思ってるんだが、モーターにコンデンサかませてノイズを減らしてみ、という意見をもらったので、モーターに付けてみた。

それと、これは直接は関係ないと思うけど、さんざんいろんなものを詰め込んだRasbianだったので、更のSDカードにNOOBSを入れて、ScratchGPIOもVersion4を入れた。
NOOBSは落とすのにえらく時間がかかったけど、これ便利というか初心者にはこれいいね。基本コピーするだけだからね。

Raspberry Pi Robotを動かすスクリプトを書く

という訳で新しい環境を整えてからRobotを動かす側を作ったよ。
どうやって、モーターをコントロールするかはまずScratchGPIOのチュートリアルを見てね。
「Power11」と「Power12」という変数を作るんだけどこれがそれぞれGPIOの11ピンと12ピンに繋がってる。この変数の0から100までの値がそのままモーターの出力になるのね。

ScratchGPIO サンプルスクリプトなのでサンプルのスクリプトは英語で書いてあるけど、日本語になおすと右の様になる。

  • 緑の旗が押されたら11ピンに繋がるモーターパワーを0にする。
  • 1秒待って、モーターパワーを10上げる。
  • それを10回繰り返す。

ってことね。

ScratchGPIO スクリプトこれだけじゃまだ動かないからね。
Robotは2モーターなので、これを左右のカーソルキーに割り当てる。
右のカーソルキーを押してるときは左のモーターパワーを30にする、押してないときは0。左側はその反対。
カーソルキーを押してないときはモーターパワーを0にする、って云うのが入ってるからスペースキーを押したら〜って云うところは関係ないけどね。

ゴールはまだまだ先


こんな感じで動くのだけど、やっぱり途中で暴走したり固まったりしてる。
途中で薄々感づいていたのだけど、これ、前にしか進めんのよ。orz

Scratchエラーおまけにこんな見たことないエラーまで出る始末。

Raspberry Piではじめるどきどきプログラミングにモータードライバーを使う方法が出てるので、こっちも参考にしてみよう。

道のりは険しいわ。

関東Firefox OS勉強会 6thに行ってきた

Firefox OS今日はクラクラくるほどチャレンジングな企画だったわ。
だって、対象者が「FirefoxOSアプリ開発初心者(未経験可)」だって云うし、ハンズオンだし…。
OSC並みにアウェーだってことは予想されたんだが…、ごめんなさい、予測通りの惨敗だわ。

そもそも、なんでFirefox OSなのってところなんだけど、Raspberry PiでFirefox OS動かす、って云うのがあるのよ。
これはこれで相変わらずごにょごにょやってるんだけど動かないんだわ。orz
そんな感じでFirefox OSに興味を持っているところへATNDの告知を見たから果敢にも挑んだ訳だ。

Webこそがプラットフォーム

始めにMozillaの中の人がFirefox OSのことについて説明してくれたよ。

まぁ、Mozilla的にはAppleとGoogleに支配されないために第3勢力としてオープンな環境を築こうとがんばってる、ってことだな。

Firefox OSアプリを作ってみる

さてさて、問題のアプリの制作なんだが、これまたハンズオンの資料があるので参考にしてね。


Firefox OSシミュレーターをインストールして最初のチュートリアルは何とかなったわ。

あとは他の参加者のツイートがTogetterにまとめられてるのでそっちを見てね。

Firefox OSこの辺りまではなんとか食らいついて行けたので、こんな感じでサイトを見せるところまで行けたんよ。

問題はこのあとで、Twitterクライアントを作る、って云うパートなんだけど、途中から完全に落ちこぼれてたわ。
「アプリが動かなくなったらすぐにチューターを呼ぼう」ってことだったんだけど、手挙げっぱなしだし、もう切り捨ててくれてよかったんだけど「今日は全員できる様になるんだ」とがんばるチューターが途中からずーっと張り付いてもらって、いや、申し訳ない。

そんな訳で、なんとかタイムラインを表示するところまではなんとかしたんだが、これ以上見せられるものはないのよ。

今日の教訓

とりあえず一通りのハンズオンが終わり、Mozillaのひと、チューターの人と少し話をしたけど、今日の参加者は「初心者」とはいえ非IT系の人は俺1人だし、コピペの繰り返しで何とかなるんじゃないか、みたいな感じだったらしいんだけど、基本が解っていない場合一度つまずくと取り返せないんだよね、ってことで今日の教訓にするわ。

関係者の皆さん、お疲れ様でした。
また近いうちMozilla Factoryにも行かないとね。

PEGのキックオフイベントに行ってきた

PEG
幾度となく話題に上がっている「コンピューターに親しもう」プログラムが正式に「PEG」になって、キックオフイベントが開かれたので行ってきた。

「PEG」ってなに?

PEGProgramming Education Gatheringの頭文字を取ってPEGな。
PEGの主旨についてはPEGのサイトに書いてるので飛ばすけど、重要なのは次の2点だと思うわ。


すべての子どもたちに創造表現の場を提供する
創ること・工夫すること・協動することは、これからの時代においてより一層必要とされます。世界中のすべての子どもたちに、彼・彼女たちの力が花開く場を提供します。

すべての子どもたちの情報リテラシーを育む
コンピュータサイエンスをはじめとする技術の面白さや仕組みを理解し、それらを使いこなすリテラシーを育みます。課題や問題を分解し、手順を創り出し形にしていく物事のとらえ方は、子どもたちの汎用的な力を育むことにつながります。

トークリレーを圧巻した12歳

PEGトークリレーこのイベントのメインはトークリレーでPEGのパートナーとなっているいろいろな団体のプレゼンテーションの場だった訳だけど、ワークショップの手伝いをしていたのでリアルには見ていないのね。
あとから断片的に入ってくる情報からだけの話だけど山内君の話が一番インパクトあったみたいだよ。

親が教育熱心かどうか、また親の所得などでチャンスが制限されているのが現状です。ぜひ、新しい世界へのチャンスを義務教育の中にちりばめてほしい。こういう場、こういう世界がありますよ。やってみたい場合はこのようなチャンスがありますよ、という情報があるだけでも世界が変わります。プログラミング、語学、マスコミ、ロボット製作、経営学、・・・いろんな世界に続くドアを開けてみたい。また、子どもたちには平等にドアを開けてほしい。

んー。PEGの関係者をはじめ世の中の大人はこのことを真剣に受け止めなければいけないよ。
USTREAMの中継があったのであとで見られるかと思ったんだけど、パーティーの様子しかないのね…。残念だ。


ワークショップも盛りだくさん

PEGワークショップトークリレーと平行してワークショップも行われていたのだけど、これがまた豪華な内容だったよ。

  1. Rasbpberry Piのセットアップ
  2. Scratchの基本動作
  3. ScratchGPIOでLチカ
  4. 段ボールインターフェイス

この内容をを3時間半でやって最後にシアターで発表する、って云うんで卒倒しそうになったけど、やってみたら何とかなったんでこれまたビックリだよ。


Scratchはやったことのある子が多かったのだけど、Raspberry Piなんて初めてだしブレッドボードとかGPIOとか見たことも聞いたこともないこどもが、LEDがつくと大喜びだよ。
この先、こういうことがどんどん広まって行くとしたらすごいことだと思うし、今回のワークショップはこちらとしてもとても参考になったわ。
参加者にとって今回は無料のワークショップにも関わらず、Raspberry Piお持ち帰りと云うものすごいお得で為になるワークショップだったこと間違えない。

「Raspberry Piではじめるどきどきプログラミング」も先行発売

Raspberry PiではじめるどきどきプログラミングRaspberry Piではじめるどきどきプログラミング (はじめるプログラミング シリーズ)もイベント会場で先行発売されてたわ。
ワークショップでやったようなScratchGPIOの使い方や、GPIOとモータードライバーを使ってモーターを回す方法とか、Minecraftとの連携とか、こども用とは云いがたい内容盛りだくさんだよ。
Amazonで予約してるし、一般の来場者が優先だろうと思ったけど、遠慮しないで1冊買っておくべきだったわ。
おまけにAmazonではいつの間にか「シリーズ」化されてるし。w 今後に期待する。

世の中を変えるムーブメントにしたい

あの大雪の中来てくれた来場者や、ずーっと準備をしてきた関係者の皆さん、お疲れ様でした。
結果としてこのようなことになったのは、やっぱり日々の積み重ねだと思う。
花火を上げたのだから山内発言の様に世の中を変えるムーブメントになって欲しいし、微力ながらも関わりが持てて(この先もきっと)良かったわ。
今回のイベントをきっかけに、より多くのこどもたちがいろいろな可能性に触れるとこができる様になればいいと思う。

関連記事

Raspberry Pi Robotを作ってみた

Raspberry Pi Robot
Raspberry Piでいろいろとやってみてるんだけどね、やっぱりロボットでしょ。
ScratchGPIOでモーターをコントロールできればMINDSTORMS並みに遊べるんじゃね、と思った訳。
で、コードがかけなくても電子回路とか知らなくても、とりあえず動くところまで漕ぎ着けたので記しておくわ。

ズブの素人でもロボットが作れる

Raspberry pi GPIORaspberry PiにはGPIO(General Purpose Input/Output)っていう外部の電子回路と通信できるとげとげがある訳さ。
1番から26番まであって、それぞれに役割があるんだけど、どうれがどう、っていう話は飛ばすので知りたい人は下記をみてね。

この画の一番左の手前が1番ピンね。その上が2番で、左から2番目の手前が3番…で一番右の奥側が26番な。
で、このとげとげとモーターを繋いでごにょごにょするんだ。
モーターを繋ぐ方法はあとで書く。

GPIOをコントロールする方法

ScratchGPIO次にGPIOをコントロールする方法だけど、こじ研みたいなオマジナイは使えないので、そういう人のためにScratchGPIOっていう素敵なものがある訳よ。
「素敵」とはいえ、これもそれなりにハードルが高いから覚悟しろよ。
まず、ScratchGPIOのインストールとLチカのチュートリアル、モーターの動かし方は下記にある。

ここで使ってる「ULN2003」っていうトランジスタアレイは秋葉原中探したけど何処にも売ってなかったけど、東芝の「TD62083」というのが代替えで使えるらしいのでこっちを買ってきた。
一旦ブレッドボードに組んでみて、モーターが廻ることを確認してから、ユニバーサル基盤に半田付けする。

モジュールを作る

ScratchGPIO with Motorsブレッドボード上で動くところまで確認できたら、あとは間違わずに半田付けすればいいのよ。と、簡単に書いてるけど細かい作業は最近特に面倒だわ。目見えんのよ、まぢで。
上記のサイトでは外部電源を繋いでたんだけど、GPIOの情報をいろいろ漁ってたら2番ピンと3番ピンから5V出てんじゃん、ってことでそのように配線。
本当は通電の確認用にLEDも付けようとしたんだけど、GPIOに差したら隣のビデオとおもいっきし干渉することが解ったので、その部分は急遽切り落とした。

ScratchGPIO裏側はこんな感じね。
ここまでくればもう、あと1歩だぞ。

シャーシに載せる

Raspberry Pi Robotシャーシは前に作ってあったものをとりあえず使うけど、そのうちアクリルで作り直す予定。
汎用のきくパーツがいいので、ギヤボックスとホイールはタミヤのな。
ユニバーサルプレートはアッパーはタミヤのだけど、ロワーは実はタミヤじゃなくてミュウロボ用なんだ。
スタジオミュウのユニバーサルプレート(スタジオミュウではタッピングプレート)はタミヤのとぱっと見は同じなんだけど、穴の径が微妙に小さくて3mのタッピングビスが使えるんだよね。タミヤのは丁度3mなのでM3のナットが必要な訳。なので使い分けてるのね。
穴のピッチとRaspberry Piの固定用の穴がちょうどいい感じに収まるのでスペーサーかませれば難なくきれいに固定できる。
ピロボールもミュウロボのプレートに付属してるヤツね。
とりあえず、ハードはこれでよしと。

続きはまた今度書くわ。

キッズクリエイティブ研究所 プログラミングラボに行ってきた 2014年2月デジハリ編

長いものには巻かれろ(ちょっと違うけど)

プログラミングラボ デジハリタイトル長いな。
今日はCANVASの

キッズクリエイティブ研究所 プログラミングラボ ベーシックコースinデジハリ

のお手伝いに行ってきたよ。あー、タイトル長いわ。
要はScratchのワークショップだよ。
CANVASのキッズクリエイティブ研究所ではいろいろなこども向けのワークショップをやってるんだけど、その中のデジタル分野ってことでScratchのワークショップも以前からやってるのね。
過去にも東北でのワークショップScratchとKinectを使ったワークショップなんかのお手伝いをしてきたんだけど、2/8(土)にはPEGのキックオフイベントも控えてるし、今後絡むことが増えるんだろうと思ってる。

プログラミングラボって何?

プログラミングラボ

  • ベーシックコースinデジハリ
  • アドバンスコースinGREE
  • チャレンジコースin赤坂

の3コースでやるってことだから、それぞれレベルに合わせて行ってみるといいんんじゃない。

今日のワークショップの流れは、

  1. ファシリテーターのミーティングでスケジュールと担当の確認。
  2. こどもはファシリテーターの話を聞くエリアとPCで作業するエリアが明確に分かれてる。
  3. 基本的なところを一通りやったら、このどうしたらより良いものになるか皆でブレスト。
  4. 目標ができたらひたすら作ってデバグ。
  5. 最後は皆で発表会

という感じ。
プログラミングラボ ベーシックコースinデジハリ プログラミングラボ ベーシックコースinデジハリ プログラミングラボ ベーシックコースinデジハリ
プログラミングラボ ベーシックコースinデジハリ programing_lab_dhu_20140202-09 programing_lab_dhu_20140202-13programing_lab_dhu_20140202-11 programing_lab_dhu_20140202-10 programing_lab_dhu_20140202-07
プログラミングラボ ベーシックコースinデジハリ programing_lab_dhu_20140202-12

こどもは侮れない

まぁ、ベーシックコースってことで初心者が対象な訳だけど、なかなか「ドキッ」とするようなことを聞かれたり、こどもは侮れないのよ。
小学生でも低学年の子が多かったので、少し難しい話が多かったかもしれないし、じかんも短かったけど、皆よくできたよ。
俺としては「プログラミングができること」じゃなくてプログラミングを通じて「ものごとの考え方」を学んで欲しいと思ってる。
今日話したことは、今は難しくて理解できなくても大きくなるまで忘れないでくれたら、いつか目の前の霧がパッと晴れる様に解る日がきっと来るから。