「電子工作が趣味でプログラマーのおじさん」を描かせてみた。
すみませんが、そのイラストはすでに描きました。もう一度同じイラストを描くことはできません。私はまだ学習中なので、ご理解とご協力をお願いします🙏
ASAKICHIさんがYouTubeで公開されている、飛行日誌・入力簡易ツールを見つけました。
これはiphone用でAndriodには使えません。
ただし、今まで調べていたGASのスクリプトを組み込めば使えるのではと思いやってみました。
飛行日誌・入力簡易ツールの概要欄でスプレッドシートをコピーします。
スクリプトに次のコードを貼り付けます。
function doGet() {var template = HtmlService.createTemplateFromFile('Page');template.action = "addData";return template.evaluate();}function addData(latitude, longitude, timestamp,drone) {var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');// 緯度、経度から住所を取得// 住所を漢字に変換var geocoder = Maps.newGeocoder();var response = geocoder.reverseGeocode(latitude, longitude); // 緯度、経度から情報を取得var formatted_address = response.results[0].formatted_address;// いろいろな情報が得られるので、そのうちのインデクス0 の formatted_address の情報を取得var data = [timestamp,formatted_address,drone];// データに住所を追加sheet.appendRow(data);}
続けてAppScriptの画面でファイルを追加(HTML)しPageという名前にします。
以下のコードを貼り付けます。
<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1.0"><base target="_top"><style>body {font-family: Arial, sans-serif;margin: 0;padding: 0;}select {font-size: 16px;padding: 8px;width: 100%;margin-bottom: 16px;}button {font-size: 16px;padding: 8px;background-color: #4CAF50;color: white;border: none;border-radius: 4px;cursor: pointer;}button:hover {background-color: #3e8e41;}</style></head><body><select id="mySelect"><option value="機体名称1">機体名称1</option><option value="機体名称2">機体名称2</option><option value="機体名称3">機体名称3</option></select><button onclick="getLocation()">位置情報を取得</button><script>function getLocation() {if (navigator.geolocation) {navigator.geolocation.getCurrentPosition(showPosition);} else {alert("Geolocation is not supported by this browser.");}}function showPosition(position) {var selectedOption = document.getElementById("mySelect").value;google.script.run.addData(position.coords.latitude, position.coords.longitude, new Date().toLocaleString(), selectedOption);}</script></body></html>
デプロイボタンを押してウェブアプリとしてデプロイ(公開)します。
簡単には以上のような流れですけど、デプロイが曲者でかなり苦労しました。
詳細は次回アップしたいと思っています。
ドローンの運航日誌を自動作成するアプリをAIで作りたい。
から始まったマイプロジェクト!!
サクッとできると思ってたけどそんなに甘くはなかった。
何度もChetGPTに聞き直して、何とかサンプルになりそうなコードができました。
スマホのブラウザーからボタンを押して、その時の位置情報と時間をスプレッドシートに追記するGoogoleAppsScriptsのコードができました。
その過程は長くなったので履歴表示を次の動画にしました。
https://youtu.be/r8PADHtsgpQ
実際にどのようなコードを記述したか、次回更新します。
ドローンの運航日誌作成が必須になったので、スマホのブラウザーからボタンを押せば自動で運航日誌を作成するようにできないかと思いGAS(Google Apps Script)を勉強し始めたところです。
かなり手直しが必要ですがボタンで位置情報をスプレットシートに保存することはできそうです。
次はボタンを2つ用意して開始と終了を保存できるようにしたいと思います。
原因がわかりました、エアコンでした。「室温ウォッチ」という機能で室温が高温になると勝手に(いや設定をしていたのを忘れていただけなので勝手ではない)動作して電子機器を守ってくれてました。わかってて見ると納得のグラフですね。
program MUSIC ' 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ' R C C# D D# E F F# G G# A A# B C C# D const doremi as word[16]= ( 0,262,277,294,311,330,349,370,392,415,440,466,494,523,554,587) ' tempo=120 ' 0 1 2 3 4 5 6 7 8 9 ' 1 2. 2 4. 4 8. 8 16. 16 const onpu as word[9]= (2000,1500,1000,0750,0500,0375,0250,0188,0125) ' Declarations section sub procedure init_rtn GPIO = 0 CMCON = 000111 TRISIO = 000000 'ANSEL = 000000 Sound_Init(GPIO, 2) end sub main: dim eromdt as byte dim takapt as byte dim nagapt as byte dim takasa as word dim nagasa as word dim yasumi as word dim i as byte init_rtn while true i=0 'EPROM READ POINTER while < 127 'EPROM MAC ADDRESS 128 eromdt = EEPROM_Read(i) 'DATA READ FROM EPROM if eromdt = $FF then 'DATA VALUE FF is END of DATA i =128 'Exit Loop When set 128 else takapt = eromdt and $0f 'DATA low4bit is SOUND Pitch nagapt = eromdt >> 4 'DATA High4bit is SOUND Length if takapt = 0 then 'select case nagapt ' case 4 Delay_ms(500) ' case 2 ' delay_ms(1000) ' case 0 ' delay_ms(2000) 'end select else takasa = doremi[takapt]'Pitch Table nagasa = onpu[nagapt] Sound_Play(takasa,nagasa) Delay_ms(16) end if end if i=i+1 wend 'ENTRY SLEEP ' GPIO =0 OPTION_REG = 000000 INTCON = %10001000' NOP NOP asm sleep end asm NOP NOP 'RESUME SLEEP INTCON = 000000 wend end.
__CONFIG(CP_OFF & BOREN_OFF & MCLRE_OFF & PWRTE_OFF & WDTE_OFF & FOSC_INTRCIO); //Idoling current 0.06uA
void main(void){
GPIO=0;
for (i=0;i<2 nbsp="nbsp" p="p"> GPIO=0b00111111;