Warning: Cannot modify header information - headers already sent by (output started at /home/cra-log/www/index.php:1) in /home/cra-log/www/site-admin-wp/wp-includes/feed-rss2.php on line 8
CRAFT GoGo https://craft-gogo.com Raspberry Pi、3Dプリンタ、プログラミング、DIYなど、ものづくりを中心に趣味レベルで情報を発信! Mon, 01 Apr 2024 03:47:44 +0000 ja hourly 1 https://wordpress.org/?v=6.3.4 https://craft-gogo.com/site-admin-wp/wp-content/uploads/2021/05/cropped-CRAFT-GOGO-LOGO-32x32.png CRAFT GoGo https://craft-gogo.com 32 32 Arduinoで行列計算!ArduinoEigenの使い方 https://craft-gogo.com/arduino_eigen/ Mon, 01 Apr 2024 01:18:31 +0000 https://craft-gogo.com/?p=3675

Pythonでは簡単に行列計算が出来るのに、Arduinoでは行列計算をさせるのに一苦労。そんなときはArduinoEigenライブラリの使用がおすすめです。今回は、ArduinoEigenのインストールから使い方まで解 […]]]>

Pythonでは簡単に行列計算が出来るのに、Arduinoでは行列計算をさせるのに一苦労。そんなときはArduinoEigenライブラリの使用がおすすめです。今回は、ArduinoEigenのインストールから使い方まで解説します。

ArduinoEigenとは

C++には行列計算ライブラリ「Eigen」というものがあります。このEigenをArduinoで直接扱えるようにしたのが「ArduinoEigen」です。ArduinoEigenをインストールすることによって、Arduinoでも行列が簡単に計算できるようになります。

ArduinoEigenのインストール方法

ArduinoEigenのインストール方法はとっても簡単です。ここではArduino IDEとPlatformIOでのインストール方法を紹介します。

Arduino IDE環境

スケッチ > ライブラリをインクルード > ライブラリを管理 をクリックします。

Eigenを検索し、インストールボタンを押せばインストール完了です。

PlatformIO環境

本ブログでは、Arduino開発環境はPlatformIOをお薦めしています。

PlatformIO環境でのArduinoEigenインストール方法も解説していきますね。

Librariesから「Eigen」と検索すると「ArduinoEigen」がヒットします。

Add to Projectボタンを押し、Projectを選択するとインストール完了です。

ArduinoEigenを使った行列計算方法

ArduinoEigenの基本的な使い方について解説していきます。詳細な使い方を知りたい方は、公式ホームページを見て下さいね。

ヘッダファイルのインクルード

まずはヘッダファイルのインクルードが必要です。ArduinoEigen.hをインクルードしましょう。

#include <ArduinoEigen.h>

変数の宣言

変数を宣言するには下のように記述します。

using Eigen::MatrixXd;
MatrixXd m(2, 2);

MatrixXd m(2, 2)は、2×2のdouble型で変数mを宣言したことを意味しています。

正方行列で次数が決まっている場合は、次のように記述します。

using Eigen::Matrix2d;
Matrix2d m;

変数の型をdoubleではなくfloat、intにしたい場合は最後の文字を「d」から「f」、「i」に変更します。

MatrixXd // double型
MatrixXf // float型
MatrixXi // int型

初期値の代入

初期値を代入するには、2×2行列の場合を例にすると1行1列目、1行2列目、2行1列目、2行2列目の順に「,」区切りで記述していきます。

m << 1, 2, 
           3, 4;

加算

加算は「+」演算子を使います。

m = m1 + m2;

減算

減算は「-」演算子を使います。

m = m1 - m2;

乗算

乗算は「*」演算子を使います。

m = m1 * m2;

転置行列

転置行列はinverse()関数を使います。

n = m.inverse();

まとめ

Arduinoで行列を扱うためのArduinoEigenライブラリについて解説しました。今回の解説は行列計算のごく一部です。その他行列計算の使い方は公式ホームページ参照して下さい。

最後までお読みいただきありがとうございました。

楽天ブックス
¥3,278 (2024/04/26 08:44時点 | 楽天市場調べ)
プログラミング言語の人気オンラインコース ]]>
M5StickCを使って倒立振子に挑戦! ~ハードウェア編~ https://craft-gogo.com/invented_pendulum01/ Sat, 16 Mar 2024 17:04:23 +0000 https://craft-gogo.com/?p=3590

制御の醍醐味は不安定な系を安定にさせること。今回は、M5StickCを使って倒立振子に挑戦します! 制御工学を学んでいるけど、数式が多くて難しい、何の役に立つのか分からないといった方の助けになればよいと思います。 倒立振 […]]]>

制御の醍醐味は不安定な系を安定にさせること。今回は、M5StickCを使って倒立振子に挑戦します!

制御工学を学んでいるけど、数式が多くて難しい、何の役に立つのか分からないといった方の助けになればよいと思います。

倒立振子を立たせるのに、かなり試行錯誤しました。どんなところに注意しなければいけないかポイントも紹介していきます。

記事は、ハードウェア設計編、ソフトウエア設計編、実機適合編に分けて連載する予定で、今回はハードウェア設計編です。

完成形

部品選定

準備した部品の一覧表です。

準備物個数
M5StickC Plus1個
FEETECH ギヤードモータ FM902個
タイヤ FS90R対応2個
DRV8835使用ステッピング&DCモータドライバモジュール1個
電池ボックス 単3×2本2個
ボディ(3Dプリンタで自作)1個
ジャンパピン メス必要分
GROVE 4ピンケーブル1本

M5StickC Plus

コントローラはM5StickC Plusを使いました。M5StickCPlusは、小型軽量ながら倒立振子に必要なGセンサ、ジャイロセンサーが備わっているので、部品点数削減に繋がります。あとはモーター、タイヤと電源を準備するだけでOK。

私はM5StickCシリーズの中でもM5StickC Plusを使用しました。M5StickC Plus選定は在庫があったからだけです。より安価に作るのであればM5StickCでも問題ないです。

ネコサン商店
¥8,402 (2024/03/17 01:52時点 | 楽天市場調べ)

FEETECH ギヤードモータ FM90

マブチモーターより小型なFM90を選定しました。FM90はサーボモーターと同一形状のため、サーボモーター用のタイヤを取り付けることができます。

