freetel Priori FT132AにRFO BASICを入れてπ(円周率)を計算してみました
なにか面白いアプリはないかとい思ってPlayストアを眺めていたら、昔懐かしいBASICインタプリタがありました。
BASIC! - Android Apps on Google Play
https://play.google.com/store/apps/details?id=com.rfo.basic
Learn RFO Basic - The Easiest Way To Create Android Apps
http://rfobasic.com/
いまさらBASICという気がしないでもありませんが、仕様を少し見てみると一寸興味を引かれる部分があります。
端末(スマホ)のGPSデータを取り込むことができるようです。
GPS関係のAndroidアプリは色々あるようですが、自分の希望に沿ったものはなかなかありません。
GPSデータを利用できるのであれば、飛行機に乗っているときに、ターゲット(日付変更線や赤道)に近づいたときに(通過5分前位に)アラームを鳴らして通過の瞬間を動画で撮影するときに役に立つようなプログラムを作ることができるかもしれません。
GPS Essentialsでも同じようなことができるようですが、機能が多すぎて使いこなせません。
サイズは541kということで、それ程大きくないので試しに入れてみることにしました。
インタプリタを入れただけでは何の役にも立たないので、昔デモ用によく使われていたπ(円周率)の計算をしてみることにしました。
πの計算には色々な種類があるようですが、なるべく簡単なものをということで、以下の記事を参考にして作ってみました。
円周率πの数値計算1 正多角形による近似
http://math-lab.main.jp/pi01.html
******************************
LET A=SQR(3)/6
LET B=1/3
FOR I=1 TO 10 STEP 1
LET A=(A+B)/2
LET B=SQR(A*B)
PRINT I,1/A,1/B
NEXT I
END
******************************
このプログラムは十進BASICということで、RFO BASICと互換性があるのかどうかよく判りませんが、とりあえず作って走らせてみました。
どうやらエラーも出ずに実行できたようです。
計算は一瞬で終わりましたが、3.141592までの精度しかありません。
オリジナルのプログラムの計算結果では、
10 3.14159292738508 >π> 3.14159251669214
となっており、はやり3.141592までの精度しかありませんので、似たような結果となりました。
ループの回数Iを10から30に変更したら、3.14159 26535 8979まで精度が上がりました。
しかし、ループの回数をこれ以上増やしても精度は高くならないようです。
十進BASICでは1000桁の実数の計算ができるようですが、RFO BASICでの高精度演算の方法がまだ判りません。
そのうち、勉強してみます。
オリジナルのプログラムでは計算が一瞬で終わってしまうので、あまり面白くありません。
いかにも計算しているという感じを出すためにプログラムを以下のように修正してみました。
【修正プログラム】
******************************
LET A=SQR(3)/6
LET B=1/3
FOR I=1 TO 30 STEP 1
LET A=(A+B)/2
LET B=SQR(A*B)
cls
PRINT I
c=1/a
d=1/b
print c,d
print c-d
print
tone 440,200
if c-d=0 then tone 880,200
for j=1 to 10000
next j
NEXT I
END
******************************
RFO BASICのコマンドは殆ど見ずに、昔かじったことがあるF-BASICを思い出しながら修正したので、変なところがあるかもしれません。
小文字の部分が追加・修正した箇所です。
追加・修正部分が小文字だったり、LETがないのは単なる手抜きです。
修正点は以下の通りです。
・計算過程が目に見えるように、1万回の遅延ループを入れました。
・数値の変化が判りやすいように、スクロール表示を固定表示に変更しました。
・音がないと一寸寂しいので、1回の演算ループごとに発振音(440Hz)を出しました。
・演算結果が収束したら違う発振音(880Hz)を出しました。
端末本体でもプログラムを入力できますが、操作性が良くないので、以下の手順でプログラムを作りました。
【PC側の操作】
(1)たたき台のプログラムをPC(CF-W4)のメモ帳(*****txt)で作成する。
(2)適当なファイル名を付け、拡張子をbasにして保存する。
(3)FT132AをUSBケーブルでPCに接続する。
(4)FT132Aを「USBストレージ」モードにする。
(5)FT132AのメモリがPCから見えるようになるので、作成したプログラムがBASフォーマット(*****.bas)であることを確認して「computer/removable-disk/rfo-basic /source」に転送する。
【FT132A側の操作】
(1)RFO BASIC(天体望遠鏡のアイコン-BASIC!)のアプリを開く。
(2)プログラム入力画面が開くので、メニューボタンをタップする。
(3)メニューの中の「Load」をタップする。
(4)BASIC! Load Fileの中から実行するファイル(*****.bas)を選ぶ。
(5)プログラムが表示されるので、メニューボタンをタップする。
(6)メニューの中の「Run」をタップするとプログラムが実行される。
たたき台のプログラムは、当方の場合は殆どエラーが出るので、虫取りが必要になります。
FT132A本体やPCでデバッグは可能ですが、一寸面倒なので、当方はBluetoothキーボード(ELECOM TK-FBP030)を利用しました。
殆どの操作がキーボードからできるので操作が楽ですが、当方が買った安い(\980)のキーボードは訳有り品だったようで、アルファベットと数字は問題ないのですが、記号の表記が実際の出力と一致しません。
たとえば「=」のキーを押すと「_ 」が表示され、「^」を押すと「=」が表示されます。
そういえば、何か注意書きが書いてあったような気がしますが、このことだったのかもしれません。
対応が判れば使えないことはないので、記号を書いたシールをキートップに貼って使っています。
【RFO BASICによるπの計算】
FT132Aの操作はBluetoothキーボードで行いました。
RFO BASICとAndroidの組み合わせでサーボの制御もできるようなので、そのうち試してみたいと思います。
Using RFO BASIC to Control Two Servos Via an EMGRobotics A2SCB_ML .
http://www.youtube.com/watch?v=SeiZBG2Quyw
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- Amazon EchoのウェイクワードにZiggyが追加されていました(2021.07.18)
- スマホ用Zoomの「安全運転モード」を解除(2021.07.07)
- Alexaの言葉が日英ちゃんぽん(2021.07.01)
- BluetoothキーボードでEcho Show 5の再生曲名を指定(2021.06.27)
「freetel Priori FT132A」カテゴリの記事
- スマホ(Priori FT132A)の検証ツールでワイドFM放送を受信(2015.12.12)
- Skymarkの機内Wi-Fiで830kbps(最大瞬間速度?)(2015.02.11)
- シンガポールで”どこでもテレビ(net-TV BOX)”を使ってみました(2015.02.01)
- Funan DigitaLife MallでSingTel "hi! SIM Card "を買いました(2015.01.23)
- NetオペがSoftbankでSimオペがNTT DOCOMO?(2014.12.16)
この記事へのコメントは終了しました。
コメント
はじめまして
私は、個人でBASIC!のファンサイトを
運営する者です。
FT132A・・・SIMフリーのスマホですね。
画面も3.5インチということでプログラミングもPCになるのも理解できます。
わたしは10インチまたは7インチの
タブレットでBASIC!を使うのでタブレットで
プログラミングするスタイルです。
BASIC!はとても便利ですね。
私は、たまにしか作りませんが楽しんで
使っています。
http://simplog.jp/top/8554306874
投稿: BASIC!友の会(@basictomonokai -twitter) | 2014年11月12日 (水) 11時46分
始めまして。Kです。
BASIC!友の会のHPは、BASIC!をインストールする前に拝見させて頂きました。
BASIC!に関する日本語サイトの情報が意外と少ないようなので助かりました。
始めたばかりなので、まだ手探り状態ですが、GPS情報を処理できるようなので試してみたいと思います。しばらくはこれで遊べそうです。
投稿: K | 2014年11月12日 (水) 21時43分
。Kさん
BASIC!友の会のHPをご覧いただき
ありがとうございます。
たまたまですがYOLPとBASIC!の
gps機能の連携の実験を私もしていました。
【YOLP】
http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/
たいした内容ではないのですが、
実験自体は成功しています。
あんまり、参考にはならないかも
しれませんが、simplogには記事を
掲載しようと思っています。
http://simplog.jp/top/8554306874
BASIC!で楽しく遊んでいきましょう☆
投稿: BASIC!友の会(@basictomonokai -twitter) | 2014年11月13日 (木) 09時50分
Kです。
情報をありがとうございます。
走行中の電車でgps.basを実験してみました。
座標データは取得できるのですが、速度表示が0のままです。
原因はよくわかりません。
もう少し勉強してみます。
投稿: K | 2014年11月15日 (土) 15時46分