2019年3月1日金曜日

Winning Post8 2018 攻略日記 83年編

83年編です。
史実ではミスターシービーが3冠を達成してますね。ダイナカールがオークスに勝利した
年でもあります。

前回言い忘れたのですが、82年に繁殖牝馬をたくさん購入しました。
サンエイソロン母のヤマトシャルダン、サンサン、あと海外の繁殖牝馬いっぱいです。
無理やり繁殖牝馬を増やしたのは、クラブの設立条件を満たすためです。




ロンググレイスが牝馬2冠達成!! 2年目で名声が1000になりました。
これで施設をMAXまで拡張でき、クラブを設立できます。

新たに繁殖牝馬としてシャトーハードを購入。フレッシュボイスを生んでくれます。
基本的に史実馬はクラブ所有を考えています。自己所有はおそらくロンググレイスが最後になるかと思います。

5月の種付けです。
ノーザンテースト、マルゼンスキー、ミルジョージの本株を購入しました。
あっても困らないでしょう。
My牝系の種付けは
ヤマトシャルダンー>ミルジョージ
リンダセニョリーター>パーソナリティ
にしました。とにかくリンダには牝馬を生んでほしいです。
あまりにも牝馬でなかったら産み分けも検討です。



季節は早くも秋です。
2冠馬ロンググレイスをトライアルに出すのもアレなので思い切って海外遠征に。
レースはローテ的に秋華賞と相性の良いヴェルメイユ賞です。



結果は2着でした。古馬も混ざる中よく頑張りました。
そして秋華賞は・・・



無事三冠達成です。しかもなかなか強い競馬。来年は混合G1を狙いましょう。
続いてエリザベス女王杯



このレースにはヤマノシラギクも出走。VMはブロケードに敗れましたが、この距離なら




結果はロンググレイスの3着が限界でした。ここは欲しかったなあ



ジャパンカップでアンバーシャダイが勝利。日本馬初制覇です。
カツラギエースさん・・・



ロンググレイスは今年最後の締めにアメリカンオークスに出走。
みごと一着でした。所有馬の初G1勝利です。

ちなみに今年はなぜか去年もらった馬がデビュー。ビットクラブと名付けました。
あまり期待していなかったのですが、OPまで勝ち上がりました。来年期待です。

特に有馬もドバイも出走しなかったので今年はこれで終わりです。


ロンググレイスが3冠達成。



最優秀三歳牝馬に輝きました!

83年は以上です。
来年から本格的に馬の生産が始まるので楽しみです。

Winning Post8 2018 攻略日記 82年編

82年編です。
史実ではホウヨウボーイ、ミナガワマンナなんかが有名ですね。
私は90年代生まれなのでこの辺りは全然わかりませんね。



牧場設立。名前は大都会牧場です。拠点は襟裳にしました。
前世で徳を積んだのでお守りいっぱい、資金100億円となりました。
ちなみに名前は牧場馬太郎・20歳・独身です。冠名はビット。意味は特にありません。




最初にもらえる競走馬は史実馬ヤマノシラギク。早い段階から牝馬クラシックを狙える馬です。
ある程度牝系を構築するまでのつなぎとして、やはり牝馬が良いということでこの馬にしました。史実ではG1は勝てなかったんですね。




初期幼駒は史実馬ロンググレイス。同じ理由で牝馬にしました。こっちもG1は勝てなかったんですね。



初期繁殖牝馬はリンダセニョリータ 。この馬をMy牝系に登録します。
すでに孫にサンエイソロンがいます。
トライアル3冠馬などとあだ名されているようですが、敵に回すと無茶強いです。
孫が早々にG1をとってくれるので重賞馬を出しつつ牝系繋ぐだけです。




リンダセニョリータ最初の種付けは血統と爆発力を考慮しクラウドプリンセスにしました。
この馬もよく知らないです。




あっという間に年末です。ヤマノシラギクは3冠ならず。エリ女も勝てず秋はイマイチでした。
一方ロンググレイスはホープフルでシービー撃破。今後が楽しみです。
My牝系のサンエイソロンが秋天、有馬に勝利。しかし年度代表馬はサクラシンゲキに取られてしまいました。


史実馬が快調の初年度。来年はMy牝系産駒が生まれるので楽しみです。


