The Fool In The Valleyの雑記帳

-- 好奇心いっぱいのおじいちゃんが綴るよしなし事 --

コンピュータ

Rubik's Cube SolverをPythonで動かす その0

Facebookが「思い出」として過去のその日に投稿した記事を日々知らせてきますが、最近それらの中に、2年前にMindstorms EV3で作ったRubik’s Cube Solverが完成したことを書いた記事がありました。そのRubik’s Cube Solverを作った頃はまだこのブログを持って…

pyplotで3Dグラフを描く

pyplotで3Dグラフを描くためのサンプル・コード from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np def func1(x): return x[0]**2 + x[1]**2 x0 = np.arange(-3.0, 3.0, 0.1) x1 = np.arange(-3.0, 3.0, 0.1) X0…

水匠

最近藤井二冠の活躍もあって「観る将」が増えているといわれます。自分で指すことはしないけど、観戦するのを楽しむ「観る将棋ファン」のことです。私自身、これまで自分で指すという趣味は持っていませんでしたが、最近はABEMAの無料配信でタイトル戦を朝の…

Snapdragon

NHK-BSで録画していた名探偵ポアロ63話の「ハロウィーン・パーティー」を観たのですが、その中で子供たちがハロウィーンの夜にスナップドラゴンという遊びをしていました。 スナップドラゴンに興じる子供たち 焔が立ち上る中から何かを掴みだそうとする その…

Stella Image 9とftsファイル

現役の時はICTがらみの仕事をしていたので、地域のシニアのサークル内でもその領域のことでいろいろと質問を受けることがある。今週は、星の写真撮影を楽しんでいるというメンバーから質問を受けた。なんでも赤道儀を付けたカメラで撮影した複数の写真を重ね…

VS Codeでソースコードを印刷する

VS Codeでソースコードを印刷する方法についての備忘録 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー VS Codeでは、デフォールトでは印刷機能は用意されておらず、通常のWindowsアプリにようにファイルの下のメニューを捜しても、以下のよ…

はてなブログに数式を書く

はてなブログに数式を書くには、Markdown編集を使ってLaTeXのコードを書けばよいのだが、慣れないと手こずることがある。しかし、便利なソフトウェアやツールが公開されていて、それらを使わせてもらうと戸惑うことなく簡単に目的を果たすことができて大変助…

EV3でハノイの塔を その8

実際のパズルを解くためのプログラムの最後のステップはグリッパーで円盤を動かしパズルを解く処理です。 すでに、「EV3でハノイの塔を その4」において、解法のアルゴリズムを下記の疑似的なpythonの関数solve(n, sc, dc)で記述しましたが、その中のmoveTa…

EV3でハノイの塔を その7

今回は、「EV3でハノイの塔を その6」で”パズルを解く具体的な処理”の2)として挙げた、X軸、Y軸、Z軸の原点の設定について説明します。それらの設定は自動的に行うようにしたいのですが、Mindstormsの部品で実現するとなると制約があり難しいところがあり…

EV3でIRリモコンをつかう

Infrared Receiver SensorはHiTechnic社からNXT用として提供されているもので、これを使うとLEGOのIR Remote Controlからのコマンドを受信することができます。 このデバイスをEV3のセンサとしてPythonで使用する方法について以下に記します。 EV3を起動した…

Chromebook

我が家にChromebookがやってきました。妻のノートPCが使いづらくなってきたのでそのリプレイスとしてネットで購入しました。 ずっと前から興味はあって、そのノートPCをリプレイスするときはChromebookにしようと思っていたので、やっと触れるようになったと…

DVDドライブのリージョン・コード

スペイン製のDVDがあるのだが、これを日本製のDVD/BDプレーヤで観ようとすると、こう冷たく言い放たれる。 以前にもこの問題に行き当たったことがある。ヨーロッパは日本と同じリージョン・コード2なのだが、規格がPAL方式なので再生できないということを思…

EV3でハノイの塔を その5

前回、ハノイの塔のパズルを解くプログラムの基本アルゴリズムを実装し、検証してみましたが、下のような文字を出力するだけでは結果が正しいのかどうか見ても分かりにくいし、第一、面白くありません。 円盤 2 を柱 0 から柱 2 に移動する 円盤 1 を柱 0 か…

EV3でハノイの塔を その4

THS1のプログラムを書く前に、ハノイの塔の解法を整理します。 今回はEV3に直接には関係のない、一般的な話です。 ーーーーーーーーーーーーーーーー ハノイの塔と呼ばれるパズルは写真のようなもので、そのルールは次の通りである。 3本の柱と中央に穴の開…

THS simulator on Naomi

全豪オープンの第二週だった先週、観戦の傍ら、Tower of Hanoi SolverのシミュレータをPythonとOpenCVで作っていました。それについてのブログは追々書いていくつもりですが、それを待っているとタイミングを逸してしまうので、先ずはFacebookにも投稿したこ…