定格電圧は4.8V。モーター特性は秋月電子のホームページを参照してください。

タイヤ FS90R対応

タイヤはFS90R用を使いました。FM90にも取付可能です。タイヤ径は60mm。

ロボショップ 楽天市場店
¥421 (2024/03/10 22:10時点 | 楽天市場調べ)

DRV8835使用ステッピング&DCモータドライバモジュール

モータードライバは、2ch内蔵のモジュールであるDRV8835を使います。15mm×10mmと小型で、搭載性抜群です。

ロボショップ 楽天市場店
¥824 (2024/03/10 22:11時点 | 楽天市場調べ)

電池ボックス 単3×2本

FM90は定格電圧4.8Vのため、充電式単3電池4本使います。重量バランスを考えて、電池2本ずつ前後に搭載することにしたので、2本用を2個用意しました。

配線図

配線図は下図のとおりです。

DRV8835への電源供給のために、単3電池の+端子をDRV8835のVM、VCC端子に繋ぎます。単3電池のー端子は、DRV8835のGNDに繋ぎます。

モーターFM90への接続は、それぞれAOUT1/AOUT2、BOUT1/BOUT2です。モーターは左右で反転して搭載しますので、一方のモーターをプラスマイナス逆転して接続しましょう。

モーターをPWM制御するために、G33端子をAIN1/BIN1、G32端子をAIN2/BIN2に接続しました。

ボディの製作

ボディはFusion360で設計しました。

これを3Dプリンタで製作。一体成型です。3Dプリントの設定はサポート材有り。サポート材を取り除くのにかなり苦労しました。

組み立て

モーターは下方から差し込む構造になっています。

電池ボックスを取り付けるためのネジ穴はボディに空けなかったので、両面テープで貼り付けます。配線は中央の穴を通しました。

タイヤをモーターに取り付け。

モータードライバDRV8835は電池パックに両面テープで貼り付けました。DRV8835のヘッダピンにそれぞれの配線を接続。

DRV8835は剥き出しになってしまったので、もう少し見栄えを良くしたかった。

M5StackC Plusをボディに差し込めば完成!

これにてハードウェア設計編は終わりです。次回はソフトウェア設計編です。

ネコサン商店
¥8,402 (2024/03/17 01:52時点 | 楽天市場調べ)
楽天ブックス
¥3,432 (2024/03/10 14:42時点 | 楽天市場調べ)
]]>
【Raspberry Pi】bluetoothctlを使ってデバイスをBluetooth接続する方法 https://craft-gogo.com/raspi-bluetoothctl/ Sat, 19 Aug 2023 14:57:05 +0000 https://craft-gogo.com/?p=3564

Raspberry PiにプレステやSwitchのワイヤレスコントローラを接続して、操作してみたいと思いませんか? 本記事では、Linuxのbluetoothctlを使ってデバイスをBluetooth接続する方法について […]]]>

Raspberry PiにプレステやSwitchのワイヤレスコントローラを接続して、操作してみたいと思いませんか?

本記事では、Linuxのbluetoothctlを使ってデバイスをBluetooth接続する方法について解説します。

bluetoothctlとは

「bluetoothctl」とは、Linux環境においてBluetoothデバイスの管理や操作を行うためのコマンドラインツールです。Bluetoothデバイスのスキャン、ペアリング、接続、切断などの操作を行うことができます。ターミナルを通じてBluetoothを制御できるため、シェルスクリプトや自動化に役立ちます。

必要な準備

通常のLinux環境では、bluetoothctlコマンドが使えるはずです。インストールされていない場合は、ターミナルで次のように打ち、bluetoothctlをインストールします。

$ sudo apt -y install bluetooth bluez

インストールされたら、bluetoothctlコンソールを起動します。

$ bluetoothctl

起動すると次にように表示されます。

[bluetoothctl]#

bluetoothctコンソールを終了するには

[bluetoothctl]# quit

と打ちます。

デバイスとの接続方法

スキャン

次のコマンドを実行することで、近くのBluetoothデバイスをスキャンすることができます。

[bluetoothctl]# scan on

デバイスがスキャンされると、MACアドレスとデバイス名が表示されます。

Discovery started
[NEW] Device XX:XX:XX:XX:XX:XX [デバイス名]

このMACアドレスは、ペアリング、接続に必要のため、コピーしておきましょう。

スキャンを終えるには、次のように打ちます。

[bluetoothctl]# scan off

ペアリング

スキャンで検出したデバイスとペアリングしましょう。

[bluetoothctl]# pair XX:XX:XX:XX:XX:XX

“XX:XX:XX:XX:XX:XX”はデバイスのMACアドレスです。

デバイス側で接続要求を受け入れた後、bluetoothctl側の確認依頼にyesを返答します。

[agent] Confirm passkey xxxxxxx (yes/no): yes

最終的に次のように表示されたらペアリング完了です。

[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful

接続

まず、デバイスを信頼できるデバイスに設定します。次のように打ちましょう。

[bluetoothctl]# trust XX:XX:XX:XX:XX:XX

設定完了の表示がこちら。

[CHG] Device XX:XX:XX:XX:XX:XX Trusted: yes
Changing XX:XX:XX:XX:XX:XX trust succeeded

次に接続です。

[bluetoothctl]# connect XX:XX:XX:XX:XX:XX

接続に成功すると次のように表示されます。

Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
Connection successful
[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: yes
[デバイス名]#

切断

デバイスと切断するには次のようにコマンドを打ちます。

[デバイス名]# disconnect XX:XX:XX:XX:XX:XX

切断完了されると次のように表示されます。

Attempting to disconnect from XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: no
Successful disconnected
[CHG] Device XX:XX:XX:XX:XX:XX Connected: no
[bluetooth]#

主なコマンド一覧

コマンド説明
scan onペアリング・接続可能なデバイスを検索する
scan offペアリング・接続可能なデバイスの検索を停止する
devicesペアリング・接続可能なデバイス一覧を表示する
pair <MACアドレス><MACアドレス>のデバイスとペアリングする
paired-devicesペアリングされているデバイス一覧を表示する
trust <MACアドレス><MACアドレス>のデバイスを信頼済にする
untrust <MACアドレス><MACアドレス>のデバイスを信頼されていない状態にする
connect <MACアドレス><MACアドレス>のデバイスと接続する
disconnect <MACアドレス><MACアドレス>のデバイスを切断する
info <MACアドレス><MACアドレス>のデバイス情報を表示する
remove <MACアドレス><MACアドレス>のデバイスと切断し、ペアリング情報を削除する

まとめ

本記事では、Linuxのbluetoothctlを使ってデバイスをBluetooth接続する方法について解説しました。

bluetoothctlを使えばBluetoothデバイスのスキャン、ペアリング、接続、切断などの操作を簡単に行うことができます。

今回の記事が皆さんのプログラミング学習に役立つなら幸いです。

最後まで読んでいただき、ありがとうございました。

]]>
プログラミング記事の魅力をアップするWordPressハイライト表示プラグイン「Highlighting Code Block」 https://craft-gogo.com/hilighting-code-block/ Sat, 19 Aug 2023 01:07:06 +0000 https://craft-gogo.com/?p=3501

