Skip to content

Commit 2e0f22d

Browse files
committed
add other ex
1 parent 745ee78 commit 2e0f22d

File tree

8 files changed

+254
-67
lines changed

8 files changed

+254
-67
lines changed

exercises/fire_alarm/problem.ja.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
__温度が50°Cを超えると音がなる火災報知器を作りましょう__
2+
3+
* TMP36温度センサをA0pinに接続しましょう
4+
* ブザーを9pinに接続しましょう
5+
* LEDを13pinに接続しましょう
6+
* ボタンを5pinに接続しましょう
7+
* 温度が50°C 以上になったらブザーの音がなり、LEDが点滅します
8+
* 温度が50°C 以下に変化したらブザーとLEDがオフになります
9+
* また、ボタンを押すとブザーとLEDがオフになり、温度が50°C 以下になるまでは再びつくことはないようにしましょう
10+
11+
## 回路図
12+
13+
```
14+
LED 330
15+
Pin 13 o-------->|---------/\/\/--------
16+
|
17+
Pin 5 o---------------------- |
18+
| |
19+
10k | |
20+
+5 o----.--------/\/\/---. |
21+
| | |
22+
| | |
23+
| .--|--|--. |
24+
| | | | | |
25+
| Button --+-| | | |
26+
| | | | | |
27+
| '--|--|--' |
28+
| | |
29+
| ----------.---o GND
30+
__ |
31+
| \ |
32+
A0 o---| ) TMP36 |
33+
|__ / |
34+
| |
35+
---------------------------.
36+
|
37+
Piezo |
38+
_ |
39+
|| || |
40+
Pin 9 o-----------|| ||---------------
41+
||_||
42+
```
43+
44+
## ドキュメント
45+
46+
- LED - https://github.com/rwaldron/johnny-five/wiki/Led
47+
- Piezo - https://github.com/rwaldron/johnny-five/blob/master/docs/piezo.md
48+
- TMP36 - https://github.com/rwaldron/johnny-five/blob/master/docs/temperature-tmp36.md
49+
- Button - https://github.com/rwaldron/johnny-five/wiki/Button#usage
50+
51+
---

exercises/light_switch/problem.ja.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
__スイッチを押すとLEDのon/offが切り替わるプログラムを書きましょう__
2+
3+
* ボタンを5pinに、LEDを9pinに接続しましょう
4+
* `Button`クラスと`press`イベントを使い、LEDのon/offを切り替えましょう
5+
6+
## 回路図
7+
8+
```
9+
LED 330
10+
Pin 9 o--->|-------/\/\/-----
11+
|
12+
Pin 5 o------------ |
13+
| |
14+
10k | |
15+
+5 o---/\/\/---. |
16+
| |
17+
| |
18+
.--|--|--. |
19+
| | | | |
20+
Button --+-| | | |
21+
| | | | |
22+
'--|--|--' |
23+
| |
24+
----------.---o GND
25+
```
26+
27+
## コンポーネント
28+
29+
- Button - http://node-ardx.org/electronics-primer#pushbutton
30+
31+
> 押されている状態のときに回路がつながります。
32+
33+
## ドキュメント
34+
35+
- Button - https://github.com/rwaldron/johnny-five/wiki/Button#usage
36+
- LED - https://github.com/rwaldron/johnny-five/wiki/Led#api
37+
38+
---

exercises/ping_bell/problem.ja.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
__メッセージを受信すると音が鳴るUDPサーバーを作りましょう__
2+
3+
* ブザーを8pinに接続します
4+
* `dgram`というNodeモジュールを使い、 **udp4** ソケットを作ります
5+
* **1337** ポートでメッセージを待ち受けるサーバーにしましょう
6+
* メッセージを受信したらブザーを鳴らしましょう
7+
8+
## 回路図
9+
10+
```
11+
Piezo
12+
_
13+
|| ||
14+
Pin 8 o---|| ||---o GND
15+
||_||
16+
```
17+
18+
## ドキュメント
19+
20+
- http://nodejs.org/api/dgram.html
21+
- https://github.com/rwaldron/johnny-five/blob/master/docs/piezo.md
22+
23+
---
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
__温度をあなたの身近なサービスに使おう__
2+
3+
最後に測ったTMP36温度センサの温度の値が返ってくるrpcサーバーを`dnode`を使って作りましょう。
4+
5+
* 温度センサをA0pinに接続しましょう
6+
* `dnode`をインストールしましょう。 -> `npm install dnode`
7+
* 1337ポートで待ち受けるdnodeサーバーを立ち上げましょう
8+
* rpcエンドポイントには`getTemperature`という関数を呼び出せるようにします
9+
* `getTemperature`**celsius** の値がコールバックで取得できるようにしましょう
10+
11+
## 回路図
12+
13+
```
14+
+5 o-----.
15+
|
16+
|
17+
__
18+
| \
19+
A0 o---| ) TMP36
20+
|__ /
21+
|
22+
|
23+
GND o-----'
24+
```
25+
26+
## コンポーネント
27+
28+
- TMP36 - http://node-ardx.org/electronics-primer#tempsensor
29+
30+
> Produces a variable resistance dependant on the ambient temperature.
31+
32+
## ヒント
33+
34+
- Remember, you're always working with voltages on pins
35+
- The value from a sensor is a representation of the voltage on that pin
36+
- You'll need to convert that value into a useful temperature reading...
37+
- To create an enpoint, pass dnode an object with your endpoint as a method
38+
- Your endpoint should take a callback and pass the value to it
39+
40+
## ドキュメント
41+
42+
- https://github.com/rwaldron/johnny-five/blob/master/docs/temperature-tmp36.md
43+
- dnode - https://github.com/substack/dnode
44+
45+
---

