伊藤ゼミのプログラミング課題(2)

ゼミの3年生に対する課題をウェブにも残しておきます。
自分の選んだプログラミング言語について、課題1?2を解くプログラムを作りなさい。
次回のゼミで、作成したプログラムについて説明しなさい。
※入力の方法や画面への表示方法は、前回課題の解答例を流用しなさい。

課題1

3個の数値を入力したら、その中から一番大きな数値を1つ画面に表示するプログラム
を作りなさい。 入力する3個の数値を変えても正しく動作しなければなりません。

課題2

1?9の数値を自由に何個でも入力していく。0を入力した時点で、それまで入力され
た数値を、入力された順序で画面に表示し、終了するプログラムを作りなさい。
※時間があれば以下の課題にも取り組むこと。

課題3

課題2の表示結果の後で、入力された数値の最大値、最小値、平均値を表示するよう改
良しなさい。

課題4

現時点の日付、時刻を取得し、その内容を以下の例のように表示するプログラムを作り
なさい。
例)2009/10/20 14:40の場合の出力
Nen=2009 Tsuki=10 Hi=20 Ji=14 Fun=40

伊藤ゼミのプログラミング課題(1)

ゼミの3年生に対する課題をウェブにも残しておきます。
自分の選んだプログラミング言語について、課題1?2を解くプログラムを作りなさい。
次回のゼミで、作成したプログラムについて説明しなさい。

課題1

1?20までの整数をランダムに10個画面に表示するプログラムを作りなさい。

課題2

3個の数値を順に入力したら、入力したのと逆の順で画面に表示するプログラムを作り
なさい。入力する3個の数値を変えても正しく動作しなければならない。
※入力の方法や画面への表示方法は自由でよい。
※時間があれば以下の課題にも取り組むこと。

課題3

1?20までの相異なる整数を、ランダムに10個画面に表示する。

課題4

1、2、3、4、5の数をランダムに並べ替えて表示する。

SerialPort2でのRCB-3制御

ScratchでKHR-1HVを制御できないか奮闘しています。単なるシリアル通信だとバカにしてかかったのですが、思うようにうまくいきません。
付属のソフトでは問題ないのですが、シリアル通信ソフトなどを利用して真似しても通信が再現できません。
ウェブで参考にしていたRubyの例ではうまくいくのでScratchでもOKだと思ったのですが…
近藤科学KHR-2HVをMac OSX Leopardから操作する
ところが上のページのサンプルを別のPCで動かしてみたら動作しませんでした。
どうやらRCB-3のタイミングが結構厳しいようです。
マイコンボードと通信 sizuのセローに乗ってどこにいこう!/ウェブリブログ
そこで今まで試していたサンプルの各所にDelayを埋め込んだところ、なんとか動作させることができました。
port := SerialPort2 new openPortNamed: '/dev/cu.usbserial-KOS1VRMH' baud: 115200.
port nextPut: 13.
Delay waitMSecs: 10.
a := port readByteArray.
port nextPut: 244.
port nextPut: 1.
port nextPut: 0.
port nextPut: 245.
Delay waitMSecs: 10.
b := port readByteArray.
Delay waitMSecs: 100.
port close.

上記はモーションの1番を実行させる例です。
とりあえず前進できてよかったのですが、機種によってDelayの値が変わりそうで怖いです。

OB,OG向け、学園祭展示発表のお知らせ

OB,OG各位
拝啓
秋晴れの候、皆様にはますますご健勝のこととお慶び申し上げます。
今年も山梨学院大学の樹徳祭で伊藤ゼミナールのイベントを催します。
今年度のイベントの趣旨は「お客さんに楽しんでプログラミング体験をして
いただく」です。小学生の教育用に開発されたプログラミング言語(Scratch)
とプログラミングして動くLEGO(WeDo)を使い、プログラミングの楽しさを知って
いただこうというイベントです。
OB,OGの方にも是非、イベントに参加して現在の私たちの成果をご
覧いただきご意見を賜われれば幸いです。
ご多忙とは存じますがご来場をお待ち申し上げます。
敬具
日時 10月31日、11月1日
場所 新12号館 西ラウンジ
平成21年度 学園祭責任者 奥村 一樹

MacPortsでの各種言語のインストールについて

ゼミの3年生課題のためにMacへいろんな言語をインストール中です。MacPortsを使えば簡単にインストールできました。学生さんでMac使いはいないので役に立たないでしょうが備忘録として。
[Lua]
インストール:sudo ports install lua
コンソールでのインタプリタ起動:lua
[JavaScript(SpiderMonkey)]
インストール:sudo ports install spidermonkey
コンソールでのインタプリタ起動:js
[Scala]
インストール:sudo ports install scala
コンソールでのインタプリタ起動:scala
[Ruby]
インストールの必要なし?
コンソールでのインタプリタ起動:irb
[Smalltalk/80(GNU Smalltalk)]
インストール:sudo ports install gst
コンソールでのインタプリタ起動:gst

ScratchでAIBOを動かす

Scratch v1.4に、Defart/AIBOを搭載したAIBO(ERS-7 or Later)を制御するコマンドを追加してみました。
阿部さんの作成されたネットワーク拡張をもとにして、Defart/AIBOのためのコードを追加したという単純なものです。
これでScratchからAIBOの動きをコントロールできるようになりました。
また、v1.4対応なのでWeDoと組み合わせることができます。傾きセンサーを動かしてAIBOを操縦するコードもちゃんとうごきました。
時間があれば他の機能も制御できるようにしたいと思っています。
チェンジファイル:DefartNetworkConnection.cs
Scratchソース:Scratch Source Code