WordPressブログを運営している皆さんにとって、分かりやすく美しいコード表示は重要ですよね。 本記事では、WordPressのコードブロックをハイライト表示するための素晴らしいプラグイン「Highlighting […]]]>

WordPressブログを運営している皆さんにとって、分かりやすく美しいコード表示は重要ですよね。

本記事では、WordPressのコードブロックをハイライト表示するための素晴らしいプラグイン「Highlighting Code Block」を紹介します。

このプラグインを使うことで、技術記事やプログラミング記事をより魅力的に、わかりやすく表現できるのでおすすめです!

こんな人におすすめ!

WordPressで技術記事やプログラミング記事を書く人

はじめに

プログラミングをする上でVisual Studio Codeなどハイライト表示できるエディタを使っていますよね。コードをハイライト表示することによって、コードの可読性が飛躍的に向上します。

Visual Studio Codeの例

しかし、プログラミング記事にするとき、コードを直接WordPressに張り付けただけではハイライトされず、読者にとっては非常に不親切です。

import cv2 as cv

# カスケード分類器読み込み
frontalface_cascade = cv.CascadeClassifier(“haarcascade_frontalface_default.xml”)
smile_cascade = cv.CascadeClassifier(“haarcascade_smile.xml”)
eye_cascade = cv.CascadeClassifier(“haarcascade_eye.xml”)

そこで当ブログでは、「Highlighting Code Block」というWordPressプラグインを使っています。

プラグイン紹介

Highlighting Code Blockは、株式会社LOOSが開発しているカラーリングが施されたコードブロックを導入できるWordPressプラグインです。

2023年8月現在、バージョンは1.7.0です。

国産のWordPressプラグインです。開発元は本ブログテーマ「SWELL」と同じです。SWELL導入前からHiglighting Code Blockは使っていました。SWELL導入時にHiglighting Code Blockと同じ開発元と知って、びっくりでした!!!

主な機能と特徴

サポート言語

主要なプログラミング言語に対応しています。

  • HTML
  • CSS
  • SCSS
  • JavaScript
  • TypeScript
  • PHP
  • Ruby
  • Python
  • Swift
  • C
  • C#
  • C++
  • Objective-C
  • SQL
  • JSON
  • Bash
  • Git

ライトモードとダークモード

WordPressダッシュボード > 設定 > [HCB]設定の「コードカラーリング」でライトモードとダークモードを変更することができます。

個人的にはダークモードの方が知的な感じがして、お気に入り。

行番号の表示オプション

WordPressダッシュボード > 設定 > [HCB]設定の「行数の表示設定」でコードブロックに行数を表示するか設定することができます。

コピーコード機能

右上のコピーボタンを押すことで、コードのコピーが出来ます。

a = 1
b = 2
print(a+b)

長いコードもボタン1つでコピーできるので、楽ちんです。

インストール方法

WordPressダッシュボードのプラグインを追加から簡単にインストールできます。

まとめ

本記事では、WordPressブログを運営している皆さんにとって、分かりやすく美しいコード表示するためのプラグイン「Highlighting Code Block」を紹介しました。

このプラグインを使うことで、技術記事やプログラミング記事をより魅力的に、わかりやすく表現できるのでおすすめです!

\ 当ブログで使用のテーマ /

]]>
よく見る「if __name__ == ‘__main__’」って何?意味と用途を解説 https://craft-gogo.com/python-name_main/ Fri, 18 Aug 2023 01:20:02 +0000 https://craft-gogo.com/?p=3528

Pythonサンプルコードを見ていると「if __name__ == ‘__main__’」と記述されていることがよくありますよね? 意味が分からないと、その時点でコード解読離脱してしまいます。 本記事では、 […]]]>

Pythonサンプルコードを見ていると「if __name__ == ‘__main__’」と記述されていることがよくありますよね?

意味が分からないと、その時点でコード解読離脱してしまいます。

本記事では、この構文が何を意味し、どんなときに使うのかを解説します。

こんな人におすすめ

Python学習を始めたばかりの人

if __name__ == ‘__main__’の意味と用途

if __name__ == ‘__main__’の意味は、もしPythonコードが直接実行されたときは以降のコードを処理し、モジュールとして呼び出されたときは処理しないです。

用途は、モジュールを呼び出したときに、勝手に処理が実行されることを防ぐことです。また、モジュールの単体テスト用としても使われます。コードを直接実行したときと、モジュールとして他のコードから呼び出されたときの処理を分けることでモジュールの単体テストを可能とします。

モジュールの単体テスト用ですから、Pythonコードが1ファイルの場合は、この構文は必要ありません。

次項では、Pythonコードが直接実行されたときのみ処理する仕組みを解説します。

__name__変数とは

__name__変数とは、モジュール名を返す特別な変数です。importで他のコードから呼び出された場合は、__name__はファイル名となります。一方、コードを直接実行した場合は、__name__はファイル名となります。

サンプルプログラムで確認していきましょう。

モジュール「module.py」とメインコード「main.py」を用意しました。

def func():
    return __name__

if __name__ == '__main__':
    print('__name__ = ' + func())
import module

print('__name__ = ' + module.func())

それぞれのファイルを実行してみますと下表のようになったのではないでしょうか?

実行ファイルmodule.pymain.py
__name____main__module

main.pyからmodule.pyをimportしたときは、”if name == ‘main’:” 以降の処理が実行されないのがお分かりですね。

まとめ