exercises/robot_arm/problem.ja.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
__遠隔制御できるロボットアームを作りましょう__
2+
3+
回転式ポテンショメータを使いサーボの位置をコントロールします。
4+
5+
* ポテンショメータをA2pinに接続します
6+
* 9pinにサーボを接続します
7+
* ポテンショメータを回転させるとサーボが回転します
8+
9+
## 回路図
10+
11+
```
12+
Servo
13+
.---.
14+
| | |
15+
-===+===-
16+
| | |
17+
| |
18+
'---'
19+
| | |
20+
| | |
21+
| | ------------------o Pin 9
22+
| |
23+
| ----------------.---o +5
24+
| |
25+
| Potentiometer |
26+
GND o---.------/\/\/------.
27+
^
28+
|
29+
|
30+
A2 o--------------
31+
32+
```
33+
34+
## コンポーネント
35+
36+
- Potentiometer - http://node-ardx.org/electronics-primer#pot
37+
38+
> Produces a variable resistance dependant on the angular position of the shaft.
39+
40+
## ドキュメント
41+
42+
- Sensor - https://github.com/rwaldron/johnny-five/wiki/Sensor
43+
- Fn - https://github.com/rwaldron/johnny-five/blob/master/lib/fn.js
44+
45+
## ヒント
46+
47+
- A potentiometer is another use case for the Sensor object...
48+
- A pot produces input values between 0 and 1023.
49+
- A servo can typically be moved between 0 and 179 degrees.
50+
- `five.Fn.map` can map the pot values (0 - 1023) to servo angles (0 - 179).
51+
52+
---

exercises/spin_motor_spin/problem.ja.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
9pinにモーターを接続してスピンさせましょう!
1+
__9pinにモーターを接続してスピンさせましょう!__
22

33
* 200mphでモーターを回転させます
44
* `board.wait`を使い2秒回転後に停止させましょう

exercises/street_lamp/problem.ja.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
__暗くなると点灯する街灯を作りましょう__
2+
3+
* 照度センサとLEDを使いましょう
4+
* 照度センサをA0に、LEDを9pinに接続しましょう
5+
* 照度センサの値が600以上のときにLEDが点くようにしましょう
6+
7+
## 回路図
8+
9+
```
10+
PhotoR 10K
11+
+5 o---/\/\/--.--/\/\/--.--o GND
12+
| |
13+
Pin A0 o----------- |
14+
|
15+
LED 330 |
16+
Pin 9 o--->|-----/\/\/------
17+
```
18+
19+
## コンポーネント
20+
21+
- Photoresistor - http://node-ardx.org/electronics-primer#photoresistor
22+
23+
> Produces a variable resistance dependant on the amount of incident light.
24+
25+
## ドキュメント
26+
27+
- Sensor - https://github.com/rwaldron/johnny-five/wiki/Sensor
28+
29+
## ヒント
30+
31+
`johnny-five` has a generic Sensor object for handling various analog inputs.
32+
It fires a data event with the current reading of the sensor.
33+
The sensor value is available to the callback as `this.value`
34+
35+
---

i18n/ja.json

