人気ブログランキング |

タグ:クラフト ( 10 ) タグの人気記事

伊豆の旅(15)

川の近くに普通に温泉が湧いている。
流れ出すお湯は数十度はありそう。かなり熱い。
蒸気に手を近づけたが、あちっと手を引っ込めなくてはならないほど。
蒸気の方が熱いのだね^^;
桜といい、温泉といい、ここは素晴らしい資源に恵まれている。





d0108132_11553895.jpg






d0108132_11554481.jpg





-------------



【ラズベリー日記】
ワイヤレスマウスというものはどうも好きになれなかった。
マウス内の電池はどんどんゴミになるし、
充電式は電池が長持ちしないし、
2.4GHzのワイヤレスマウスは電子レンジを動かすと止まるし、
有線マウスでケーブルが邪魔になったこともないし、
PCから10mも離れたところでマウスを動かす必要がないし、
そもそも値段が高い。
ただ、ワイヤレスマウスをラズベリーパイのVolumioのリモコンとして
考えるとちょっと違ってくる。
数m離れたところで使いたいし、頻繁に使わないので
電子レンジも電池の消耗も問題ではなくなる。
ふと電気屋の広告を見たら「ワイヤレスマウス 500円」!
いつの間にそんなに安くなったのか。
まあ、そのマウスはいまいちなレビューだったので、
700円出して別のを買った。ポイントも余っていたし。
これで音量やチャンネルを変えるためにラズベリーパイのところまで
いちいち歩く必要がなくなった。


ちょっと技術的なことを追記すると、
ELECOMの2.4GHzワイヤレスマウスM-IR07DRBKはマウス本体以外に
ラズベリーパイのUSBポートに付ける無線ドングルがあるので
マウスホイールのevent番号がひとつずれてしまう。
cat /proc/bus/input/devices で確認してみると
有線マウスだとevent0なのに、ワイヤレスマウスではevent1になっている。
そこで、以前、下記の記事で紹介したプログラムclick.jsの5行目あたりを
次のように修正する必要がある。
Volumioにハード・ボリュームを付ける  および
https://tullyz.exblog.jp/27084699/

// wired wheel mouse
// var input = new InputEvent('/dev/input/event0');
// wireless wheel mouse
var input = new InputEvent('/dev/input/event1');

これでホイールもちゃんと認識され、音量を変更できるようになる。
Bluetoothのワイヤレスマウスだとペアリングをしないといけないので
また別の課題があるかもしれない。




.


by tullyz1 | 2019-03-18 14:39 | Comments(4)

続・Volumioにハード・ボリュームを付ける


去年の4月にGriffin PowerMateを買った。ラズベリーパイ3B+にインストールしてある
Volumio2(ver 2.555)に付けてボリュームにしたかったのだが、
公開されているいくつかの記事の通りにやってもモジュールのインストールでエラーが出たり
PowerMateが認識されなかったり。
仕方なく、ホイールマウスを使ってボリューム代わりにしていた。
https://tullyz.exblog.jp/26639592/

それでも諦めきれず、今回リベンジ。
仕様は、音量調整と、つまみを押すことでよく聴いているクラシック(Venice Classic)と
ポップス(Capital FM)のチャンネルを切り替えるだけ。


ちなみに、Griffin PowerMateは長野県創業支援センターのプロテックデザインで開発され、
Griffinが製造・販売したとのこと。このデザインセンスは日本人でした。


d0108132_13045118.jpg




---- 準備 ----
DAC アンプ(たとえばDigiFi誌 No.13の付録とか)をラズベリーパイに接続。
PowerMateを接続。

https://github.com/risacher/input-event から
input-event.js をダウンロード。
下記のpmate.js を用意する。

Volumio に login して
sudo su
npm install socket.io-client
npm install -g forever

/home/volumio/node_modules に input-event.js をコピー。
(書き込み禁止になっていたら、chmod 777 /home/volumio/node_modules で許可する)
/home/volumio に pmate.js をコピー。