Winning Post8 2018 攻略日記

お久しぶりです。

最近ほとんど電子工作していないでゲームばかりしている私ですが、
ハマったゲームがひとつありまして、それがwinning post 8
馬主になって競走馬を生産・育成しながら史実の競馬の歴史をなぞるゲームとなります。
競走馬の育成もそうですが、結婚して子孫を騎手にするなんてこともできます。
競馬の知識がないと厳しいゲームですが、ハマると面白いです。

一応私は一通りの競馬の知識があり、WP8 2015年度版からちょくちょくプレイしていたのですが、ここでプレイを詳細に記録したほうが面白いのでは?と思い、攻略日記を
つけることにしました。一応攻略とはついていますが、攻略にはあんまり役に立たないかもです。

期間としては、82年スタートで全スーパーホース引退までを予定しています。
そして目標はMy牝系の自家生産馬であらゆる目標(後で設定)を達成することを目標にしています。

ちなみにゲーム設定は82年スタート、ノーマル、Bモードです。


2018年8月18日土曜日

Node.js 色々(html socket.io child_proces)

前回はnodeをwindows10にインストールし,ブラウザにHallo worldを表示
してみました.次回RaspberryPiにインストールしてみるといいましたが,
かなり昔の話で方法を忘れてしまいました.こまめにメモするんだった・・・

今回は一通りセットアップが終わったRaspberryPiを使用し,
私が良く使うモジュールについてメモしたいと思います.

RaspberryPiはsambaでファイル共有し,sshでリモート接続できるように
なっています.とりあえず適当なテストフォルダを用意しtest.js,test.htmlを
作りました.細かいことはわかりませんが,jsはサーバで実行されるプログラムで
htmlはクライアント(ブラウザ)で実行されるプログラムという認識でいいのでしょうか.



・html
接続があった場合,外部のhtmlファイルを表示させてみようと思います.
何をするにもまずはこれからですね.
test.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Client</title>
</head>
<body>
  <p>Hello World!!</p>
</body>
</html>

test.js
var app = require('http').createServer(handler)
var fs = require('fs');

app.listen(3000); // HTTPポートオープン

//接続があった場合の処理
function handler (req, res) {
//ファイルリード
  fs.readFile(__dirname + '/test.html',
  //エラーの場合の処理
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading test.html');
    }
//通常処理
    res.writeHead(200);
    console.log("Server Started!!");
    res.end(data);
  });
}

windowsのターミナルから接続し,作ったディレクトリに移動します.
node testでサーバを起動できます.
ブラウザから「RasPiのアドレス:3000」にアクセスします.
「Hello World!!」が表示できたかと思います.



・socket.io
サーバとクライアントで通信させてみようと思います.
これができるとブラウザ経由でRasPiを操作できるようになります.

htmlファイルはボタンを追加し,massageを送れるようにします.
emitでデータを送ります.送るデータはjson形式というらしい.また,
socket.ioモジュールを読み込みます.
test.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Client</title>
  <script src="/socket.io/socket.io.js"></script>
</head>
<body>
  <p>Hello World!!</p>
  <input type="button" value="on" onclick="send('hello!!')"/>
</body>
<script>
var socket = io.connect();

function send(send_data){
    socket.emit('massage',{ data:send_data});
};
</script>
</html>

jsファイルは受け取ったメッセージをコンソール上に表示します.
モジュールとしてsocket.ioを追加.onで受信した場合の処理を記述します.
test.js

var app = require('http').createServer(handler)
var fs = require('fs');
var io = require('socket.io')(app); //socket.io

app.listen(3000); // HTTPポートオープン

//接続があった場合の処理
function handler (req, res) {
//ファイルリード
  fs.readFile(__dirname + '/test.html',
  //エラーの場合の処理
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading test.html');
    }
//通常処理
    res.writeHead(200);
    console.log("Server Started!!");
    res.end(data);
  });
};

//アクセスがあった場合
io.on('connection', function (socket) {
  //massageを受信した場合
  socket.on('massage', function (data) {
    // クライアントから受け取ったデータを出力する
    console.log(data);
  });
});

同じようにnodeを起動し,ブラウザからアクセスします.
ボタンを押したら { data: 'hello!!' } が表示されると思います.