XAMPP: MySQLとPHPのUTF-8化

XAMPPではじめる全部無料の自宅サーバーという書籍を購入したので、その中から抜粋。

MySQLのUTF-8化

C:xamppmysqlbinmy.cnfファイルの内容を以下のように変更する。
[mysqld]内の記述を追加・修正

character-set-server = utf8
collation-server=utf8_general_ci
init-connect = SET NAMES utf8

[mysqldump]内に追加

default-character-set = utf8

[mysql]内に追加

default-character-set = utf8

MySQLのUTF-8化

C:xamppapachebinphp.iniファイルの内容を以下のように変更
mbstringの直前のセミコロン(;)を全て削除する。
以下の記述に修正。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.encoding_translation = Off
magic_quotes_gpc = Off

XAMPPへのMODxインストール

備忘のためにXAMPPでMODxをインストールする手順を残しておきます。

ダウンロード

  • http://www.apachefriends.org/jp/xampp-windows.html (EXE版)
  • http://modxcms.com/download/ (ZIP版)

XAMPP起動まで

  1. XAMPPをインストールする。(途中の質問事項は全てEnterで良い。黒い画面はxで終了して良い)
  2. XAMPP control panelを起動する。
  3. apacheとmysqlのstartをクリックする。(ネット接続ダイアログが表示されたら「ブロック解除」をクリック)
  4. ブラウザでhttp://localhostを開いてXAMPPと表示されればOK。

MySQLの設定

  1. XAMPP control panelのmysqlのadminをクリックする。(ブラウザでphpmyadminが起動)
  2. 「新規データベースを作成する」の下に「modx」と入力し、照合順序をutf8_unicode_ciを選んで作成をクリックする。
  3. MySQL接続の照合順序もutf8_unicode_ciとする。
  4. 画面上部の「特権」タブをクリックして、「新しいユーザを追加する」をクリックする。
  5. ユーザ名をmodx、ホストを空欄、パスワードをmodxとし、グローバル特権で「全てチェックする」をクリックして、画面下部の「実行する」をクリックする。(ユーザ名/パスワードは適宜変更)

modXのインストール

  1. modxのパッケージを解凍し、フォルダ名をmodxに変更する。(modxフォルダの直下にindex.phpがあるようにすること)
  2. modxフォルダを、C:XAMPPhtdocsフォルダの下にコピーする。
  3. ブラウザでhttp://localhost/modx/を開く。(install Now?と表示される)
  4. install Now?をクリックして、Choose languageでjapaneseを選び、NEXTをクリック。
  5. 「進む」をクリック。
  6. データベースホスト名をlocalhost、ログイン名をmodx、パスワードをmodxにして、「ここをクリックすると正常に接続できるかどうかを確認できます」をクリック。
  7. 照合順序をutf8_unicode_ciに変更して「ここをクリックして・・・」をクリック。
  8. 管理アカウントのemailとパスワードに適当なものを入力、管理画面の言語をjapanese-utf8に変更して、「進む」をクリック。
  9. インストールオプションの選択で、画面下部の「インストール」をクリック。
  10. 画面下部の「ライセンスが規定する・・・」をチェックして、「インストール」をクリック。
  11. 画面下部の「インストール終了」をクリックする。

modxの確認

  1. 管理画面http://localhost/modx/managerで、ユーザー名adminとパスワードを入力してログインできればOK。

RM-board

iXsリサーチから届いたRM-boardの実験中です。
いろいろ試したことを忘れないように記録していきます。
1.Macとの接続
近藤科学のSerial USB AdapterをそのままMacで使うことができないようなので、とりあえずVirtual Box上のWindows XPにドライバを入れて、そちらで接続することにしました。
USBアダプタをさしたところで、Virtual BoxでUSBを認識させるようにして、付属CDのドライバを組み込みました。
アダプタのシリアル側はCON1に接続しました。外側がGNDです。ボードのピン配置図がなくて困りました。
(20100112追記)使用したケーブルはストレートケーブルです。
2.ハイパーターミナルの設定
ハイパーターミナルを起動して、以下の設定でポートをオープンしました。
ビット/秒:115200、データビット:8、パリティ:なし、ストップビット:1、フロー制御:なし
(20100112追記)シリアルポート名はデバイスマネージャで事前に確認しておきます。
3.スイッチング電源の接続
同時に購入したスイッチング電源とRM-boardを接続して電源入れたら何も起こりませんでした。(LEDも点灯せず)すぐに電源を切って調べてみたら、スイッチング電源に接続されていたケーブルのピン接続が間違っていました。(怖い怖い)
Pin1にGNDを、Pin2にVCCを接続して再度電源を投入したら無事に起動し、ハイパーターミナルにブートメッセージが表示され、ログインすることもできました。
4.IPアドレスの設定
RM-board取扱説明書Ver0.9には、IPアドレスは固定されている風に書かれていたのですが、RM-board立ち上げマニュアルを参照するとDHCPと書かれていました。結局後者が正解で、ハブに接続したところきちんとIPが設定されました。
ただ、pingは通らないのと、初期状態でtelnetしてもrootログインが許可されていないのでログインできません。
コンソールの方でユーザを増やしてtelnetログインすることはできました。(Flashに書き込んでいないので電源オフにしたら設定が消えてしまいますが)
(20100113追記)ユーザーを追加せずともguestにパスワードなしでログインした後、suでrootになることができました。