Pythonサンプルコードでよく見る「if __name__ == ‘__main__’」の意味と用途について解説しました。

意味

  • もしPythonコードが直接実行されたときは以降のコードを処理し、モジュールとして呼び出されたときは処理しない

用途

  • モジュールを呼び出したときに、勝手に処理が実行されることを防ぐ
  • モジュールの単体テスト用

今回の記事が皆さんのPython学習に役立つなら幸いです。

Python独学が大変な方は、書籍やスクールを活用するのも手です。

]]>
【Python+OpenCV】顔検出応用!目と笑顔の検出方法 https://craft-gogo.com/opencv-eyedetection/ Fri, 18 Aug 2023 00:02:21 +0000 https://craft-gogo.com/?p=3506

以前の記事でOpenCVで顔検出するプログラムを解説しました。 今回は、顔検出の応用として、目と笑顔を検出する方法について解説します。 サンプルプログラム こちらが目、笑顔を検出するサンプルプログラムです。 実行結果がこ […]]]>

以前の記事でOpenCVで顔検出するプログラムを解説しました。

今回は、顔検出の応用として、目と笑顔を検出する方法について解説します。

サンプルプログラム

こちらが目、笑顔を検出するサンプルプログラムです。

import cv2 as cv

# カスケード分類器読み込み
frontalface_cascade = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
eye_cascade = cv.CascadeClassifier("haarcascade_eye.xml")
smile_cascade = cv.CascadeClassifier("haarcascade_smile.xml")

# 画像の読み込み
img = cv.imread("sample.jpg")

# 顔検出
face = frontalface_cascade.detectMultiScale(img)

# 顔部を赤枠で囲む
for x, y, w, h in face:
    cv.rectangle(img,(x,y), (x+w, y+h), (0,0,255), 1)
    
    # 顔部の上3/4を切り取り
    upper_face_img = img[y:int(y+3*h/4), x:x+w]
    
    # 目検出
    eye = eye_cascade.detectMultiScale(upper_face_img)
    
    # 目部を青枠で囲む
    for x1, y1, w1, h1 in eye:
        cv.rectangle(img, (x+x1,y+y1), (x+x1+w1, y+y1+h1), (255,0,0), 1)
      
    # 顔部の下半分を切り取り  
    under_face_img = img[int(y+h/2):(y+h), x:x+w]

    # 笑顔検出
    smile = smile_cascade.detectMultiScale(under_face_img)
     
    # 笑顔を緑枠で囲む
    for x2, y2, w2, h2 in smile:
        cv.rectangle(img,(x+x2, int(y+h/2)+y2), (x+x2+w2, int(y+h/2)+y2+h2), (0,255,0), 1)

cv.imshow("img", img)
cv.waitKey(0)
cv.destroyAllWindows()

実行結果がこちら

3人とも目が検出できました。右2人は笑っているので、口元が笑顔と判定されています。

次章ではサンプルプログラムを解説していきます。

プログラム解説

サンプルプログラムの流れは以下のとおりとなっています。

STEP
カスケード分類器読み込み
STEP
画像の読み込み
STEP
顔の検出
STEP
目の検出
STEP
笑顔の検出

STEP1~3は、別記事で解説していますので、本記事では割愛しました。

ここでは、STEP4: 目の検出、STEP5: 笑顔の検出について解説していきます。

目の検出

目を検出するには「haarcascade_eye.xml」を使用します。

# カスケード分類器読み込み
eye_cascade = cv.CascadeClassifier("haarcascade_eye.xml")

# 顔部の上3/4を切り取り
upper_face_img = img[y:int(y+3*h/4), x:x+w]

# 目検出
eye = eye_cascade.detectMultiScale(upper_face_img)

# 目部を青枠で囲む
for x1, y1, w1, h1 in eye:
    cv.rectangle(img, (x+x1,y+y1), (x+x1+w1, y+y1+h1), (255,0,0), 1)mg)

顔部の上3/4を切り取り、この中から目を検出して青枠で囲むということをしています。

もし、顔部を切り取らなかったらどうなるのでしょうか?

下図は顔部を切り取らなかった場合の実行結果です。

左の女性のおでこと口が目と誤判定されてしまいました。目は顔の上部に位置していますので、誤判定しないためにも検出範囲を顔の上部のみに絞る方が良いことが分かります。

笑顔の検出

笑顔を検出するのは「haarcascade_smile.xml」です。

# カスケード分類器読み込み
smile_cascade = cv.CascadeClassifier("haarcascade_smile.xml")

# 顔部の下半分を切り取り  
under_face_img = img[int(y+h/2):(y+h), x:x+w]

# 笑顔検出
smile = smile_cascade.detectMultiScale(under_face_img)
    
# 笑顔を緑枠で囲む
for x2, y2, w2, h2 in smile:
    cv.rectangle(img,(x+x2, int(y+h/2)+y2), (x+x2+w2, int(y+h/2)+y2+h2), (0,255,0), 1)

目の検出同様、顔部の下半分を切り取り、この中から笑顔を検出して緑枠で囲みます。

こちらも顔部を切り取らなかった場合を確認してみましょう。

様々なところで笑顔が検出されてしまいました。検出範囲を絞ることが重要です!

色々な画像で目・笑顔の検出

こちらの画像では右側女性の右目が検出出来ませんでした。

こちらの写真は3人とも笑顔ではないですが、口元が笑顔と検出されています。

笑顔検出というよりは、口検出に近いですね。

まとめ

顔検出の応用として、OpenCVの「カスケード分類器」を使用した目・笑顔検出プログラムについて解説しました。

手順のおさらい

  • カスケード分類器読み込み
  • 画像の読み込み
  • 顔の検出
  • 目の検出
  • 笑顔の検出

今回の記事が皆さんのPython学習に役立つなら幸いです。

Python独学が大変な方は、書籍やスクールを活用するのも手です。

]]>
【WordPressテーマ】 効率的な記事作成にはSWELLが最適 https://craft-gogo.com/wordpress-swell/ Wed, 16 Aug 2023 02:44:46 +0000 https://craft-gogo.com/?p=3482

WordPressのテーマ選びに悩んでいませんか?無料が良いものか、有料が良いものか…。 本記事では、私が最近導入したWordPressの「SWELL」テーマについてご紹介したいと思います。 これまで無料テー […]]]>

