TensorFlowで二次方程式を解く。

今度は二次方程式を同様の方法で解いてみる。 # 方程式の解を求める。 # y = a*x^2+b*x+c において、y=0となるxを求める。 # xをVariableとし学習対象とする。 # 係数a,b,cは定数とする。 import tensorflow as tf #---------------------------------------…

TensorFlowで一次方程式を解く。

TensorFlowを用いて一次方程式(y=a*x+b)の解を求めてみる。TensorFlowを使わなくても解析的に簡単に解は出せるが、 あえてTensorFlowで訓練させた結果として解を出してみる。TensorFlowで y = a*x + b のグラフを作り、yが0になるように学習を行う。 # 方程…

ubuntu18.04でWI-U2-433DHPを有効にする。

ubuntuのバージョンを16.04から18.04にアップデートするとUSB無線LAN(WI-U2-433DHP)が認識されなくなってしまった。 16.04のときにインストールしたドライバをmakeするとエラーが出るようになってしまった。[1]https://qiita.com/diescake/items/2370dc67a0e…

バージョン確認方法

$lsb_release -a と打つ。以下のように表示される。No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.5 LTS Release: 16.04 Codename: xenial

WI-U2-433DHP

BaffaloのWiFiドングルWI-U2-433DHPをUbuntu16.04で使えるようにした。 USBに刺しただけでは使えない。 Realtekのドライバを落としてきて、ビルドして組み込む必要がある。 参考にしたサイト [1] http://kawauso-festival.blogspot.jp/2017/01/buffalowi-u2-…

Threadの使い方

C++

C++ std11で追加されたThreadの使い方。 std::threadで関数、関数オブジェクトを渡せば、その関数を別スレッドで実行してくれる。 終わった後にdetachやjoinをしておかないと、コアダンプしてしまう。 下の例では、無名関数オブジェクトを作って渡している。…

emacs上でのgdbの使い方

# 対象となるプログラムは -g オプションでデバッグシンボルを生成させておく。 # emacs上で以下入力 M-x gdbRun gdb (like this): gdb # と聞かれたら、Run gdb (like this): gdb -i=mi a.out # (デバッグしたいバイナリがa.outの場合) # gdbがemacs上で起…

SSH有効化

デフォルトだとSSHが無効化されている模様。 以下にてsshという名前のファイルを作ってやると 次回起動時にこのファイルの存在を認識し、SSHが有効になる。$ sudo touch /boot/ssh起動時の最後に以下のメッセージが出てSSHが有効になったことがわかる。 SSH …

IPアドレス固定化

WiFi接続のIPをDHCPではなく、固定にする方法/etc/dhcpcd.confに以下を追加interface wlan0 static ip_address=192.168.11.100/24 static routers=192.168.11.1 static domain_name_servers=192.168.11.1※ルータアドレスが192.168.11.1であり、 固定IPアドレ…

SWI-Prolog - emacsの設定

http://www.swi-prolog.org/FAQ/GnuEmacs.html に説明がある。 https://bruda.ca/_media/emacs/prolog.el をダウンロードし、~/.emacs.d/以下に置く。 ~.emacsを開いて (autoload 'prolog-mode "prolog" "Major mode for editing Prolog programs." t) (add-…

C++で生成したデータをmatplotlibでグラフ表示

ロジックはC++で書きたく、一方グラフ表示までC++で実現するのが少し面倒だったので表示部分はpythonのmatplotlibを使うことにした。 データの引き渡しは本来であれば何らかのIDLを使うのがスマートかもしれないが、安易にファイル渡しとした。先ず、C++のプ…

C++でのファイル書き込み

C++

C++でのファイルへの書き込み #include <iostream> #include <fstream> int main() { std::cout << "Hello" << std::endl; std::ofstream file("test.txt"); file << "Hello"; file.close(); return 0; }</fstream></iostream>

robo car 3

測距センサで前方の障害物との距離を測定し自動的に停止する。 障害物が無くなればまた動き始める。 #include "mbed.h" //----------------------------------------------------------- Serial pc(USBTX, USBRX); //--------------------------------------…

素数

素数を列挙するプログラム -------------------------------------------------- -- prime.hs -------------------------------------------------- import System.Environment(getArgs) -------------------------------------------------- -- prime 2 0 l…

測距センサ

シャープの測距センサ(GP2Y0A21YK0F)の値をLPC1768のADで読み取りLEDを点灯させる。 #include "mbed.h" //----------------------------------------------------------- Serial pc(USBTX, USBRX); DigitalOut myled(LED1); //-----------------------------…