・child_proces
サーバー上のshellコマンドなどを動かしたい時,child_procesで動かすことができます.

test.jsのみ書き換え,先ほどのボタン入力があった場合に「ls -l」を実行してみたいと
思います.child_processモジュールを追加し,socket.onのところにコードを追加します.
test.js

var app = require('http').createServer(handler)
var fs = require('fs');
var io = require('socket.io')(app); //socket.io
var exec = require('child_process').exec; //child_process

app.listen(3000); // HTTPポートオープン

//接続があった場合の処理
function handler (req, res) {
//ファイルリード
  fs.readFile(__dirname + '/test.html',
  //エラーの場合の処理
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading test.html');
    }
//通常処理
    res.writeHead(200);
    console.log("Server Started!!");
    res.end(data);
  });
};

//アクセスがあった場合
io.on('connection', function (socket) {
  //massageを受信した場合
  socket.on('massage', function (data) {
    // クライアントから受け取ったデータを出力する
    console.log(data);
    
    //ls -lを実行
    exec('ls -l', function(err, stdout, stderr){
  console.log(stdout);
  });
  });
});


同じようにnodeを起動し,ブラウザからアクセスします.
ボタンを押したら以下のように表示されると思います.
{ data: 'hello!!' }
合計 28
drwxr-xr-x 41 pi pi  4096  8月 18 21:34 node_modules
-rw-r--r--  1 pi pi 10624  8月 18 21:34 package-lock.json
-rw-r--r--  1 pi pi   250  8月 18 21:34 package.json
-rwxr--r--  1 pi pi   381  8月 18 21:35 test.html
-rwxr--r--  1 pi pi   976  8月 18 21:50 test.js




ここまでで,3つのNodeモジュールを使用してみました.
実はこの3つだけで非常に幅広いことが可能になります.
例えば,ブラウザ経由で音楽をかけたり,RaspPiに接続された温度計の情報を
ブラウザに表示したりすることが可能かと思います.夢が広がりますね.

あと良く使うのはexpressモジュールですが,まだうまく扱えていないので
次回まとめたいと思います.



2018年8月17日金曜日

Node.js windows10にインストールしてみる

お久しぶりです.
2018年上半期は就活&その他イベントで忙しく,なかなか更新できませんでした.
そんな中何となくnode.jsいじっていたので,少しまとめておきたいと思います.
今回はインストールからwebサーバーのサンプルまで.

windows10はココからダウンロードできました.
インストールは特に設定もなくnextしていけばOK.
windows power shell で以下のようにバージョンが確認できれば完了です.

> node -v
v8.11.2

ウェブサーバのサンプルを試してみます.
適当なエディタで以下のようなファイルを作成.
hello_http.js



const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});



power shellで作ったファイルがあるフォルダに移動.
>cd "作ったファイルのパス"

以下コマンドでサーバ起動
>node hello_http
Server running at http://127.0.0.1:3000/

ブラウザにlocalhost:3000と入力し,アクセスできます.





これで一応windows10環境でnode.jsが使えるようになりました.
以前までの私は,慣れない中いくつものソフトをインストールしwebサーバ
を構築しやっと簡単なことができるといった感じだったのでNodeの簡単さに非常に
感動しています.

ただ私はRaspberryPiで使用する事を前提にNodeをいじっていたので,
次回からはRaspberry Piにインストールする方法と使ってみて便利だったモジュール
の紹介をしたいと思います.

2018年1月24日水曜日

温湿計付きWiFi時計を作ってみた2

前回の続きでソフト編です.

やりたいことは,
1.時間をネットワークで自動同期.
2.BME280から温度・湿度・気圧を取得
3.7セグに時間を表示
4.液晶に時計と温度等のグラフを表示
です.

1.時間をネットワークで自動同期.
NTPClientライブラリを使用します.
https://github.com/arduino-libraries/NTPClient
zipを解凍しArduinoのlibrariesフォルダに入れます.
使い方はサイトにあるサンプルのとおりです.
日本時間に合わせるには以下のように初期化します.
NTPClient timeClient(ntpUDP, "jp.pool.ntp.org", 3600*9, 60000);