WordPressのテーマ選びに悩んでいませんか?無料が良いものか、有料が良いものか…。

本記事では、私が最近導入したWordPressの「SWELL」テーマについてご紹介したいと思います。

これまで無料テーマ「Cocoon」を使用していましたが、有料テーマ「SWELL」に移行したことによって、記事の作成効率が驚くほど高まった上、ブログのデザイン性を飛躍的に向上させることができました。

WordPressテーマ選びに悩んでいる方は、是非「SWELL」を選んでみてください。

SWELLとは

「SWELL」は了さんが開発している有料WordPressテーマです。”使い心地を追求したブロックエディター“を特徴としています。動画のようにマウス操作で簡単に装飾を加えていくことができ、ブログ作成効率を大幅に向上させることができます。

SWELLの詳しい特徴は公式ホームページを参照して下さい。

\ SWELLの詳細はこちら /

SWELLのメリット

私は3年ほど無料WordPressテーマ「Cocoon」を使用していましたが、「SWELL」に移行したことで記事作成効率の向上とスタイリッシュなブログデザインを手に入れることが出来ました!

記事作成効率の向上

ブロックスタイルの作成効率化

SWELLの良いところは、様々なブロックスタイルが簡単に作成できることです。サイドバーに作成したいブロックスタイルがデフォルトで並んでおり、マウスでクリックするだけ。

こんなブロックや

こんなブロックが

マウス1クリックで

簡単に作れますよ!

表の作成効率化

SWELLは、機能を比較する表などの作成が超簡単!パターンの[SWELL]テーブル内に様々なテンプレートがあります。

マウスクリック1つでこんな表や

スクロールできます

商品A

商品B

商品C
機能A少し古い普通最新版
機能B非対応制限付き使用可
性能A200[単位]500[単位]1000[単位]
性能B500[単位]1000[単位]800[単位]
デザイン普通良い微妙
価格5,000円10,000円15,000円
購入する購入する購入する
各製品の比較

こんな表が簡単に作れます!

メリットデメリット
早い
安い
うまい
遠い
閉店が早い
ださい

スタイリッシュなブログデザイン

SWELLは、スタイリッシュな記事一覧リストを簡単に作成することできます。

カード型

リスト型

リスト型(交互左右)

サムネイル型

SWELLのデメリット

テーマ使用に費用がかかる

「Cocoon」はテーマ使用に費用はかかりません。一方、「SWELL」は税込み17,600円の費用がかかります。けっして安くはありません。私は約3年、購入しようかどうか悩んでいました。

他にも買いたいものはいっぱいありましたが、意を決してSWELLを購入しました。

他ブログとデザインが似がちになる

「SWELL」はシェア率が高いので、デフォルト設定で使用していると、他ブログとデザインが似がちになってしまうことです。

SWELLはカスタマイズ性が高いので、これからオリジナリティあるデザインにカスタマイズしていこうと思っています。

SWELLの購入方法

「SWELL」は公式ホームページから購入することができます。

まとめ

WordPressのテーマ選びに悩んでいる方に向けて、私が最近導入したWordPressの「SWELL」テーマについて紹介しました。

これまで無料テーマ「Cocoon」を使用していましたが、有料テーマ「SWELL」に移行したことによって、記事の作成効率が驚くほど高まった上、ブログのデザイン性を飛躍的に向上させることができ、大変満足しています。

ぜひこの素晴らしいテーマを試してみて、自身のブログをより魅力的なものにしてみてください!

]]>
ブログを始める! さくらサーバーでのWordPressセットアップ方法 https://craft-gogo.com/wordpress-setup/ Tue, 15 Aug 2023 14:23:42 +0000 https://craft-gogo.com/?p=3359

この記事では、さくらのレンタルサーバーにWordPressをインストールし、ブログを運用する方法について解説します。 \ この記事はこんな人におすすめ! / さくらのレンタルサーバーでこれからブログを始めたい人 はじめに […]]]>

この記事では、さくらのレンタルサーバーにWordPressをインストールし、ブログを運用する方法について解説します。

\ この記事はこんな人におすすめ! /

さくらのレンタルサーバーでこれからブログを始めたい人

はじめに

WordPressとは

WordPressは、オープンソースのウェブコンテンツ管理システム(CMS)です。テーマという仕組みを通じて、機能やデザインを拡張・カスタマイズでき、ブログやホームページを簡単に作成・管理することができます。

さくらサーバーの特徴と利点

さくらのレンタルサーバ最大の魅力は、コストパフォーマンスです。425円/月というリーズナブルな価格からWordPressを開始することができます。

従来、速度面が不安でしたが、2022年2月よりHDDからSSDに刷新したことによって、速度が従来比5倍に向上しました。

さくらのレンタルサーバーを選ぶべき理由は、こちらの記事で解説していますので参照して下さい。

準備作業

さくらサーバーとの契約

さくらのレンタルサーバでWordPressを運用すると決めたら、まずは契約です。個人ブログなら、おすすめはスタンダードプランです。

\ さくらのレンタルサーバ詳細はこちら /

このブログもさくらのレンタルサーバで運用してるよ。

ドメインの取得

インターネット上にブログを公開するには、ドメインを取得する必要があります。ドメインとは、インターネット上の住所のことです。Googleでしたら「google.com」になります。

ドメイン取得は、独自ドメインを取得する方法、サービスが提供しているドメインを取得する方法があります。独自ドメインは、ユーザーの所有物となるため、下記表のメリットがあります。デメリットとしては取得・維持費用がかかることです。

独自ドメイン

メリットデメリット
名前を好きなように選べる
信用が高く、Google検索で有利になる
レンタルサーバー移行しても同じ名前で使い続けられる
取得・維持費用がかかる

一方、サービスが提供しているドメインは、追加費用は必要ありません。ただし、サービス提供元の制約を受けたり、Googleに優遇されにくいなどのデメリットがあります。

家に例えると、独自ドメインは持ち家、サービスが提供しているドメインは賃貸のイメージです。

独自ドメインはさくらサーバーで取得できますし、お名前.comなどでも取得することができます。

さくらで独自ドメインを取得する場合

コントロールパネル > ドメイン/SSL から「ドメイン新規追加」を選択。

独自ドメインの新規申し込みをします。

さくら以外で独自ドメインを取得する場合

お名前.comやMuuMuu Domainが有名です。

