virt_flyのブログ -33ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑画像ではChatGPTがつくったプログラムを少し改変して動かしています

ChatGPTならプログラミングが学べる

 

ChatGPTが書いたプログラムでLチカができたことを、前回の「ChatGPTにふれてみる(2)」で、お話しました。今度は、1個のRGB(フルカラー) LEDで色を変えて光らせるプログラムを、ChatGPTに書かせてみることにしました。

 

「光るアクリル板」に魅せられて、LEDを取り替えなくても色が変えられたならと思い、注文していたRGB(フルカラー) LEDがちょうど届いたところだったからです。

 

RGB(フルカラー) LEDは使ったことがなく、ネットで使い方を調べるつもりだったので、ChatGPTを知った今となってはこれを使わない手はありません。

 

↑動画に撮ると7色の変化がわかりにくいですが、LEDを見ていると少しはわかるのでは

 

いやー、勉強になりました。赤、青、緑の三原色から7つの色を作り出すプログラムの書き方や、あるいは、アノードコモンがよいと聞いて購入したRGB(フルカラー) LEDですが、これを光らせるにはnotを書き加えればよいなど、ネット検索していたら時間がかかっていただろうことが、ChatGPTだと一発でわかります。グッジョブ!

 

発色の間隔も、time.sleep()をいちいち書かなくても、RGB値を変えながら点灯する関数に数値を書き込むだけで済ませられることも学べました。電子工作やプログラミングの初心者の私には、ChatGPTはまことにありがたいツールです。ヤッタネ!

 

今回は、メモがわりにタイトルも代えて「ChatGPTでプログラミング(1)」としましたが、(2)、(3)があるかはまったく未定。何かもう少し複雑なプログラムに挑戦し、ChatGPTがうまくプログラムを書いてくれれば…。

 

↑はtGPTが回答 3個のLEDを順次点灯させるRaspberry Pi用Pythonプログラム

 

ChatGPTが書いたプログラムでLEDが点灯!

 

前回は、ChatGPTを試してみて、これではフェイク製造機じゃないかと思ったことを紹介しました。それならChatGPTのもう一つの特徴であるプログラミングは大丈夫かい、というのが今日の話題です。

 

さっそくChatGPTに、3個のLEDを順番に点灯させるRaspberry Pi用のプログラムを書かせてみましょう。

 

プログラミング言語にPythonを指定したその結果は、恐れ入りました。抵抗やLEDとの接続の仕方など丁寧な説明つきで、綺麗なプログラムが生成されていくではありませんか(冒頭の画像はその一部)。

 

回答にもとづき回路を組み、プログラムを実行したところ見事に点灯。ただし、ChatGPTへの指示が不十分だったため、LEDはそれぞれ1回点灯しただけでした。

 

↑点滅を繰り返すLED

 

LEDの点灯がループして点灯し続けるように、再度ChatGPTへ指示することにしました。それでわかったことですが、変な日本語だと構文がくずれたようなおかしなプログラムが生成されてしまいます。ChatGPTへの指示はわかりやすさで明瞭な文章にしないとなりません。

 

それと、同じ指示をだした場合でも、プログラムは同じでも説明文書は異なることもあります。プログラムは同じと言っても、互換性のあるGPIOピンは使用するピン番号が異なってくるのは往々にしてあることです。そして同じ指示でも、なんとLED点灯がループしなかった同じ指示でも、ループするプログラムを生成してくれることもあるということです。

 

3個のLEDを順次点灯させ続けるプログラムは、ご丁寧にも緑、赤、青のLEDを使うように書かれたものもありました。ここでは、一番シンプルなプログラムを次に掲載します。

 

                
import RPi.GPIO as GPIO
import time

# GPIOピンの番号
led_pins = [18, 23, 24]

# GPIOピンの設定
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pins, GPIO.OUT)

# 3つのLEDを順番に点灯させる
while True:
  for pin in led_pins:
    GPIO.output(pin, GPIO.HIGH) # LEDを点灯
    time.sleep(1)
    GPIO.output(pin, GPIO.LOW) # LEDを消灯

GPIO.cleanup()

 

初歩的なプログラムですから、どこからかChatGPTがコピーしてきたプログラムでも、著作権で問題になることはないでしょうが、複雑なことが実行できるプログラムだとどうなのでしょう。

 

さて、ChatGPTはどれくらい高度で複雑なプログラムが書けるのでしょう。指示を出す方の力量にもかかってくるような気がします。

 

プログラミング初心者なら、自分の手におえないプログラムをChatGPTが書いてくれるとありがたい、勉強にもなると期待しがちです。でも、ChatGPTがどれくらい長文のプログラムを書いてくれることやら。部分ごとにプログラムし一つにまとめる必要があるとなると、一定のプログラミング知識が必要でしょうし、間違えようのない指示をChatGPTに与えるのもなかなか大変そうです。

 

 

 