node pmate.js & で起動。
ボリュームを回せば、Volumioの表示が連動、ボリュームを押せばチャンネルが切り替わるはず。
ダメなら、VolumioのPlayback OptionsのVolume optionsでMixer typeがHardwareに
なっているか確認してみるとか。
pmate.js は PowerMateがevent1になっている前提でコードを書いているので、
cat /proc/bus/input/devices で確認してみるとか。


よさげなら、再起動時に自動で立ち上げるために、/etc/rc.local にnodeコマンドを書く
nano /etc/rc.local で、以下をexit 0の前にコピペ
node /home/volumio/node_modules/forever/bin/forever start /home/volumio/pmate.js
再起動すれば、 pmate.jsが自動で起動されるはず。

#Linuxもnode.jsもほとんど知らない人が書いているので、おかしなところがあったら
ご指摘いただけるとありがたいです。

---- pmate.js -----

var inputevent = require('input-event');
var pm = new inputevent('event1');
// 'event1' is the file corresponding to my PowerMate in /dev/input/
// Find your eventX using cat /proc/bus/input/devices  
var io=require('socket.io-client');
var socket= io.connect('http://localhost:3000');

// set initial volume value
var vol = 3 ;
socket.emit('volume', vol);

// Create play lists if empty
socket.emit('listPlaylist');
socket.on('pushListPlaylist', function(data) {
if (data.length == 0) {

// Change whatever chennel you like to listen
socket.emit('createPlaylist',{"name":"Venice Classic Radio"});
socket.emit('addToPlaylist',{
"name":"Venice Classic Radio",
"service":"webradio",
"uri":"http://174.36.206.197:8000"
});
socket.emit('createPlaylist',{"name":"Capital FM"});
socket.emit('addToPlaylist',{
"name":"Capital FM",
"service":"webradio",
"uri":"http://media-ice.musicradio.com/CapitalMP3"
});
}
});

var playlist = 1 ;

// Change according to above channels
pm.on('keypress', pm => {
if (playlist == 1) {
socket.emit('playPlaylist',{name:"Venice Classic Radio"});
playlist = 2
}
else {
socket.emit('playPlaylist',{name:"Capital FM"});
playlist = 1
}
});


pm.on('rel', pm => {
var direction = pm.value === 1 ? 1 : -1
vol = vol + direction ;
// volume limitter
if (vol < 0) vol = 0 ;
if (vol > 50) vol = 50 ;
socket.emit('volume', vol);
});




by tullyz1 | 2019-03-11 13:40 | Comments(0)

クラフトフェア松本2018(56)






d0108132_11220026.jpg









-------------


先日の「数独」に引き続き、今日は「区割り」パズルをラスベリーパイのPythonで解くことに挑戦。
問題:
4人が6x6の正方形の土地を同じ形に分割したい(例えば全員3x3の正方形とか)。ただし、土地は上下左右でつながっていること(飛び地はダメ)と、赤と緑の土地は全員がひとつずつ欲しい(水場とか囲炉裏でもいいんですが)。どうやって区割りをすればいいでしょうか。
ちなみに、同じ形4つに分割する方法は45通りあります。そのうちひとつが、上の条件を満たします。
d0108132_10360724.png







import numpy as np

# 初期状態
q = np.zeros([7, 7], dtype=int)
q[ 1, 1] = 1
q[ 1, 6] = 2
q[ 6, 6] = 3
q[ 6, 1] = 4
red = np.zeros([7, 7], dtype=int)
red[6, 1] = red[3, 4] = red[3 ,6] = red[4, 6] = 1
green = np.zeros([7, 7], dtype=int)
green[3, 1] = green[5, 1] = green [5 ,4] = green [5, 5] = 1


def conq(pos, r, level):
   if level > 8 :