素因数分解

素朴な素因数分解のHaskell版 Integerを使っているので桁数を気にしなくてよい。 -------------------------------------------------- -- factors.hs -------------------------------------------------- import System.Environment(getArgs) ------------…

素因数の素朴な求め方

C++で力技で素因数分解するプログラム 使用する場合はfactors(100)とかすれば、 コンソールに素因数が出力される。再帰を使っているので、因数が多すぎるとスタックオーバーフローするかも。 数値はuint64_tを使っているので64bitまでが適用範囲。 #include …

bashの改行

デフォルトではCygwinのbashの改行が2行に渡る。 =>環境変数PS1を修正する。$ env | grep PS1 でPS1の内容を調べ、そこから"\n"を削除する(2つある)。 その削除したものを.bashrcに PS1="..." と書いておけば以降改行は1つになる。

自走式光追尾カー

CdSフォトトランジスタをサーボモータの上につけ、光の最も強い方向を探す。 見つけた方向に車体を回転させ、少し前進。 を繰り返し、光源に近づいていく。 #include "mbed.h" Serial pc(USBTX, USBRX); //------------------------------------------------…

LPC1768 モータドライブ

mbed LPC1768にモータドライバ()TA7291Pを接続。 可変抵抗の電圧をADで読み取り、TA7291Pの入力にPWMとして流し込む。 合わせ別のPWMでサーボモー^他の出力を生成。 結果、可変抵抗のつまみに応じてモーターの回転速度が変化し サーボが動く。 #include "mb…

Debian8.2へのGuestAdditionのインストール

Debian8.2をnetinstでインストール。 その状態でGuestAdditionをインストールしようとすると失敗する。/var/log/vboxadd-install.logには unable to find the sources of your current Linux kernel. のようにある。GuestAdditionのインストールに必要なカー…

LPC1768でのMDK-ARMデバッグ

1)LPC1768のファームウエアをアップデートする。 最新のファームウエアはCMSIS-DAPに対応しているらしい。 今回入れたのは1412122)正しくファームウエアがアップデートされたかは、mbedのドライブ内にあるMBED.HTMに書かれている。 このMBED.HTMをテキス…

mmapでのGPIO設定

mmapによるユーザランドからのGPIO制御。 デバイスドライバによる方法よりオーバヘッドが少ない。 /* gpioMmap.h */ // definition typedef enum{ E_GPFSEL_INPUT = 0, E_GPFSEL_OUTPUT = 1, E_GPFSEL_F0 = 4, E_GPFSEL_F1 = 5, E_GPFSEL_F2 = 6, E_GPFS…

無線LAN設定

無線LANのIPアドレス設定 /etc/network/interfaces を以下のように編集。(1)DHCPの場合 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp(2)IPアドレス固定の場合 al…

無線LAN状況確認

rootで以下実行$ iwlist wlan0 scan検出した無線LAN端末毎の情報が表示される。

シリアルコンソール画面サイズ変更

シリアルコンソールでログインした場合の画面サイズの変更方法 ※SSHでログインする場合はホスト側のコンソールのウインドウサイズ変更に合わせて変更できるが シリアルコンソールの場合は80×24のままとなる。.profileに以下を記述 stty rows 45 columns 1…

DCモータ制御

GPIOライブラリヘッダファイル /* gpio_control.h */ #ifndef __GPIO_CONTROL_H__ #define __GPIO_CONTROL_H__ typedef enum { E_GPIO_OUT, E_GPIO_IN } E_GPIO_DIRECTION; typedef enum { E_GPIO_1, E_GPIO_0 } E_GPIO_VALUE; typedef enum { E_GPIO_OK…

照度センサー2

前回の照度センサーの読み込みを自動起動で定周期で継続させる。 /etc/rc.localでプログラムを起動しようとしたが、うまくいかない(なぜかよくわかっていない)。 代替としてcronで定周期起動を行うこととする。rootになって、 $ crontab -e でcronのエディタ…

照度センサー

定周期で照度センサーからの値をDAC経由で読み取りファイルに保存していく。 // spi_photo_register.c #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <string.h> #include <time.h> #include <sys/time.h> #define CS 0 #define CLOCK_SPEED 2000000 #define SAMPLING_INTERVAL 60 #define PR</sys/time.h></time.h></string.h></fcntl.h></stdlib.h></stdio.h>…

ハック ラズベリーパイ Raspberry Pi 電子工作入門キット

温度センサー:MCP9700-E