2.BME280から温度・湿度・気圧を取得
ボッシュ社のセンサで,温度,湿度,気圧を取得することができます.
マイコンとの接続はI2Cです.
データシート
特に深く考えずに値を取得できればいいので,適当なヘッダを作りました.
何らかのフィルタをかけてくれていますが,動いたので良しとしました.
元のサンプルプログラムを見つけられませんでした.すいません.


3.7セグに時間を表示
マトリクスLCDドライバ,HT16K33を使用しています.接続はI2Cです.
コレも深く考えずヘッダを作成.以前の記事を参考にしています.
数字の点灯パターンをあらかじめ宣言しておきます.


4.液晶に時計と温度等のグラフを表示
コレを一番頑張りました.マイコンから液晶を触るのはとても大変で
何時間もデータシートとにらめっこすることになりますが,
しかしこの液晶は使いやすいライブラリが公開されているのでプログラミングは楽です.
Adafruit_GFX.hとAdafruit_ST7735.hを使用します.
コチラを参考にさせて頂きました.

4つの画面(時計,温度,湿度,気圧)をボタンで切り替えられるようになっています.
それぞれの画面は必要領域のみ更新し,チラつきを抑えます.
また100ms割り込みでボタンを監視し,一定時間以上入力がなければ
自動でOFFになります.
コレの画面のレイアウトに開発時間の大半を費やしました.




結構気に入っていてたまに画面を切り替えてはニヤニヤしています笑
実用性もなかなかあり,時計はもちろんエアコンや加湿器の
電源を入れる目安にしています.
ネットワーク上から見れたりすると便利かなと思いますので時間が
あればいじりたいと思います.

以下使用プログラム
ESP-WROOM-02_digital_clock
BME280
SEG7_LED

2018年1月23日火曜日

eagle+elecrowで基盤外注してみた

あけましておめでとうございます.caketetuです.

前回の投稿からずいぶん時間が経ってしまいましたが,
年末にElecrowにPCB基盤を外注した話です.

基板外注業者は,最近増えていて結構な数がありますが,
Elecrowを選んだのは,価格と納期です.
品質に難ありと聞きますが,それは設計段階である程度カバーしようかと.

今回はお試しということで以前ユニバーサル基盤で作った
温湿度センサ付きWIFI時計をPCB基盤で作ってみます.

回路図です.

あとで気づきましたが,マイコンからトランジスタへの
配線は,直結しないと電流が足らず液晶が点灯しないようです.



ガバーデータ作成にはeagleを使いました.詳しい使い方はここでは
割愛しますが,作成の手順としては

1.schematicで回路図を作成
2.boardを開き部品を配置
3.Net classesを設定し,オートルーティングを実行
4.気になるところを手作業で変更
5.DRCを実行し,ガーバー出力

実際の作成では,回路図の前にライブラリの編集作業がありました(これが
結構大変だった...).
自分はeagle/lbr下にマイライブラリフォルダを作成しています.

5.ではElecrowで設定ファイルをダウンロードしておきます.

できたものがコチラ



できたガバーデータのうち必要なものをzipで圧縮します.
出来上がり図を見たいですが,Elecrowサイトでは見ることが
できないので,fusionPCBサイトで確認します.






確認したらElecrowで発注するだけです.特に困ることはない
と思います.今回は,2層基板5枚,色は緑でその他はすべて
標準の設定で発注しました.

運送業者はOSCが早いみたいです.納期を気にしなければ
安いものでいいと思います.

2017 12/24 発注
2017 12/29 作成された基盤のメールが届く
2017 12/31 自宅に到着

早いですね.大体一週間ぐらいで届きます.
気になる料金は
基板代 $4.9
配送料と手数料 $13.23
合計 $18.13
でした.日本円で2000円ぐらいです.
配送オプションによってもっと安くできます.

届いたのがこちら.7枚届きました.






気になるところは特に無しです.
スルーホールが良く見えない箇所がいくつか存在しましたが,
内部ではきちんとつながっているようです.

完成




致命的なミスによりジャンパを余儀なくされました...






現在は,このような基盤の外注も簡単にできます.
やはりPCB基盤の方が完成度が高く,コンパクトにできる
所がいいですね.
今後も,コレだ!と思う基盤ができたら,積極的に活用
しようと思います.