#      print r[1:8,1:8], "complete";
      if (1 in red*r) and (2 in red*r) and (3 in red*r) and (4 in red*r) and (1 in green*r) and (2 in green*r) and (3 in green*r) and (4 in green*r) :
         print r[1:8,1:8], "success"
      return
   if pos > 35 : return      for x in range (pos, 36):
      if r[x//6+1, x%6+1] == 0:
         if r[x//6+1, x%6+1 - 1] == 1 or r[x//6+1 - 1, x%6+1] == 1:
            r[x//6+1, x%6+1] = 1
            r[x%6+1, 5 - x//6+1] = 2      
            r[5 - x//6+1, 5 - x%6+1] = 3
            r[5 - x%6+1, x//6+1] = 4
            conq(x+1, r, level+1)
            r[x//6+1, x%6+1] = 0
            r[x%6+1, 5 - x//6+1] = 0      
            r[5 - x//6+1, 5 - x%6+1] = 0
            r[5 - x%6+1, x//6+1] = 0
   conq(x+1, r, level)   


conq(1, q, 1)

.

by tullyz1 | 2018-09-28 16:22 | Comments(4)

クラフトフェア松本2018(31)







d0108132_18502343.jpg


-----------


以前、「Volumioにハード・ボリュームを付ける 」という記事を書いたが
その時はホイールマウスを使って音量を変更したり、再生・停止ができるようにした。
しばらく使ってみた結果、再生・ストップよりも、左右のクリックで
よく聴く2つのWebRadio局が選べた方が便利ということでスクリプトを修正した。
Volumioで使われているAPIは
https://volumio.github.io/docs/API/WebSocket_APIs.html
などで公開されているので、これを見ながら自分がやりたいことをnode.jsでコーディングしていけばいい。
スマホで制御できるとか、音声で制御できるというのも悪くはないが
最低限のことは手で直接やった方が速い。






var Mouse = require('node-mouse');
var mouseDevice = new Mouse();

var InputEvent = require('input-event');
var input = new InputEvent('/dev/input/event0');
var eventDevice = new InputEvent.Mouse(input);

var io=require('socket.io-client');
var socket= io.connect('http://localhost:3000');

var vol = 15 ;
// initial volume value
socket.emit('getState', '');
socket.on('pushState', function(data) {
vol = data.volume ;
});

// Create play lists if empty

socket.emit('listPlaylist');
socket.on('pushListPlaylist', function(data) {
if (data.length == 0) {

socket.emit('createPlaylist',{"name":"Venice Classic Radio"});
socket.emit('addToPlaylist',{
"name":"Venice Classic Radio",
"service":"webradio",
"uri":"http://174.36.206.197:8000"
});
socket.emit('createPlaylist',{"name":"Capital FM"});
socket.emit('addToPlaylist',{
"name":"Capital FM",
"service":"webradio",
"uri":"http://media-ice.musicradio.com/CapitalMP3"
});

}
});


mouseDevice.on('click', function(e){
if (e.button === 0) {
// console.log("left click");
socket.emit('playPlaylist',{name:"Venice Classic Radio"});
}
if (e.button === 1) {
// console.log("wheel click");
// socket.emit('prev');
socket.emit('next');
}
if (e.button === 2) {
// console.log("right click");
socket.emit('playPlaylist',{name:"Capital FM"});
}
});

// volume setting
eventDevice.on('wheel', e => {
var direction = e.value === 1 ? 1 : -1
vol = vol + direction ;
// volume limitter
if (vol < 0) vol = 0 ;
if (vol > 50) vol = 50 ;
socket.emit('volume', vol);
})



by tullyz1 | 2018-09-03 16:50 | Comments(2)

Volumioにハード・ボリュームを付ける

Raspberry Piの音楽サーバーVolumioをインターネットラジオに使っている。
電源を入れるだけでいつもの放送局につながり曲が流れる。Volumioと
組み合わせているUSB DACアンプ(DigiFi No.13の付録)にはボリュームが無いので
スマホやPCでVolumioにアクセスしてWeb画面で選曲やボリューム調整を行う。
便利なのだが、困るのがスマホを使わないとボリュームが下げられないことだ。
音楽をかけっぱなしで庭に出たりするので、家人から音楽を止めてから出ろといわれる。

ハード的なボリュームを付けられないかと、先日紹介したGriffin PowerMate
(USB型ボリューム・ノブ)を検討していた。
いろいろやったのだが、node-hidモジュールがどうしてもPowerMateを認識してくれない。
しかたがないのでコンパクトマウスのホイールで代用することにした。
(PowerMateは完全にWindows専用のボリュームになった^^;)
マウスのボタンは特に要らないのだが、一応、停止と再生もできるようにした。



d0108132_13045118.jpg


こんなJavascriptコードで動いてます。

node-mouse、input-event、socket.io-client モジュールを事前にインストールしてから
Node.jsで起動させる。

node forever start click.js などとして自動起動させる。

[click.jsのコード]

var Mouse = require('node-mouse');
var mouseDevice = new Mouse();

var InputEvent = require('input-event');
var input = new InputEvent('/dev/input/event0');
var eventDevice = new InputEvent.Mouse(input);

var io=require('socket.io-client');
var socket= io.connect('http://localhost:3000');

// initial volume value
var position = 10 ;

mouseDevice.on('click', function(e){
if (e.button === 0) {
//console.log("left click");
socket.emit('play');
}
if (e.button === 1) {
//console.log("wheel click");
}
if (e.button === 2) {
//console.log("right click");
socket.emit('pause');
}
});

eventDevice.on('wheel', e => {
var direction = e.value === 1 ? 1 : -1
position = position + direction * 5 ;
// volume limitter
if (position < 0) position = 0 ;
if (position > 50) position = 50 ;
//console.log("wheel data", position );
socket.emit('volume', position);
})


いろんな方のコードを拝借しています^^;
https://volumio.org/forum/few-useful-node-scripts-t6247.html
https://volumio.org/forum/need-example-usage-getstate-websocket-t5813.html
https://senyoltw.hatenablog.jp/?page=1482403678
http://web09.hatenablog.com/entry/physical-btn-20170302
https://qiita.com/uiureo/items/a4158939e605b2b0c501
など



【追記】
一部の仕様を変更した。(左右クリックで2つのチャネルを選ぶ)
https://tullyz.exblog.jp/27084699/

【PowerMateでも動きました】
https://tullyz.exblog.jp/27479090/

VolumioのForumにもまとめの記事を書いておいた
https://forum.volumio.org/volume-control-using-wheel-mouse-t12007.html
Powermateに関しては以下のスレッドに記載。
https://forum.volumio.org/griffin-powermate-t599-20.html



by tullyz1 | 2018-04-06 14:55 | Comments(8)

スピーカー工作

相変わらず撮影には出かけていない^^;
最近はといえばスピーカー(スーパーツィーター)をまた作った。
試作品から数えて6セット目。



d0108132_11532888.jpg


-----------

交通事故の示談金(慰謝料)が入ったので、CDプレーヤーとアンプを買った。
従来のオーディオでも十分満足していたのだが、テクノロジーも進歩しているし
ひょっとしたら自分の知らない世界があるかもということで買ってみた。
CDはほとんどリッピングしたデータをPCで再生しているので、新しいプレーヤーが
必要なのかという疑問もあったのだが、Super Audio CDに対応していないレベルだったので
買い替えた。
当たり前だが、SACDなんて持っていない。とりあえずポッジャーのRosarySonataを
買った。さらに図書館に行って6枚ほど借りてきた。
リッピングしたデータを96Khz にアップサンプリングして聴き比べてみたが
ソースによってその差はまちまちだ。どっちでもいいレベルのものもあるし、全然違うものもある。
ダイナミックレンジが違うので、ピアノなんかだとよくわかる。
とりあえず、SACD(あるいはDSD)がどんなものかはわかった。

アンプはプリメインのミドルクラスのもの。USB DAC付き^^
これまではQUAD44とLM3886 を使った中華アンプ、DACはラックスマンのDA-100という
組み合わせ。QUAD44の柔らかな音と、現代的なLM3886の組み合わせが
なかなかいい仕事をしてくれていた。
今のスピーカーならこれ以上の音はいらないと思えるほどだった。
で、アンプを変えてみたのだが、それほど大きくは変わらないかなという感じ^^
まだエージングが足りないのか、QUAD44の音の方が微妙に柔らかい。
新しいアンプの方が解像感は高い感じがするが、写真同様、多少にじみがあった方が
美しく聴こえる。非球面レンズ的な音に聴こえなくもない。
見た目は新しいアンプの方がいいが、これまでのアンプでも十分いい音が出ていたことが確認できた。
また新しいアンプは25㎏もあるので腰が危なくて一人では移動できない^^;
壊れない限り、もう買い替えることはなさそうだ。



.



by tullyz1 | 2018-04-03 17:58 | Comments(6)

腕時計ディスプレイ

勤続35周年記念で会社からもらったGrand Seiko。
重すぎて使えずにずっと置時計になっていたので、ちゃんとフレームを作った。
これで立派な置時計になった。


d0108132_11344274.jpg

参考にしたのはこちら。
木製腕時計スタンド

--------------


昨年の交通事故から4カ月。ようやく示談金の交渉が終わった。
相手が100%悪い場合、自分の保険会社は交渉に関与しないので、
自分と相手の保険会社での交渉になる。
素人が保険会社と対等に交渉できるはずもないので、弁護士に依頼した。
結果的には、保険会社からの当初の提示額に対して2.5倍以上になった。
しかも私自身の作業はほとんどなし。
やはり餅は餅屋に任せるに限る。



.




by tullyz1 | 2018-03-22 11:39 | Comments(10)

トートバッグ

ネットで革を売っている人が松本で行ったイベントで革を買った。
グッチやプラダに卸しているイタリアのINCAS社のフルタンニン鞣しのカーフ(仔牛の革)で8000円。
これまで通販で買っていたものに比べると結構安かった。
大きな革なので、トートバッグを作った。
デザインは前から気になっていたgentenのアマーノの大きい方。
https://genten-onlineshop.jp/pc/item/detail.cgi?itemCd=100_40381-50&itemStat=1
トートに5万円以上も出せないので買ってない^^;
ネットの写真や仕様から型紙を起こして、縫い方を事前に検討して、
課題が一応クリアになったので週末に革のパーツを切り出した。
ペンケースくらいなら2-3時間でできるのだが、大きなトートは部分部分にそのくらいかかる。
さらに、小物なら縫い目の両側が簡単に見えるのだが、大きいトートは
片面しか見えず、反対側は指先の触感で針を通す穴を探すことになるので縫う速度がかなり遅くなる。
最悪3枚の革を縫い合わせることになるので、位置合わせも大変。
事前に縫い方を検討したはずなのに、実際にやり始めると新しい課題がいろいろ出てくる。
今回製作ノーハウはいろいろ溜っったので次はもっとうまく作れると思うが、多分もう作らない^^
結局、ほぼ丸2日かかって中敷き以外が完成した。こんなに大変だと、5万円という値段も納得がいく。
欲しくなった人は是非本物を買ってください^^




d0108132_11171072.jpg




d0108132_11172653.jpg




d0108132_11173533.jpg




d0108132_11173881.jpg



-------------
今日のハムスターの回し車の回転数: 2265回転(1.0km)






.

by tullyz1 | 2017-09-05 15:11 | Comments(12)

逃げ恥

先週、安曇野のギャラリー・シュタイネで石井希さんのペーパーからくりを妻が買ってくれた。
「逃げるは恥だが役に立つ」で平匡さんの部屋に飾られている時計みたいなもの。
恋ダンスの背景に写っている気球のようなものも石井さんの作品。
部品点数が36もあって、3時間くらいで組み立てられると聞いていたが、
それほど不器用ではない私でも4時間かかった。
来週はいよいよ最終回。
これで、いつでもみくりさんをうちにお招きできる^^


https://iseya-kuralica.stores.jp/items/57fc9b791003150b510019a2




d0108132_10541811.jpg




d0108132_10543224.jpg




d0108132_10543654.jpg




d0108132_10544146.jpg









.

by tullyz1 | 2016-12-17 11:00 | Comments(4)

ロール・ペンラップ

盆休みに作ったペンラップのひとつ。
お餞別にあげちゃうので写真だけ撮っておいた。


d0108132_165768.jpg





d0108132_171547.jpg





d0108132_17136.jpg




-----------

ハムスターは1秒で約2回、回し車を回す。
ということは時速に直すと約3.3Km
身長比で人間は約20倍なので、人間が時速66kmで走ることに相当する。
最近は夜中に700回転くらい回しているが、6分程度でこなしていることが分かる。
先日の7200回転は1時間走っていたことになる。
テレビ番組を見ている間ずっと走っていたのでそんなものだと思う。

by tullyz1 | 2014-08-22 18:13 | Comments(6)