\クリックしてドメイン取得/

\クリックしてドメイン取得/

お名前.comやMuuMuu Domainは、さくらのレンタルサーバより維持費が安めです。

独自ドメインを取得したら、さくらのコントロールパネルでこのドメインを追加します。コントロールパネル > ドメイン/SSL から「ドメイン新規追加」を選択し、他社で取得したドメインを追加します。

さくら提供のドメインを取得する場合

さくらサーバーの場合、契約すると初期ドメイン(.sakura.ne.jp)が与えられます。初期ドメイン以外を取得したい場合は、コントロールパネル > ドメイン/SSL から「ドメイン新規追加」を選択し、さくらインターネットのサブドメインを取得しましょう。

ドメイン名の種類は自由に選べません。

MySQLデータベースの作成

WordPressをインストールする前にデータベースを作成しておく必要があります。コントロールパネルから「データベース」を選択しましょう。

続いて「新規追加」を選択します。

データベース名を入力して「作成する」を押すと、MySQLデータベースが作成されます。

WordPressのインストール

いよいよWordPressのインストールです。さくらではWordPressインストールは簡単です。

コントロールパネルから「WordPressインストール」を選択。

WordPressのインストール画面に移動します。まず、インストールURL項目で、取得したドメインを選択します。次に利用データベース項目で作成したデータベースを選択しましょう。このときデータベース接続パスワードが必要です。テーブルの接頭語項目は自動的に入力されるので、特に変更する必要はありません。

サイトのタイトルは決まっていれば入力して下さい。後からも変更可能です。続いてWordPressユーザー、パスワード、メールアドレスを入力しましょう。

最後にライセンス、利用規約をよく読んで同意し、「作成する」ボタンをクリックすればWordPressがインストールされます。

コントロールパネルのWebサイト/データ > インストール済みパッケージにWordPressが追加されていたら、WordPressのインストール完了です。

管理画面URLをクリックすると、WordPressの管理画面に移動します。

先ほど設定したユーザー名、パスワードを入力することで管理画面に入ることができます。

SSL使用によるセキュリティ対策

SSL(Secure Socket Layer)を使用していないと通信の途中で情報が第三者に盗み見られてしまう可能性があります。そんなブログサイトを閲覧しようと思いませんよね。SSL使用は必須です。SSL使用する方法について説明していきます。

コントロールパネル ドメイン/SSLの「設定」ボタンを押します。

「SNI SSLを利用する」を選択しましょう。SSLを利用することで「https://・・・」で始まるアドレスのサイトに接続できるようになります。ただし、「http://・・・」で始まるアドレスのサイトも接続できてしまいます。そこで「HTTPSに転送する」を選択します。

これによって、「http://・・・」で始まるアドレスサイトに接続したら「https://・・・」で始まるアドレスに転送されるようになります。

まとめ

この記事では、さくらのレンタルサーバーにWordPressをインストールし、ブログを運用する方法について解説しました。

\ WordPressセットアップのおさらい /

  • さくらサーバーとの契約
  • ドメインの取得
  • MySQLデータベースの作成リスト
  • WordPressのインストール
  • SSL使用によるセキュリティ対策

さくらのレンタルサーバーでこれからブログを始めていきましょう!

]]>
ブログをこれから始める人は、安価なさくらレンタルサーバーがお薦め! https://craft-gogo.com/rental-server/ Mon, 14 Aug 2023 09:24:15 +0000 https://craft-gogo.com/?p=3294

この記事では、これからブログを始める初心者にとってお薦めなレンタルサーバーを解説します。 調査対象は、信頼性を重視してシェア率上位3社としました。Xサーバー、ロリポップ、さくらです。 結論としては、ブログをこれから始める […]]]>

この記事では、これからブログを始める初心者にとってお薦めなレンタルサーバーを解説します。

調査対象は、信頼性を重視してシェア率上位3社としました。Xサーバー、ロリポップ、さくらです。

結論としては、ブログをこれから始める初心者は、サーバー維持費が気になると思いますので、コストパフォーマンスが魅力的なさくらがお薦めです!

速度を重視するならXサーバー、容量重視ならロリポップを選択しても良いかと思います。

この記事はこんな人にお薦め!
 
ブログをこれから始める上で、レンタルサーバー選びに悩んでいる人

この記事は2023年8月時点の情報です

競合3社のプラン比較

今回は、WordPressでブログを運用する前提とします。比較対象はシェア率上位3社のXサーバー、ロリポップ、さくらの中で、趣味ブログに適した安価なプランを比較してみました。

比較項目は、料金、ドメイン、速度、ディスク容量、転送量、MySQL個数、無料SSLの有無、サポート体制です。

スクロールできます
機能Xサーバー
スタンダード
ロリポップさくら
スタンダード
ライトベーシック
月額料金990円(36カ月)
1100円(12カ月)
220円(36カ月)
418円(12カ月)
550円(36カ月)
990円(12カ月)
425円(36カ月)
437円(12カ月)
初期費用無料無料無料無料
ドメイン取得2つ無料
(.com,.netなど)
※24カ月以上の契約
※2つ目は.com,.netなどは

選択不可
別途取得必要

1,408円/年
※お名前.comで.comを
取得した場合
 2つ無料
(.com,.netなど)
※2つ目は.com,.netなどは
選択不可
別途取得必要

1,408円/年
※お名前.comで.comを
取得した場合
実質
月額料金
990円(36カ月)
1100円(12カ月)
337円(36カ月)
535円(12カ月)
550円(36カ月)
990円(12カ月)
542円(36カ月)
554円(12カ月)
速度及び
ディスク容量
NVMe SSD
300GB
SSD
200GB
SSD
400GB
SSD
300GB
転送量無制限無制限無制限無制限
MySQL
個数
無制限1個無制限50個
無料SSL
の有無
サポート
体制
 チャット: 平日10:00-18:00
電話: 平日10:00-18:00
 チャット: 平日10:00-18:00チャット: 平日9:30-13:00,
14:00-17:30
電話: 平日10:00-18:00
 チャット: 平日10:00-18:00
電話: 平日10:00-18:00
  チャット: 平日10:00-18:00
お薦め度☆☆☆☆☆☆☆
WEB
ページ
2023年8月時点の情報

月額料金

月額料金は、ロリポップのライトプランが220円/月(36カ月)と断トツに安いです。

