Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbianを使用して開発中。

【スポンサーリンク】

Python

割り込み(コールバック関数)の使い方(その1)

今日はRaspberry Piで割り込み(コールバック関数)を使う方法を紹介します。Raspberry PiにはGPIOピンの立ち上がり、立ち下がりエッジを検出した時に、指定の関数(コールバック関数)を呼び出すしくみがあります。これにより、割り込みと同じようにイベント待…

音声認識をする方法(julius)

今回は、juliusというモジュールで音声認識を行てみたいと思います。Raspberry Piではマイク端子がないので、USB接続のマイクが必要になります。 オーディオモジュールの優先順位の確認 まず、usbオーディオアダプタ(snd_usb_audio)の優先順位を確認します。…

音声合成をする方法(Open JTalk)

今回は、Raspberry Piで音声合成を行いたいと思います。Open JTalkというモジュールを使い、Raspberry Piがしゃべるようにします。音声の出力先はイヤホン端子を使用しますので、イヤホンかスピーカーをイヤホン端子に接続してください。それでは説明してい…

scikit-learnの使い方

前回はTensorFlowで機械学習による分類の手法を紹介しました。今回は、scikit-learnで未来を予測する回帰のアルゴリズムを紹介したいと思います。(scikit-learnでも分類のアルゴリズムを使うことができます。) 今回紹介する回帰のコードの概要 連続した過去3…

TensorFlowの使い方

今回はTensorFlowの使い方を紹介したいと思います。TensorFlowの公式ページにトライアルとして記載されている、MNISTデータを使用した機械学習について解説したいと思います。今回はRaspberry Piではなく、WindowsにPythonとTensorFlowを入れて動作させます…

シェルコマンドを実行する方法

今回はPythonコードでシェルコマンドを実行する方法を紹介したいと思います。ターミナルで実行しているコマンドをそのままPythonコードで実行したい、という時に、これから紹介するコードが使えます。 モジュールのインストール まず、下記の2つのモジュール…

SwampDragonの使い方 (その4)

前回まででデータベースの値を変更するとリアルタイムでWebページの値が更新されるようにすることができました。今回は、pythonからdjangoシステムにアクセスして、データベースに値を保存する方法を紹介します。 それではpythonコードを紹介します。 swampd…

SwampDragonの使い方 (その3)

前回までで、Webページにテーブルを表示するところまでできました。あと少しで、データベースの値を変更するとリアルタイムでWebページのテーブルの値が更新されるようになります。それではさっそくdjangoシステムから、データベースに値を登録してみましょ…

SwampDragonの使い方 (その2)

前回でswampdragonのプロジェクトの作成ができましたので、今回は実際にWebアプリを作って行きたいと思います。djangoと同じ部分が多いので理解しやすいと思います。 "Djangoの使い方 (その2)"のページと同じコードの場合、本ページでは説明を省略しています…

SwampDragonの使い方 (その1)

前回、djangoフレームワークの基本的な使い方を紹介しました。簡単にデータベースと紐づいたWebアプリを作ることができました。今回はもう少し踏み込んで、Swampdrgonというモジュールを使い、リアルタイムでWebページのデータを更新する方法を紹介します。d…

Djangoの使い方 (その3)

前回までで、Webページにテーブルを表示するところまでできました。あと少しで、models.pyで作成したデータ(データベースのデータ)をWebページのテーブルに表示できるようになります。それではさっそくdjangoシステムから、データベースに値を登録してみまし…

Djangoの使い方 (その2)

前回でプロジェクトの作成ができましたので、今回は実際にコードを実装してWebアプリを作成して行きたいと思います。おおまかに説明すると以下のような流れで作成します。 1. データのモデル作成 ⇒ models.pyの編集 2. データモデルからWeb表示用のデータ作…

Djangoの使い方 (その1)

今回はpythonのWebアプリのフレームワークの使い方を紹介します。とても簡単に早くWebアプリを作れますので、重宝します。少し長くなりますが、長いだけで難しくありませんので、読み進めて見てください。IoTしたい方は必見です。 作成するWebアプリの内容、…

WebSocket通信の仕方(Webページの値更新編)

今回はWebSocketを使用してWebページの値をリアルタイムで更新する方法を紹介します。htmlのjavascriptについては素人なので、Webページの表示はきれいではないですが、ご容赦ください(bootstrap等を使用すると見た目も簡単にきれいになります)。それではコ…

WebSocket通信の仕方(クライアント側)

前回からの続きです。今回はWebSocketのクライアント側のコードを紹介します。 モジュールのインストール 下記ページのモジュールを使います。インストールは、pipでコマンドを実行します。 https://github.com/Pithikos/python-websocket-server sudo pip3 …

WebSocket通信の仕方(サーバー側)

