Quantcast
Channel: The blog of H.Fujimoto
Viewing all 904 articles
Browse latest View live

Arduino Nano Everyを試してみた

$
0
0

昨年5月に、新しい「Arduino Nano Family」が発表されました。
その中の1つの「Arduino Nano Every」が、秋月電子通商で取り扱われるようになったので、購入して試してみました。

Arduino Nano Everyは、Arduino Nanoの上位互換的な機種です。
フラッシュメモリが32KBから48KBに、RAMが2KBから6KBに増えて、これまでより大きめのプログラムを動作させることができます。
ただ、CPUが変わったため(ATMega328→ATMega4809)、100%互換ではありません。

そこで、以下の各モジュールについて、ライブラリが動作するかどうかを試してみました。

  • Adafruit ST7735 and ST7789 Library
    モジュールライブラリ
    MAX7219のLEDマトリックスパネルArduino_MAX7219_Library
    20文字×4行キャラクタLCD(I2C接続)LiquidCrystal I2C 0.96インチOLEDディスプレイ(I2C接続)U8g2 1.44インチ128×128ピクセル液晶ディスプレイ(SPI接続)

    いずれも問題なく動作しました。
    レジスタを直接に操作していないライブラリであれば、動作させられるようでした。


    「電飾ピアノ」で「紅蓮華」を弾いてみた

    $
    0
    0

    Raspberry Pi+MIDI+LEDマトリックスパネルを組み合わせた「電飾ピアノ」で、LiSAさんの「紅蓮華」を弾いてみました。

    「紅蓮華」はテレビアニメ「鬼滅の刃」のテーマ曲です。
    アニメの世界観に合わせて、和のテイストがあるロックになっています。
    昨年(2019年)に「鬼滅の刃」がヒットしてこの曲もヒットし、2019年の紅白歌合戦にも選ばれました。

    count

    東武桐生線/小泉線 赤城→東小泉 前面展望

    $
    0
    0

    YouTubeに東武桐生線/小泉線の赤城→東小泉の前面展望の動画をアップしました。


    東武桐生線は、群馬県の太田(太田市)と赤城(みどり市)を結ぶ路線です。群馬県桐生市と東京を結ぶルートになっていて、浅草から特急りょうもう号の乗り入れもあります。
    一方、東武小泉線は、太田と舘林(群馬県館林市)を結ぶ路線と、途中の東小泉(群馬県大泉町)から西小泉(群馬県大泉町)の盲腸線から構成されます。
    現在では太田から舘林を通して走る列車はなく、東小泉から太田を経て桐生線の赤城に直通する系統と、舘林から東小泉を経て西小泉に至る系統に分かれています。
    今回は、赤城から東小泉までの区間に乗車し、前面展望を撮影しました。赤城駅を出たところで、たまたま上毛電気鉄道のデハ101とすれ違いがありました。

    count

    桐生名物ひもかわうどん

    $
    0
    0

    先日、群馬県桐生市の名物「ひもかわうどん」を食べに行きました。
    非常に幅が広いことが特徴です。

    群馬県は冬場に晴れる日が多く、小麦の生産に適していて、生産量は全国4位だそうです。
    そのため、小麦粉を使った料理が普及していて、水沢うどんや焼きまんじゅうなどが知られています。

    ひもかわうどんも名物の1つで、群馬県桐生市が中心地です。
    有名店の1つである藤屋本店に食べに行きました。


    count

    わたらせ渓谷鐡道イルミネーションの旅

    $
    0
    0

    先日、わたらせ渓谷鐡道の「イルミネーションの旅」に参加しました。


    群馬県桐生市の桐生駅と、栃木県日光市の間藤駅を結ぶわたらせ渓谷鐡道では、さまざまなイベントが行われています。
    その1つとして、冬季に各駅にイルミネーションを施し、列車内から見学することができる「イルミネーションの旅」があります。
    大人2,650円(お弁当/お茶付き)の手頃なお値段で楽しむことができます。

    2月末までの土/日/祝日に開催されていて、定員は各日30名です。
    すでに満席になっている日もありますので、行ってみたい方はお早目に予約することをお勧めします。
    詳しくは以下のページをご参照ください。

    https://www.watetsu.com/event.php?EVENT_ID=1295

    count

    「電飾ピアノ」で「まちがいさがし」を弾いてみた

    $
    0
    0

    Raspberry Pi+MIDI+LEDマトリックスパネルを組み合わせた「電飾ピアノ」で、菅田将暉さんの「まちがいさがし」を弾いてみました。


    テレビドラマ「パーフェクトワールド」の主題歌で、作曲作詞は米津玄師さんです。
    2019年の紅白歌合戦でも歌われました。

    count

    [Word]表紙にページ番号を付けないで表紙の次が1ページになるようにする方法

    $
    0
    0

    Wordでレポートなどの文書を作る際に、表紙にはページ番号を付けないようにして、表紙の次のページが1ページになるようにしたいことがあります。
    この手順を解説した動画を作りました。


    このようなことを行うには、以下の2通りの方法があります。

    方法1

    • 先頭ページ(表紙)とその他のページのヘッダー/フッターを別にする
    • 先頭ページにはページ番号を入れないようにする
    • 先頭ページのページ番号を0にする(結果として表紙の次のページが1ページになる)

    方法2

    • 表紙とそれ以後のページを別のセクションにする
    • それぞれのセクションのヘッダー/フッターが別になるようにする
    • 本文部分(表紙以外)のセクションにページ番号を付ける

    セクションを分けるほどではない文書であれば、方法1で特に問題はないと思います。

    count

    3Dプリンタで「長時間マスクをしても耳が痛くならないグッズ」を作ってみた

    $
    0
    0

    新型コロナウィルスが問題になっていて、日本でも感染が拡大することが危惧されています。
    このような中で、しばらくはマスクをする機会が増えると思われます。すでにマスクは品薄になっているようです。

    しかし、マスクを長時間耳につけていると、耳が痛くなって困ります。
    そこで、3Dプリンタで「長時間マスクをしても耳が痛くならないグッズ」を作ってみました。


    頭の後ろでマスクを止めることができ、耳が痛くなりません。
    三次元CADソフトのFusion360でのデータ作成手順や、3Dプリンタでの実際の出力の様子も動画に収めました。

    なお、3Dデータは以下のアドレスからダウンロードすることができます。
    3Dプリンタをお持ちの方は、このデータを利用して実際に出力することができます。

    https://modelabo.net/6404/

    count

    WS2815フルカラーLEDテープの使い方

    $
    0
    0

    フルカラーLEDテープの「WS2815」を、ArduinoやESP32で制御する方法を解説した動画を作りました。


    WS2815はフルカラーLEDテープの1つで、よく使われているWS2812Bの改良版です。
    WS2812Bは電源電圧が5Vで、多数のLEDを点灯させようとすると、電圧降下によって色が途中からだんだんおかしくなることがあります。
    一方のWS2815は電源電圧が12Vで電圧降下しにくく、多数のLEDを点灯させても色が正しく出るのがメリットです。

    上毛電気鉄道 中央前橋→西桐生 前面展望

    $
    0
    0

    YouTubeに上毛電気鉄道の中央前橋→西桐生の前面展望の動画を公開しました。


    上毛電気鉄道は、群馬県前橋市の中央前橋駅と、群馬県桐生市の西桐生を結ぶローカル私鉄です。
    赤城山の麓をのんびりと走っています。
    この上毛電気鉄道の中央前橋駅から西桐生駅までの前面展望を撮影しました。

    たまたま、西桐生駅でデハ101の団体貸し切り列車を見ることもできました。
    デハ101はこの動画の最後に出てきます。

    count

    「電飾ピアノ」で太田胃散のCM曲を弾いてみた

    $
    0
    0

    Raspberry Pi+MIDI+LEDマトリックスパネルを組み合わせた「電飾ピアノ」で、ショパンの前奏曲第7番イ長調Op.28-7を弾いてみました。
    太田胃散のCM曲としておなじみのあの曲です。


    ゆっくりで短い曲なので、比較的簡単でした。
    楽譜がある曲ですが、今回も耳コピーして楽譜なしで弾いています。

    count

    「電飾ピアノ」で「Sweet Memories」を弾いてみた

    $
    0
    0

    Raspberry Pi+MIDI+LEDマトリックスパネルを組み合わせた「電飾ピアノ」で、松田聖子さんの名曲「Sweet Memories」を弾いてみました。


    先日テレビを見ていた時に、マクドナルドのごはんバーガーのCMが流れました。
    バックの曲がSweet Memoriesで、久々に聞いて懐かしく思いました。
    そこで弾いてみることにしました。

    今回はカメラを2台使い、弾いているところと電飾とを見比べられるようにしてみました。

    count

    3Dプリンタでパンチングボードを素早く作るためのスクリプト

    $
    0
    0

    3次元CADソフトのFusion 360向けに、パンチングボード(一定間隔で穴が開いた板)を素早く作るためのスクリプトを公開しました。


    電子工作で物を作る際に、タミヤの「ユニバーサルプレート」を使うことがあります。
    ユニバーサルプレートは、5mm間隔で直径3mmの穴が開いたプラスチックの板です。

    ただ、ユニバーサルプレートはサイズが2種類だけで、それ以外のサイズの板が必要な時には、カットする作業が必要になります。
    また、穴の位置が5mm間隔なので、取り付けるものによっては、穴の位置が合わないこともあります。

    そこで、3Dプリンタでユニバーサルプレートと同様のものを出力して使うことが多くなりました。
    3次元CADソフトのFusion 360にはスクリプトの機能があり、プログラム(PythonまたはC++)で、Fusion 360の処理を自動化することができます。
    ユニバーサルプレートのようなものを素早く作るために、今回のスクリプトを作りました。

    スクリプトはGitHubの以下のアドレスからダウンロードすることができます。

    https://github.com/hajimef/fusion360-punching-board

    スクリプトのインストール手順や使い方は、YouTubeの動画をご参照ください。

    count

    WS2815フルカラーLEDテープの使い方(Raspberry Pi用)

    $
    0
    0

    フルカラーLEDテープの「WS2815」を、Raspberry Piで制御する方法を解説した動画を作りました。


    WS2815はフルカラーLEDテープの1つで、よく使われているWS2812Bの改良版です。
    WS2812Bは電源電圧が5Vで、多数のLEDを点灯させようとすると、電圧降下によって色が途中からだんだんおかしくなることがあります。
    一方のWS2815は電源電圧が12Vで電圧降下しにくく、多数のLEDを点灯させても色が正しく出るのがメリットです。

    count

    プラレールの複々線用外側複線曲線レールを作ってみた

    $
    0
    0

    プラレールの複々線用外側複線曲線レールを、3Dプリンタで作ってみました。


    プラレールでレイアウトを作るときに、「こんなレールがあれば...」と思うことは結構あります。
    その1つとして、複々線のレイアウトを作る時の、外側複線曲線レールがあります。
    これを3Dプリンタで作ってみました。

    3Dプリンタ用のデータは以下からダウンロードすることができます。

    https://modelabo.net/6433/
    https://modelabo.net/6434/

    それぞれ1つずつ出力して、裏面同士を接着すると、1個分のレールができます。
    16組(16個)出力すると1周分になります。

    count

    [Word]行頭/行末のスペースはインデントですっきり

    $
    0
    0

    Wordで各段落の行頭/行末にスペースを入れる「インデント」の機能を解説しました。

    Wordで文書を作るときに、複数行に渡って、行頭や行末にスペースを空けたい場面があります。
    スペースキーを押してスペースを入れる方をよく見受けますが、その方法だと文章を修正するたびにスペースの位置がずれて、手間がかかります。
    このような時には、インデントの機能を使うとすっきりとスペースを入れることができます。
    ぜひインデントをご活用ください。

    count

    碓氷峠 廃線ウォーク

    $
    0
    0

    先日、「廃線ウォーク」というイベントに参加しました。
    北陸新幹線開業で廃止された信越本線の軽井沢駅~横川駅(の手前の峠の湯)間を歩くイベントです。
    普段は立ち入り禁止の区間を歩くことができ、非常に良かったです。


    信越本線の横川~軽井沢間は、1997年10月に北陸新幹線が長野まで開業したのに伴い、1997年9月30日で廃止されました。
    1963年にすでに廃止されていた旧線区間のうち、横川駅~熊ノ平駅間は遊歩道「アプトの道」として整備され、現在では自由に見学することができます。
    一方、北陸新幹線開業まで使われていた新線区間は、通常は立ち入り禁止になっています。しかし、2018年10月14日から「廃線ウォーク」というイベントが開催されるようになり、それに参加すれば見学することができるようになりました。
    今回、2020年2月23日(日)に開催された廃線ウォークに参加し、新線上り線を歩きました。

    count

    PythonでExcelファイルを操作するopenpyxlライブラリ・その1(基本)

    $
    0
    0

    Excelで操作を自動化する際に、VBA(Visual Basic for Applications)でマクロを組むことが多いです。
    ただ、VBAは古い言語なので、今時の言語でExcelを操作したい方が多いのではないでしょうか。
    そのような方には、PythonでExcelファイルを操作することができる「openpyxl」ライブラリがあります。
    このopenpyxlライブラリのインストールから最初のスクリプトまでを紹介します。


    1.openpyxlライブラリのインストール

    openpyxlライブラリはpipコマンドでインストールすることができます。
    コマンド入力できる状態(例:Windowsのコマンドプロンプト)で、以下のコマンドを入力します。

    pip install openpyxl

    なお、Linuxなどでは、「sudo pip install openpyxl」と入力して、管理者権限でインストールすることが必要な場合があります。

    2.ファイルの新規作成から保存まで

    ファイルを新規作成し、セルに値を入力して、そのファイルを保存するまでの流れは、以下のようになります。

    2-1.ライブラリのインポート

    まず、以下の文でライブラリをインポートします。

    from openpyxl import Workbook
    

    2-2.ブックの作成

    Workbook関数を実行するとブック(のオブジェクト)が新規作成されます。
    作成したブックは変数に割り当てます。

    例えば、新規作成したブックを変数wbに割り当てるには、以下のように書きます。

    wb = Workbook()
    

    2-3.ワークシートの取得

    Workbook関数で新規作成したブックには、シートが1枚ある状態です。
    そのシート(のオブジェクト)は、ブックの「active」というプロパティで取得することができます。

    例えば、新規作成したブックを変数wbに割り当てたときに、そのブックのワークシートを変数wsに割り当てるには、以下のように書きます。

    ws = wb.active
    

    2-4.セルの操作

    ワークシート上のセルは、以下のどちらかの書き方で表すことができます。

    • ワークシート['セル番号']
    • ワークシート.cell(row = 行番号, column = 列番号)

    1つ目の方法で表す場合、セルの値を取得したり、値を代入したりすることができます。
    また、2つ目の方法で表す場合、セルに値を代入するには、「value = 値」の引数を追加します。

    例えば、変数wsにワークシートを割り当てている場合、そのA1セルの値を100にするには、以下のどちらかの書き方をします。

    ws['A1'] = 100
    ws.cell(row = 1, column = 1, value = 100)
    

    2-5.ブックの保存

    ブックのsaveメソッドを実行して、ブックをファイルに保存することができます。
    引数でファイル名を指定します。

    例えば、ブックwbを「sample.xlsx」というファイルに保存するには、以下のように書きます。

    wb.save('sample.xlsx')
    

    3.既存のファイルを開く

    既存のファイルを開いて操作するには、以下の手順を取ります。

    3-1.ライブラリのインポート

    以下の文でライブラリをインポートします
    なお、新規作成のときと異なりますので、注意してください。

    from openpyxl import load_workbook
    

    3-2.ブックを開く

    load_workbook関数を実行すると、ブックが開いてそのオブジェクトが新規作成されます。
    オブジェクトは変数に割り当てます。

    例えば、「sample.xlsx」ファイルを開いて変数wbに割り当てるには、以下のように書きます。

    wb = load_workbook('sample.xlsx')
    

    3-3.ブックを開いた後の操作

    ブックを開いた後は、新規作成したときと同様の手順で操作することができます。
    saveメソッドでファイルを保存する場合、既存のファイルに上書きするときでもファイル名を指定する必要があります。

    4.サンプルプログラム

    今回紹介した内容のサンプルプログラムは、githubの以下のアドレスからダウンロードすることができます。

    https://github.com/hajimef/openpyxl_sample

    count

    プラレールの車両通過検出レールを作ってみた

    $
    0
    0

    プラレールで車両が通過したことを検出するレールを作ってみました。

    「プラレールを自動制御したい」と思うことはないでしょうか?
    「車両がレール上のある点を通過した」ということを検出することができれば、マイコンと組み合わせて「点○○を通過したら□□する」という自動制御を行うことができます。
    このために使うレールです。

    動画の中では、簡単な事例として、このレールを2つ使い、それぞれを通過するたびにLEDを交互にオン/オフさせてみました。

    なお、3Dデータは以下からダウンロードすることができます。

    https://www.thingiverse.com/thing:4226628

    また、サンプロプログラムは以下からダウンロードすることができます。

    https://github.com/hajimef/openpyxl_sample

    count

    51歳

    $
    0
    0

    今日(2020年4月2日)、誕生日を迎えて51歳になりました。
    誕生日にちなんで、back numberのヒット曲「HAPPY BIRTHDAY」を弾いてみました。


    新型コロナウィルスの影響で世界が痛ましい状況になっていますが、再び世界に平常が戻り、普通に「HAPPY BIRTHDAY」と言える日が来ることを祈っています。

    count
    Viewing all 904 articles
    Browse latest View live