Lines changed: 9 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -4,75 +4,18 @@
44
"Blink Blink": "Lチカ",
55
"Servo Wave": "サーボウェーブ",
66
"Spin Motor Spin": "くるくるモーター回転",
7-
"MY FIRST ASYNC I/O!": "初めての非同期I/O!",
8-
"FILTERED LS": "LSのフィルター",
9-
"MAKE IT MODULAR": "モジュラーにしましょう",
10-
"HTTP CLIENT": "HTTP クライアント",
11-
"HTTP COLLECT": "HTTP 集める",
12-
"JUGGLING ASYNC": "ASYNCジャグリング",
13-
"TIME SERVER": "タイムサーバ",
14-
"HTTP FILE SERVER": "HTTP ファイルサーバ",
15-
"HTTP UPPERCASERER": "HTTP アッパーケース",
16-
"HTTP JSON API SERVER": "HTTP JSON API サーバ"
7+
"Light Switch": "ライトスイッチ",
8+
"Street Lamp": "ストリートランプ",
9+
"Ping Bell": "ピング ベル",
10+
"Robot Arm": "ロボットアーム",
11+
"Remote Temperature": "遠隔地の温度",
12+
"Fire Alarm": "火災報知器"
1713
},
1814
"common": {
1915
"exercise": {
20-
"pass": {
21-
"sync": "同期(synchronous)メソッドが用いられています: {{{method}}}",
22-
"async": "非同期(asynchronous)メソッドが用いられています: {{{method}}}"
23-
},
24-
"fail": {
25-
"sync": "同期(synchronous)メソッドが用いられています: {{{method}}}",
26-
"async": "非同期(asynchronous)メソッドが用いられています: {{{method}}}",
27-
"unused": "`fs`モジュールから非同期(asynchronous)メソッドが用いられています",
28-
"unexpected_error": "HTTPサーバから予期せぬエラーが返されました: {{{message}}}"
29-
}
16+
"pass": {},
17+
"fail": {}
3018
}
3119
},
32-
"exercises": {
33-
"MAKE IT MODULAR": {
34-
"fail": {
35-
"missing_module": "追加されたモジュールファイルが用いられていません。この演習課題を行うためには、require() が必要です",
36-
"loadError": "モジュールファイル [{{path}}] 読み込み中にエラーが発生しました: {{{message}}}",
37-
"mod": {
38-
"_base": "あなたが追加したモジュールファイル [{{path}}] {{{message}}}",
39-
"no_export": "{{{method}}} をエクスポートしていません。 `module.exports = function () {}` の形式を用いてください。",
40-
"singleFunction": "single function",
41-
"arguments": "{{{three}}}より少ない引数を受け取る関数をエキスポートしています。ディレクトリ、フィルター、そして{{{callback}}}を受け付けなければいけません。",
42-
"arguments_three": "三つ",
43-
"arguments_callback": "コールバック",
44-
"missing_callback": "fs.readdir() 内でのエラー発生後、コールバック引数を呼んでいません。",
45-
"missing_error": "`fs.readdir()` から受けとったエラーを伝えていないようです。\n あなたの書いたコールバックの中の `fs.readdir()` 呼び出しについて、次の Node.js の慣用的なパターンを用いるようにしてください:\n\tif (err)\n\t return callback(err)",
46-
"callback_arguments": "コールバック関数に2つの引数を返却していません (`null` とファイル名の配列を期待していました)",
47-
"array_wrong_size": "コールバックの2つめの引数に、正しい要素の数を格納した配列が返却されませんでした",
48-
"dotExt": "\".ext\" ではなく \"ext\" にマッチさせているかもしれません",
49-
"array_comparison": "コールバックの2つめの引数に正しいファイルのリストを返却していません",
50-
"missing_array_argument": "コールバックの2つめの引数に配列オブジェクトを返却していません",
51-
"callback_error": "コールバックでエラーが返却されました:\n\t{{{error}}}",
52-
"timeout": "コールバック引数を呼びませんでした",
53-
"unexpected": "エラーがthrowされました:\n\t{{{error}}}"
54-
}
55-
},
56-
"pass": {
57-
"singleFunction": "追加されたモジュールファイルは、ひとつの関数をエキスポートします。",
58-
"arguments": "追加されたモジュールファイルは、 {{{count}}} 個の引数を受け取る関数をエキスポートします。",
59-
"error": "追加されたモジュールファイルは、エラーを適切に処理します。",
60-
"callback": "追加されたモジュールファイルは、コールバック引数を処理します。",
61-
"callback_arguments": "追加されたモジュールファイルは、コールバックに2つの引数を返却しました。",
62-
"array_argument": "追加されたモジュールファイルは、コールバックの2つめの引数として正しい引数の数を返却しました。",
63-
"array_size": "追加されたモジュールファイルは、コールバックの2つめの引数として正しい引数の数を返却しました。",
64-
"final": "追加されたモジュールファイルは、コールバックの2つめの引数として正しいファイルの一覧を返却しました。"
65-
}
66-
},
67-
"TIME SERVER": {
68-
"fail": {
69-
"connection": "localhost:{{port}}への接続中にエラーが発生しました: {{{message}}}"
70-
}
71-
},
72-
"HTTP FILE SERVER": {
73-
"fail": {
74-
"no_createReadStream": "fs.createReadStream()ではない fs メソッドが用いられています : {{{method}}}"
75-
}
76-
}
77-
}
20+
"exercises": {}
7821
}

0 commit comments

Comments
 (0)