投稿者「admin」のアーカイブ

C exercises (17-4) Number

5月1日課題(数値型の初期化と表示)

https://classroom.google.com/

課題

  1. P11のプログラムを入力、コンパイル、実行する。
  2. 自分のデータを差し替えて、コンパイル、実行する。

image

  • 年齢、身長、体重を 表示するプログラムbio.cを作成
  • 保存場所は Documents¥C とする
  • cmdを開く
  • cd Documents¥C  —- パス変更
  • bcc32 bio.c  ————-コンパイル
  • bio ——————–実行する

image

Mobile Computing (8) TinyDB

第8章 データベース **

(TinyDB)

(Chapter 7. Android, Where’s My Car?’)
ANDROID 、私の車はどこですか

アプリの内容はロケーションセンサ(LocationSensor)でケータイの位置を記憶(TinyDB)し、別の場所に移動した後に記憶した場所がどの方向にあるかを示すものです。なお、ロケーションセンサはエミュレータでは動作しません。動作の確認はAndroidケータイで行ってください。

image

2017-06-14 14.14.21

データベース

TinyDB : アプリを終了させても残るデ-タを持つことができる部品。デ-タはキ-とバリュ-の対で記憶される.

デザイン

デザイン画面

image

コンポーネントリストの後半

image

部品の一覧(プロパティ名も変更してください)


















グル-プ 部品名 Component上の部品名 プロパティ名 プロパティ値
Screen Screen1 Title 私の車はどこですか?
Basic Label CurrentHeaderLabel FontBold ON
Text あなたの現在位置
Screen Arrangement HorizontalArrangement HorizontalArrangement1
Screen Arrangement HorizontalArrangement HorizontalArrangement2
Basic Button RememberButton Text 現在位置を記憶
Enabled OFF
Basic Label RememberedHeaderLabel FontBold ON
Text 記憶した位置
Screen Arrangement HorizontalArrangement HorizontalArrangement3
Screen Arrangement HorizontalArrangement HorizontalArrangement4
Basic Button DirectionsButton Text 現在位置から記憶した位置の方向を表示
Enabled OFF
Sensors LocationSensor LocationSensor1
Basic TinyDB TinyDB1
Other Staff ActivityStarter ActivityStarter1 Action android.intent.action.VIEW
ActivityClass com.google.android.maps.MapsActivity
ActivityPackage com.google.android.apps.maps
HorizontalArrangement1の中
Basic Label CurrentAddressLabel Text Address:
Basic Label CurrentAddressDataLabel Text 値は空にしておく
HorizontalArrangement2の中
Basic Label GPSLabel Text GPS:
Basic Label CurrentLatLabel Text 0.0
Basic Label CommaLabel Text ,(カンマ)
Basic Label CurrentLongLabel Text 0.0
HorizontalArrangement3の中
Basic Label RememberedAddressLabel Text Address:
Basic Label RememberedAddressDataLabel Text 空にする
HorizontalArrangement4の中
Basic Label RememberedGPSLabel Text GPS:
Basic Label RememberedLatLabel Text 0.0
Basic Label Comma2Label Text ,(カンマ)
Basic Label RememberedLongLabel Text 0.0

ブロックエディタ

このアプリでは以下の4つのイベントを使用します。

  1. 位置情報が更新されたら現在位置の表示を更新
  2. 「RememberButton」をクリックしたら現在位置を記憶
  3. 「DirectionsButton」をクリックしたら現在位置から記憶した位置の方向を表示
  4. アプリ起動時に現在位置を記憶している場合復元し、画面に表示

必要なイベントが分かり、このアプリがどのように動くかの大まかなイメージができたと思います。以下にイベントごとのブロックを組み立てた完成図と使用する部品を表に示しますので、それに倣って組み立てましょう。

【1】現在位置更新時のイベント

位置情報更新時のイベントでは、現在位置を表示するラベルに値を反映し、現在の位置を記憶するボタンを使用可能にします。以下の図5の完成図のように表にある部品を組み立ててください。

image

Screenshot_2017-06-14-15-51-36

【2】RememberButtonがクリックされたときのイベント

RememberButtonがクリックされたときのイベントでは、記憶する位置情報を表示するためのラベルに現在の位置情報反映し、TinyDB1に同じ内容を記録します。また、位置を記憶したら方向を表示するボタンを使用可能にします。

では、先ほどと同じように部品を組み立ててください。

image

Screenshot_2017-06-14-15-52-18

【3】DirectionsButtonがクリックされたときのイベント

DIrectionsButtonがクリックされたときのイベントでは、現在の位置情報と記憶した位置情報を使って方向を表示するためのGoogleマップ用のリクエストURIを組み立ててActivityStarterに渡し、別のアプリを起動します。このイベントも先ほどと同じように例に倣って部品を組み立ててください。

image

【4】アプリ起動時のイベント

アプリ起動時のイベントでは、TinyDB1に位置を保存していれば画面上の記憶した位置情報を表示するラベルに復元します。例によって、図と一覧表を見て部品を組み立ててください。

これでアプリは完成です。最後に、実際に動かしてみましょう。

image

センサアプリを実機でテストするには

今回使ったロケーションセンサはエミュレータでは動かないのでAndroid端末の実機で動かします。また、ケーブルを抜いても動かすために今までと違う手順でAndroid端末の実機にインストールします。

ブロックエディタでAndroid端末に接続し、一度アプリを起動します。その後、デザイナ画面の右上にある[Package for Phone]の[Download to Connected Phone]を選ぶと、Android端末の実機にダウンロードされます。