VSCodeでPython+OpenCV

本稿は、「Windows10上でVSCodeを使ってPython+OpenCVのプログラムを開発する」ための環境をつくる方法を記したものです。2021年2月時点での最新版を使い、Visual Studio Code1.53.1 の上で、Python 3.8.5、OpenCV 4.5.1が使えることを確認できています。以…

EV3でPythonを使う

先に、「Mindstorms最新事情」としてLEGOがMIndstorms用のPython(正確にはMicro-Python)をサポートするようになった事を書いた。 それを受けて、今後Mindstorms EV3上でPythonを使っていくことにしたので、備忘のためにその手順を記しておく。 ◆ Mindstorms…

EV3でハノイの塔を その3

今回は、前回の最後に書いたハノイの塔のパズルを水平方向に動かす機構作りです。 対象となるパズルの3軸間の長さは92㎜なので、それ以上のストロークで水平に移動できる必要があります。その2で試したラック・アンド・ピニオンのストロークは100mmなので…

EV3でハノイの塔を その2

今回は、その1で作った円盤を掴む機構(以降、グリッパーと呼びます)を上下方向に動かす機構の製作です。 グリッパーを片持ちでキャリッジで保持し、そのキャリッジを上下にスライドする方式を考えました。この方式にすると少ない部品でコンパクトに作るこ…

鬼は外!

今年は124年ぶりに立春が2月3日で、今日2月2日が節分になるらしい。 EV3-Pythonの演習問題として、豆まきの代わりにこんなものを作ってみた。youtu.be備忘のためのmemo 写真 コード #!/usr/bin/env pybricks-micropython from pybricks.hubs import EV3Brick…

EV3でハノイの塔を その1

LEGO®がMindstorms EV3用のPythonを公式にサポートするようになったので、これまでJavaで行っていたMindstomsのソフトウェア開発をPythonに移行することにしました。新しいパワフルな環境が使えるようになったので使ってみたいところです。そこでそれを使っ…

年中行事

この時期恒例であるが、今年もこのムックを買った。 当面アップグレードする予定はないが、年に一度はフォローしておかないとこの世界は事情が分からなくなる。 2012年以前も買っていたと思うが、2013以降は棄てないで保持している。日経BP社にはこのムック…

お化けテレビの正体

月曜日の夜明け前、暗いはずのリビングルームが明るくなっていて音がするのに驚くとテレビがついている。不思議だったが、消してそれ以上は何も考えなかった。それが、火曜日の朝も自動的についた。タイマーが誤ってセットされているかと疑ったがそうはなっ…

Mindstorms最新事情

LEGOのMindstormsの20年来のファンで、写真に示すように初代のRCXからNXT、EV3と使ってきました。 これまで、7,8年ごとに進化してきているので、そろそろ次が計画されているかと思って調べたら色々と事情が変わって来ているようです。 ① Scratchの採用EV3…

数独でPythonを 10

Javaで書いたプログラムをPythonに移植するという作業を通してPythonに慣れよう、ということでスタートしたプロジェクトですが、「数独でPythonを 1~9」で書いてきたように、処理を①静止画から数独の問題を抽出する、②抽出した問題を解く、という二つのモジ…

ハノイの塔

「箱入り娘」をロボットに解かせるというプロジェクトの準備としてリアルなパズル盤をAmazonで探しました。将棋をテーマにした「王将出陣」という商品があったのでそれを購入することにしたのですが、その時、「よく一緒に購入されている商品」として「ハノ…

箱入り娘

「箱入り娘」と呼ばれるパズルがあります。ひょんなことからこれをスマートフォンに入れてみたら結構難しくてハマってしまいました。 パズルは上の画像に示すようなもので、形の異なるブロックを縦横にスライドさせて、一番上にあるピンクの大きなブロックを…

数独でPythonを 9

「数独でPythonを6」で記した数独の解法アルゴリズムを実装するために、いくつかのクラスを定義する。● 数独の各マスをオブジェクトとして扱うためのクラス class TableElement: def __init__(self): self.defVal = 0 self.candList = [1,2,3,4,5,6,7,8,9] …

数独でPythonを 8

「数独でPythonを 6」で書いた探索のアルゴリズムを実装するには、仮定を置いた時の状態を記憶していく必要があるが、それには連結リスト(linked list)を使うのがいいだろう。 連結リストは、一連のノードが、任意のデータフィールド群を持ち、次(および…

数独でPythonを 7

Pythonでコードを書き出したとき、最初に引っかかったことについて、忘れないようにメモ。 動的型付け mutable/immutable shallow copy/deep copy プログラミング言語には、動的型付けと静的型付けという大きな区分がある。Pythonは動的型付け言語で、プログ…