Skip to content

Instantly share code, notes, and snippets.

View TonyMooori's full-sized avatar

TonyMooori TonyMooori

  • Japan
View GitHub Profile
@TonyMooori
TonyMooori / pyserial_demo.py
Created February 11, 2016 15:13
シリアルポートからpyserialでデータを受け取る
#coding:utf-8
import time
import serial
import sys
"""
参考: pyserial公式ドキュメント
[1]サイトトップ http://pythonhosted.org/pyserial/
[2]API一覧 http://pythonhosted.org/pyserial/pyserial_api.html
[3]イントロダクション http://pythonhosted.org/pyserial/shortintro.html
@TonyMooori
TonyMooori / pyserial_demo2.py
Last active February 26, 2021 18:20
pyserialでシリアルポート一覧を表示し選択させて,読み込むプログラム
import serial
from serial.tools import list_ports
import time
def select_port():
ser = serial.Serial()
ser.baudrate = 19200 # ArduinoのSerial.beginで指定した値
ser.timeout = 0.1 # タイムアウトの時間
ports = list_ports.comports() # ポートデータを取得
@TonyMooori
TonyMooori / TSP_ACO.py
Last active October 19, 2023 09:32
巡回セールスマン問題(TSP)を蟻コロニー最適化(ACO)を用いて解くプログラム
#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy.spatial import distance as dis
"""
参考URL
[1] 蟻コロニー最適化 - Wikipedia https://ja.wikipedia.org/wiki/蟻コロニー最適化
[2] 任意の確率密度分布に従う乱数の生成(von Neumannの棄却法) | Pacocat's Life http://pacocat.com/?p=596
@TonyMooori
TonyMooori / TSP_GA.py
Last active May 15, 2022 02:42
巡回セールスマン問題(TSP)を遺伝的アルゴリズム(GA)を用いて解くプログラム
#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy.spatial import distance as dis
class TSP:
def __init__(self,path=None,n_gene = 256,n_parent = 10,change_ratio = 0.1):
""" 初期化を行う関数 """
self.n_gene = n_gene # 一世代の遺伝子の個数
@TonyMooori
TonyMooori / VisualizingFourierSeries.pde
Last active February 18, 2016 06:15
フーリエ級数を可視化するプログラムです.例として矩形波の近似を行っています.
// フーリエ級数可視化クラス
class FourierPlotter {
int n_data; // データの個数
int n_approx; // 近似次数
float[][] radius; // 半径.radius[0][k]にsin成分のk次の成分が入る
float[] data; // データ
float centerX; // 中心X座標
float centerY; // 中心Y座標
float phase; // 位相のズレ
public float x; // 先端部分のX座標
@TonyMooori
TonyMooori / ImageEdgeTSP.py
Created February 16, 2016 15:57
画像のエッジを検出して巡回セールスマン問題として一筆書きの経路を探索するプログラム
#coding:utf-8
import cv2
import numpy as np
import time
import matplotlib.pyplot as plt
import pandas as pd
from scipy.spatial import distance as dis
"""
参考URL
@TonyMooori
TonyMooori / DrawEdge.pde
Last active February 17, 2016 04:21
一筆書きのデータをcsvで読み込んでフーリエ級数展開し描画するコードです
class FourierPlotter {
int n_data; // データの個数
int n_approx; // 近似次数
float[][] radius; // 半径
float[] data; // データ
float centerX; // 中心X座標
float centerY; // 中心Y座標
float phase; // 位相のズレ
public float x; // 先端部分のX座標
public float y; // 先端部分のY座標
@TonyMooori
TonyMooori / extract_wave.py
Created March 7, 2016 13:19
自己相関関数を用いて周期Tを計算し,音の繰り返されている部分を抽出するプログラム
#coding:utf-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import wave
from scipy import signal
"""
参考
[1] 波形を見る - 人工知能に関する断創録 http://aidiary.hatenablog.com/entry/20110519/1305808715
@TonyMooori
TonyMooori / EulersMethod.c
Last active March 9, 2016 06:56
オイラー法(Euler's Method)による1階微分方程式の実装例です
/* Euler法による微分方程式 f' - 2f = x の計算 */
#include <stdio.h>
#include <math.h>
double g(double x,double fx){
return x + 2.0 * fx;
}
int main(void){
int k; // ループカウンタ
@TonyMooori
TonyMooori / EulersMethod2.c
Created March 9, 2016 07:01
修正Euler法による1階微分方程式の実装例です
/* 修正Euler法による微分方程式 f' - 2f = x の計算 */
#include <stdio.h>
#include <math.h>
double g(double x,double fx){
return x + 2.0 * fx;
}
int main(void){
int k; // ループカウンタ