しかし、初心者にとってはブログが長続きするか不安で、36カ月払いは勇気がいる決断だと思います。

12カ月払いにすると月額料金は、ロリポップライトプランが418円/月になるのに対し、さくらのスタンダードプランが437円/月とほぼ同額です。月額料金を重視するのであれば、ロリポップのライトプランかさくらのスタンダードプランを選択するべきでしょう。

安いと訳ありなんじゃないのと思う人がいるかもしれません。結論、訳ありです。安い分、何かを削らないと商売成り立つはずがありません。機能で差が出てきますので比較していきましょう。

ドメイン

ロリポップのライトプラン、さくらのスタンダードプランは月額料金が安い分、ドメインが無料でついてこないので注意が必要です!

もし、お名前.comでドメイン取得・維持した場合は1,408円/年、月額に換算すると117円/月かかってしまいます。この金額も考慮しないといけません。しかし、ドメイン取得・維持費を加算したとしても実質月額料金はロリポップのライトプランで535円/月(12カ月)、さくらのスタンダードプランで554円/月(12カ月)です。これでもXサーバーのスタンダードプラン、ロリポップのベーシックプランより500円/月ほど安いです。

Xサーバーのスタンダードプラン、ロリポップのベーシックプランは2個までドメイン無料と謳っていますが、こちらも注意が必要です。「.com」など人気のあるドメインは、2つ目選択不可です。聞いたことないドメイン名使用は、ブログサイトの信用問題に関わります。実質無料ドメインは1つと考えてよさそうです。

\クリックしてドメイン取得/

速度

ブログページの表示速度はユーザーの離脱度に大きく影響があると言われていますので、レンタルサーバーの速度は重要です。

SSDを使用していることが大前提でしょう。4プランの中でもXサーバーはNVMe採用のSSDを使用していますので、速度重視の方はXサーバーのスタンダードプラン一択です。

さくらサーバーは2022年2月よりHDDからSSDに移行しましたので、遅いという印象は過去のものになりつつあります。

ディスク容量

比較したプランのディスク容量範囲は、200~400GBです。ディスク容量が大きいに越したことはありませんが、ブログ1記事あたりの容量は大したことなく、初心者は200GBあれば十分でしょう。動画もたくさん載せたいという人もいるかと思いますが、動画を載せる場合はYoutubeをリンク貼り付けすればよいだけです。

転送量

転送量はどのプランを選択しても無制限のため、気にすることはないでしょう。

MySQL個数

MySQL個数は、ブログの運用数に影響出てきます。ロリポップのライトプランはMySQL個数が1個のため、複数ブログを運用したい人は選択してはいけません。さくらサーバーのスタンダードプランはMySQL個数が50個ですが、さすがに50個もブログを運用できる初心者はいないでしょう。

無料SSL

ブログサイトの信用を確保するためにもSSL対応は必須です。どのプランも無料のSSLサーバー証明書Let’s Encrypt(レッツエンクリプト)を使うことができます。セキュリティ面では有料だろうと無料だろうと変わりません。企業サイト、ECサイトを立ち上げないブログ初心者は、無料SSLで十分だと思います。

サポート体制

サポート体制は、どのプランもチャット、電話ともに平日の日中しか対応しておらず頼りないです。サラリーマンは平日仕事で、夜や休日に質問したいのに!ロリポップのライトプランは電話対応すらなく、このプランはないかなと思います。

コストパフォーマンス重視派は、さくらのスタンダードプラン

\ さくらの詳細 /


ブログ初心者は、さくらのスタンダードプランをお薦めします。さくらの最大の魅力は、コストパフォーマンス。425円/月(36カ月)、454円/月(12カ月)というリーズナブルな価格設定です。さくらは速度が遅く、様々なサイトでネガティブなコメントが多かったです。2022年2月よりHDDからSSDに刷新したことによって、速度が従来比5倍に向上し、ネガは消えつつあります。

このサイトもさくらサーバーで運用していますよ。

これからブログを始める初心者は、安価なさくらサーバーで快適なブログ運営を始めましょう!

高速・安定・無料SSL付!月額425円からWordPressが使えるさくらのレンタルサーバ

速度重視派は、Xサーバーのスタンダードプラン

\ Xサーバーの詳細 /


速度重視の方は、NVMe採用SSDを使用しているXサーバーのスタンダードプランを選択しましょう。

月額料金は、990円(36カ月)、1100円(12カ月)と高めですが、ブログの表示速度が上がりSEO対策に繋がるでしょう。

初期費用無料、月額990円から、高速・多機能・高安定レンタルサーバー『エックスサーバー』

ディスク容量重視派は、ロリポップのベーシックプラン

\ ロリポップの詳細 /

ブログだけでなく、データサーバーとしても使いたい人は、ロリポップのスタンダードプランがお薦めです。Xサーバーやさくらより容量が100GB多いのが売りです。

記事をいっぱい書くからディスク容量が多い方がいいのではと思っている人がいるかもしれません。記事数が多いからといってディスク容量はあまり気にしなくてもよいでしょう。1記事=0.01GBとすると100GBあたり10,000記事となります。10,000記事は毎日記事を書き続けても約30年。その頃にはディスク容量もきっと増加しているでしょう。

サポート満足度94%!レンタルサーバー【ロリポップ!】

まとめ

本記事では、これからブログを始める初心者にとってお薦めなレンタルサーバーを解説しました。

調査対象は、信頼性を重視してシェア率上位のXサーバー、ロリポップ、さくらとしました。

ブログをこれから始める初心者は、サーバー維持費が気になると思いますので、コストパフォーマンスが魅力的なさくらがお薦めだと思います!このブログもさくらのレンタルサーバーを使用しています。

速度を重視するならXサーバー、容量重視ならロリポップを選択しても良いかと思います。

ブログをこれから始める方、この記事を参考にレンタルサーバー会社と契約しましょう!

\ さくらでWordPressを始めるならこちら /

\ ドメインを取得するならこちら /

]]>
Pythonを使ってGoogle Calendarの予定を取得する方法 https://craft-gogo.com/python-calendar/ Sun, 21 May 2023 15:28:48 +0000 https://craft-gogo.com/?p=3243