今回はPythonでWebSocket通信をする方法を紹介したいと思います。WebSocketとはWebサーバーとWebブラウザで双方向通信するため規格です。WebSocket通信を使うと、Webページの値(センサー取得値等)をリアルタイムで更新することができます。それではコードを…

Python開発環境:Eclipseを使用する方法(pydevd:リモートデバック編)

前回、前々回に引き続きRaspberry PiのPython開発環境でEclipseを使用する方法を紹介します。今回はpydevdを使用したWIndowsからのリモートデバックの仕方について記載します。 pydevdのインストール Eclipseでリモートデバックするためには、Pythonでpydevd…

Python開発環境:Eclipseを使用する方法(Remote System Explorer編)

今回は、EclipseでRemote System Explorerというパースペクティブを使う方法を紹介します。この環境を使うと、Raspberry Pi上に簡単にworkspaceを作ることができ、またpydev環境でコードを実装することができます。 Remote System Explorerパースペクティブ…

Python開発環境:Eclipseを使用する方法(Pydev編)

今回はWindowsでEclipseを使用してPython開発を行う方法を紹介したいと思います。以前、Pythonの開発環境にVisual Studioを使用する方法を紹介しましたが、Eclipseも負けてはいません。完全無料というのがやはりとてもうれしいです。それでは、Eclipseを使用…

データベース(MySQL)の使い方 : Pythonコード編

今回は、MySQLデータベースをPythonから操作する方法を紹介します。前回、前々回とMySQLについて説明をしてきましたが、今回で最後となります。 MySQLDBモジュールのインストール 下記のコマンドでpythonからMySQLデータベースを操作するモジュールをインス…

データベース(MySQL)の使い方:インストール編

今回はRaspberry Piでデータベース(MySQL)にアクセスする方法を紹介します。いろいろな種類のデータベースがありますが、お手軽なMySQLを使ってみようと思います。 MySQLデータベースのインストール 下記のコマンドでSQLサーバーをインストールします。途中…

Socket通信の仕方(クライアント側)

前回の続きでSocket通信の仕方を紹介します。クライアント側のコードは以下のようになります。 クライアント側のコード ・c_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ⇒ ソケットクラスをNewします。 ・c_socket.connect( (host, port) )…

Socket通信の仕方(サーバー側)

今回はRaspberry Piでソケット通信を行う方法を紹介したいと思います。センサー等で取得したデータを他のパソコンに送る方法はいくつかありますが、ネットワークが繋がっていれば、ソケット通信でデータを送ることができます。ネットワークは難しいから手が…

multiprocessingのQueue型変数の使い方

前回は、プロセス間で共有して使えるValue型、Array型を紹介しました。今回は、プロセス間で使用できるQueue型について説明したいと思います。このQueue型もとても便利です。 Queue型の使い方 前々回のサンプルコードを修正する形でQueue型変数の使い方を紹…

multiprocessingのValue型、Array型変数の使い方

前回、multiprocessingモジュールで並列処理をする方法を紹介しました。multiprocessingモジュールではプロセスが分かれるため、プロセス間で変数のやり取りをするには少し工夫が必要です。工夫と言っても、簡単です。ちゃんとValue型、Array型という便利な…

multiprocessingモジュールの使い方

今回はmultiprocessingモジュールの使い方を紹介したいと思います。並列処理を行う場合、このモジュールはとても便利です。multiprocessingモジュールはthreadingモジュールと似ているのですが、サブプロセスを生成して処理を行えるので、複数のCPUやCPUコア…

Pythonプログラム入門(importの使い方)

今回はimportの使い方を紹介したいと思います。規模が大きくなると、プロジェクトにpackage(フォルダ)を作成して、階層化してコードを整理しないと管理が難しくなります。package内のコードファイルをimportして関数やクラスを使用する方法を記載します。 __…

Pythonプログラム入門(スレッド 排他制御)

前回に引き続き、スレッドについて記載しようと思います。スレッドを使うとき、異なるスレッドから同タイミングで同じ変数にアクセスすると予期せぬ動作をすることがあります。これを防ぐ方法が排他制御です。 簡単に説明すると、フラグを上げている間は他の…

Pythonプログラム入門(スレッド)

今日はPythonでスレッド処理の構文を紹介したいと思います。 スレッドとは並列処理のことです。スレッドを使わなければ、基本的に上から下に順番にコードが実行されます。動作的にわかりやすいですが、順次処理ですのですべての処理が完了するまでに時間がか…

Pythonプログラム入門(クラスの継承)

今回はクラスの継承について紹介したいと思います。クラス名の後に継承したいクラス名を書くことで、継承することができます。MyClassAを継承したMyClassBをサンプルで作成しました。 クラスの継承 class MyClassA(object): def __init__(self): self.nameA …