後は普通のアプリのように起動すれば、このように起動します。お好きな場所で「現在位置を記憶する」ボタンを押し、少し移動して「現在位置から記憶した位置の方向を表示」を押しすと、別のアクティビティ(Activity)が開き、現在位置から記憶した位置の方向を表示してくれます。

このとき、ケータイの位置情報を取得する機能をONにしておくことを忘れないでください。位置情報のONの仕方はAndroid端末の[設定]画面の[現在位置とセキュリティ]内の[GPS機能を使用]のチェックボックスを[ON]にすればOKです。

Screenshot_2017-06-14-16-02-28

Mobile Computing (7) Tokyo Map Tour

今回はTokyo Map Tourというアプリを作ります。

予め登録してある3つの場所をセレクトボタンから選択すると、その場所のマップやストリートビューが表示される、というものです。

Androidでは、あるアプリから別のアプリを起動して、それに処理を渡したり、別のアプリでの実行結果を受け取ったりすることが比較的簡単にできるのです。
Tokyo Map Tourでは、Android端末に用意されているGoogle Mapのアプリを利用します。

1.Map Tour

東京の観光地の地図を表示するアプリです。

image


[Choose Destination]のボタンを押すと、東京の観光地のリストが表示されます。

image

  • Tokyo Tower (東京タワー)
  • Imperial Palace(「皇居」二重橋)
  • Sensoji Temple(浅草寺)

リストの中から、行きたい場所を選択すると、

image

地図が表示されます。

では、チュートリアルに従って、作ってみます。

Designer

まずは、「Designer」ですね。

image

使用するコンポーネントは、Image、ListPicker、ActiveStarterです。

Table 6-1. Components for the Paris Map Tour

部品 Palette 名前 用途
Image User Interface Image1 東京画像
Label User Interface Label1 Androidで東京発見を表示
ListPicker User Interface ListPicker1 目的地リスト
ActivityStarter Connectivity ActivityStarter1 地図アプリを開く

Imageに、最初の画面で表示する地図の画像を設定します。

https://maps.googleapis.com/maps/api/staticmap?center=35.6585805,%20139.7432442%20&zoom=15&size=300×300&maptype=roadmap&markers=color:blue%7Clabel:T%7C35.6585805,%20139.7432442

ListPickerは、テキストデータのリストから一つのデータを選択するためのコンポーネントです。
観光地のリストを入れておくためのものです。
ActiveStarterは、アプリ内から別のアプリを起動するためのコンポーネントです。
ここでは、Google Mapを起動するように設定しています。

Table 6-2. ActivityStarter properties for launching Google Maps

属性
Action android.intent.action.VIEW
ActivityClass com.google.android.maps.MapsActivity
ActivityPackage com.google.android.apps.maps

Blocks Editor

続いて、「Blocks Editor」

destinationsというリストを用意して、観光地の名称を入れておきます。

Figure 6-2. Creating a list is easy in App Inventor
Screen1.Initializeは、スクリーンが初期化されるときに呼ばれるブロックでしたね。

Figure 6-3. Put anything you want to happen when the app starts in a Screen1.Initialize event handler
ListPickerの要素として、destinationsリストを設定します。
そして、ListPickerが押されたときの処理。
geo:0,0?q= の文字列の後に、選択された観光地の名称が連結されます。
別のアプリ(Google Map)を起動したとき、この文字列が渡されます。

Figure 6-4. Setting the DataURI to launch the selected map

「Blocks Editor」はこれだけです。

image

検索して、地図が表示するのは、Google Mapの処理です。
q= の後に、検索したい文字列をくっつけていたのですね。

バーチャルツアーに機能拡張

Figure 6-5. The list of maps for your virtual tour

Table 6-6. Virtual Tour URL’s for Google Maps

For example, you can show the Eiffel Tower map using only the GPS coordinates found in the long URL in Table 6-6 and the Maps geo: protocol:

geo:48.857942,2.294748?t=h&z=19

Figure 6-6. Choosing a list item based on the user’s selection

所要時間:20分

2.Map Tour Specific(Tokyo Map Tour パート2)

今度は、もう少し、凝ったGoogle Mapの使い方です。

リストから、行きたい場所を選択するまでは同じですが、

GPS を利用して、現在地を表示する機能を追加する。

Mobile Computing (6) Ladybug Chase

6章 センサー(1) 加速度センサー

(chapter 5. Ladybug Chase)

てんとう虫の冒険

スマホの傾きでてんとう虫をコントロール。

てんとう虫は、アブラ虫を食べて、エネルギーを蓄え。カエルに食べられたらおしまい。

コンポーネント パレット 命名 用途
Canvas Drawing and Amination FieldCanvas 運動場
ImageSprite Drawing and Amination Ladybug てんとう虫
OrientationSensor Sensor OrientationSensor1 スマホの傾きでてんとう虫をコントロール
Clock User Interface Clock1 向き変更
ImageSprite Drawing and Amination Aphid アブラ虫(餌)
ImageSprite Drawing and Amination Frog カエル(敵)
Canvas Drawing and Amination EnergyCanvas てんとう虫のエネルギー
Button User Interface RestartButton 再スタート
Sound Media Sound1 食べられた

デザイナー画面

まずは、新しいプロジェクトを作りましょう。名前は、「Ladybug」とします。

ブロックエディタ

てんとう虫

  • 運動
  • エネジー
  • 餓死
  • 再生

image

アブラ虫

  • 食べられ
  • 再生

image

再スタート

カエル

  • 運動
  • 食べる

image

リソース

OrientationSensorがないの対策

OrientationSensorがない場合、AccelerometerSensorで代用可能。下記のコードを変えてください。
image