PythonからGoogle Calendarの予定を取得する方法を学んだので記事にしました。 まず、環境セットアップ方法について解説します。次に、Pythonを使って現在時刻から先の予定を取得する方法について解説します […]]]>

PythonからGoogle Calendarの予定を取得する方法を学んだので記事にしました。

まず、環境セットアップ方法について解説します。次に、Pythonを使って現在時刻から先の予定を取得する方法について解説します。

それでは始めましょう!

この記事はこんな人におすすめ!

  • Google Calendarから予定を取得するプログラムを作りたい人
  • Python初心者

環境セットアップ方法

PythonからGoogle Calendarを操作するには、Googleが公開しているGoogle Calendar APIを利用する必要があります。

そのため、Pythonスクリプトを作成する前に以下の事前準備が必要となります。

  • Google Cloud Platformでプロジェクトを新規作成する
  • Google Calendar APIを有効にする
  • OAuthクライアントIDの作成
  • OAuth同意画面の設定
  • Google クライアント ライブラリをインストール

Google Cloud Platformでプロジェクトを新規作成

Google Calendar APIは、Google Cloud PlatformというGoogleが提供するクラウドコンピューティングサービスで有効化することができます。

これらを有効化するには新規プロジェクトを作成しなければいけません。

Google Cloud Platformのページを開き、左上のバーを選択して新しいプロジェクトを選択しましょう。

プロジェクト名を入力して作成ボタンを押すと、新規プロジェクトが作成できます。

Google Calendar APIを有効化

続いてGoogle Calendar APIを有効化します。

Google Calendar APIは、Google Calendarから予定を取得したり、予定を作成するためのAPIです。

「APIとサービス」→「ライブラリ」を選択します。

Google Calendar APIを検索し、有効にします。

OAuthクライアントIDの作成

PythonスクリプトからGoogle CalendarにアクセスするにはクライアントIDを取得する必要があります。

[APIとサービス]>[認証情報]>[認証情報を作成]>[OAuthクライアントID]をクリック。

アプリケーションの種類は「デスクトップアプリ」を選択。名前は適当に入力し、作成をクリックします。

JSONファイルをダウンロードしておきましょう。

OAuth同意画面の設定

PythonからGoogle CalendarにアクセスするとGoogleの同意画面が表示されます。その際の同意画面を設定します。

メニューの[OAuth同意画面]からUser Type「外部」を選択し、「作成ボタン」をクリックします。

アプリ名、ユーザーサポートメール、デベロッパーの連絡先情報を入力して、「保存して次へ」ボタンをクリック。

続いてアクセス権を設定します。

Google クライアント ライブラリをインストール

今度はPython側の準備です。Googleクライアントライブラリをインストールします。

ターミナルで以下のように打つとGoogleクライアントライブラリがインストールできます。

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Pythonを使って現在時刻から先の予定を取得

ここからはPythonスクリプトの解説です。

サンプルスクリプト

下記は現在時刻から先の予定を取得するPythonサンプルスクリプトです。

from __future__ import print_function
import datetime
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']

def main():
    creds = None
    
    # token.pickleファイルにユーザーアクセストークンとリフレッシュトークンが保存され、
    # 認証が初めてのときにtoken.pickleは自動的に作成される
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
        
     # 資格情報が有効でなければ、ユーザーログインさせる
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
            
        # 次回実行時には認証が省略される
        with open('token.json', 'w') as token:
            token.write(creds.to_json())

    try:
        service = build('calendar', 'v3', credentials=creds)
        # Calendar情報の取得
        now = datetime.datetime.now().isoformat() + 'Z'
        print('現在時刻から先の予定を10個取得')
        events_result = service.events().list(calendarId='******@group.calendar.google.com', timeMin=now,
                                              maxResults=10, singleEvents=True,
                                              orderBy='startTime').execute()
        events = events_result.get('items', [])
        if not events:
            print('予定が1つもありませんでした')
            return
        # 取得したカレンダー情報を表示
        for event in events:
            start = event['start'].get('dateTime', event['start'].get('date'))
            print(start, event['summary'], event['location'], event['description'])
            
        
    except HttpError as error:
        print('An error occurred: %s' % error)

if __name__ == '__main__':
    main()

最初にGoogle認証を行ったのち、現在時刻から先の予定を10件まで取得します。

スクリプト解説

現在時刻から先の予定を取得

下記は予定を取得する部分です。

events_result = service.events().list(calendarId='******@group.calendar.google.com', timeMin=now,
                                      maxResults=10, singleEvents=True,
                                      orderBy='startTime').execute()
events = events_result.get('items', [])

calendarIdは何を設定すればいいの?

Google Calendarメニューの[設定]>[カレンダーの設定]>[カレンダーの統合]に移動すると@group.calendar.google.comで終わる「カレンダーID」を確認することが出来ます。

予定名・時間・場所・説明を表示

下記は予定を表示する部分です。

for event in events:
    start = event['start'].get('dateTime', event['start'].get('date'))
       print(start, event['summary'], event['location'], event['description'])

startは開始時刻、summaryは予定名、locationは場所、descriptionは説明です。

実行結果

それではPythonスクリプトを実行していきましょう!

Google Calendarには下図の予定1~4を追加しています。本日は5/21なので、予定2~4が取得できるはずです。

Pythonスクリプトを実行するとWebブラウザが立ち上がり、アカウントの選択が求められます。

アクセス許可したアカウントを選択しましょう。

自作アプリのため、「このアプリはGoogleで確認されていません」と表示されます。警告を無視して「続行」ボタンを押しましょう。

次も「続行」ボタンを押します。

ターミナルを見て下さい。予定2~4の時間、場所、説明がターミナル上に表示されるはずです。

2023-05-23T12:00:00+09:00 予定2 新宿 ランチ
2023-05-26T20:00:00+09:00 予定3 六本木 ディナー
2023-05-31T23:00:00+09:00 予定4 浅草 ジム

まとめ

PythonからGoogle Calendarの予定を取得する方法について解説しました。

  • Google Calendar APIの環境セットアップ
  • 現在時刻から先の予定を取得するPythonスクリプトの実践

この記事がPythonを学ぶ皆さんのためになれば幸いです。

独学が大変な方は、書籍やスクールを活用するのも手です。私も活用しているものを載せておきますので参考にして下さい。

最後までお読み頂きありがとうございました!

プログラミング言語の人気オンラインコース ]]>