↑Introducing ChatGPTの画面

 

フェイク製造機!?

 

AIが絵を描いてくれる。しかもかなりハイレベルで。さらに小説までAIが書いてくれるようになって、なんでも応募作品が増えているんだとか。

 

あげくにAIが作成したものには、著作権は認めないなどというところにまで至っているそうですから、世間でも結構話題になっているようですね。

 

画像生成AIのMidjourney や対話型AIのChatGPTの名前を、しばしば聞くようになりました。

 

そんなにすごいのかいと、遅まきながら今回はChatGPTをさわってみることにしました。

 

■さっそくログインして質問

 

OpenAIのサイトに行き、Try ChatGPTをクリックするか、直接Introducing ChatGPTのページに行きTry ChatGPTをクリックするかして、ログインします(初めての時はアカウントの作成が必要です)。

 

冒頭の画像が、Introducing ChatGPTのページです。ブラウザはChromeがよさそうです。右上の「このページを翻訳」をクリックして日本語に変えておきます。

 

↑チャット開始画面 下部のボックスに質問を入力したところ

 

ログインできたら、ページ下部のボックスに早速質問を入力して、ChatGPTの開始です。

 

■回答はそれなりだが、平板であたりさわりないが第一印象

 

一応当ブログはFlightGearフライトシミュレーターがテーマなので、「FlightGear Flight simulatorとは?」

とさっそく質問してみました(画面ではFlightGear Flightsimulatuionとなっています)。次のように返事がありました。

 

↑FlightGearとは?との質問に対する回答画面

 

FlightGearは、オープンソースのフライトシミュレーターであり、無料で利用できます。

FlightGearは、航空機のモデリング、地形データ、天候条件など、現実の飛行に必要な要素を含む、非常にリアルなフライトシミュレーションを提供しています。


FlightGear は、 Windows 、 Mac 、 Linux などの多くのプラットフォームで動作し、複数の言語に対応しています。FlightGearには、標準で多数の航空機が含まれており、さらに多くのアドオン航空機が利用可能です。また、オンラインマルチプレイヤーゲームも可能で、他のプレイヤーと一緒に飛行することができます。

 

FlightGear は、 フライトシミュレーション愛好家、教育機関、航空機メーカーなど、さまざまな目的で利用されています。

 

文章は日本語としてあまり違和感なく自然なものになっています。内容は、FlightGearの愛好家の方にはおわかりいただけるように、オープンソースでクロスプラットフォームな特徴はおさえられており、ある程度中身がわかるものとはなっています。愛好家には、一部古い記述、どうかなと思える箇所がないわけではなく、例えばフライトモデルまではふれられていなかったり、魅力が伝わるにはいたらぬところは不満になるかも。

 

他にも、「人間はなぜ戦争を起こす」などの質問をしてみましたが、それなりの回答があるものの、並列的で平板、あたりさわりのないものというのが、ChatGPTの第一印象でした。

 

■ひょっとして適当に作り上げてはいないか?

 

ついで、日本の軍事力の世界ランキングについて質問して、少しばかり当惑することになりました。もっぱら2021年とデータが少し古いばかりでなく、実際の発表と順位が異なってるような…。中には、よくわからないランキングも含まれていて、一見正しそうな回答もひょっとして適当に作り上げられたフェイクかもと疑いがわきました。

 

確かに、あまり有名でなかったり、ローカルなものでは、しばしばまったく的外れな回答に出くわします。

 

■喫茶店を尋ねたら、実在しない店ばかり

 

驚愕する事態に出くわしたのは、なんとなく近所の喫茶店を尋ねていたときでした。てんで離れた地域の店を回答してくるので、地域を指定したにも関わらすスターバックスが含まれておらず、駅名とスターバックスを指定してやらないと出てこない、なんていい方。よくよく調べたら、回答に出てきた喫茶店はいずれも存在せず、住所も番地どころか町名すら存在しないのです。どうしてこんなことになるかわかりませんが、これではまさにフェイク製造器。

 

よく見れば、チャット開始画面に、制限事項として「誤った情報を生成することがある」と断り書きがされています。

 

得手不得手があるというよりは、集めてきた情報をただ繋いで文章にしただけで、それが正しいかどうかは、当たるも八卦、当たらぬも八卦の世界と見做したほうが良さそうです。もし使うなら、確認が必須ということ。ま、友達との会話代わりに、楽しむというのならよさそうです。「知らんけど」。

 

こうなると、ChatGPTのもう一つの特徴であるプログラミングしてくれるというのも、はなはだ怪しくなってきます。