2017年2月12日日曜日

DIY、ファルカタ集成材って何?

スピーカーのケースを作ってみたいなぁと思い、
近所のホームセンターをみてきましたところ、
ファルカタ集成材という木材が使いやすそうに
おいてありました。

ファルカタ集成材って何?と疑問がでてきましたので

Google先生に聞いてみましたところ、

インドネシア原産のマメ科植物を、繊維方向に互いに重ね
合成樹脂で接着したもの。だそうです。

色は黄白色、柔らかく軽くカッターで切断できる。とのこと。

税込141円、サイズ 6mm x  90mm x  600mm
税込183円、サイズ 6mm x 120mm x  600mm





2017年2月11日土曜日

PythonのIDEにNetbeans8.1日本語版はいかがでしょうか。

PythonのIDEにNetbeans8.1日本語版を使用することにしました。
数年前に使ったことがあったので親しみがあります。

現時点(17/2/11)では、8.2が最新のようですが
Pythonプラグインが見つからなかったので、
今回は8.1をインストールすることにしました。

参考にしたサイトはこちら
NetBeansにpythonプラグインをインストールする。

アンインストールするには、 uninstall.sh を実行。
(インストールしたフォルダから検索する)

NetBeansはこちらのサイトからDL。
NetBeans IDE 8.1 ダウンロード
プラグインはこちらのページからDL。
Python support for NetBeans IDE 8.1

netbeans-8.1-cpp-linux-x64.sh に実行権を与えて実行。
指示に従いインストールを完了させる。プラグインはサイト参照。
以上。

PyAutoGUI

以前、pythonで左クリックを連打してみる。
pythonでGUI操作を自動化してみる。
で xautomation を使用してGUI操作をPythonで遊んでみましたが、
最近は、 PyAutoGUI という、もう少し便利になったものがあるようです。
いつになるかわかりませんが、「Tkinter」を使って、
複雑な左クリックを連打してみたいと思います。


Welcome to PyAutoGUI’s documentation!


ubunt16.04にインストールするには

sudo apt-get install python-xlib scrot
pip install pyautogui
 
 
サンプルコード

# -*- coding: utf-8 -*-  
# Copyright © 2017 takeshi
import pyautogui

screenWidth, screenHeight = pyautogui.size()
print screenWidth, screenHeight
s = pyautogui.screenshot()
s.save('screenshot1.png') 
 
 

2017年1月30日月曜日

ジャンクEPSON EP-801Aを購入

実家近くのハードオフで、ジャンクEPSON EP-801Aを
100円で購入。 分解して部品取りをする予定。
時間なくそのまま捨ててしまうかも。

2017年1月22日日曜日

Raspberry pi 3、wifiを設定してみる。

Raspberry pi 3、wifiを設定してみる。

参考にしたページはこちら。
Raspberry Pi 3を買ってMacを使ってWiFi接続とSSHの接続するまで
http://qiita.com/toshihirock/items/8e7f0887b565defe7989


自宅のSSIDPASSPHRASEを設定する。

sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'


生パスワードを削除する。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="hoge-fuga"
    #psk="xxxxxx" <-このコメントアウトを削除
    psk=eca950...
}


以上、設定完了。

Raspberry pi 3、USBカメラの画像をSimpleCVで保存

Raspberry、USBカメラの画像をSimpleCVで保存


USBカメラが余っていたので、Raspberryで有効活用を考えてみた。
監視カメラがいいですよね。
定期的にJpeg画像を保存するなら、簡単そうなのでやってみた。


USBカメラのチェック

lsusb

該当するusbデバイスが確認できればOK


今回はPythonでSimpleCVを使用してUSBカメラの画像を保存するようにします。

SimpleCVをダウンロードします。

Latest Stable Release: SimpleCV Version 1.3 Superpack
http://simplecv.org/download/


さて、ここからがインストールに時間かかりました。

ダウンロードしたdebパッケージをインストールするために

sudo apt-get install gdebi -y
sudo gdebi SimpleCV-1.3.deb

完了したら、適当なファイル名test.pyで

!/usr/bin/python
from SimpleCV import Camera, Image
from datetime import datetime
import time
path = "/home/user/Documents/raspberrypi/"
camera = Camera()
time.sleep(3)
img = camera.getImage()
fileName = datetime.now().strftime("%Y%m%d%H%M%S") + ".jpg"
img.save(path + fileName)
print("save image")
time.sleep(1)

を実行、cronに設定すれば時間毎に保存してくれます。

2017-01-11-raspbian-jessie-lite

2016年3月6日日曜日

AVRISP mkⅡでArduinoのスケッチを書き込む


http://ehbtj.com/electronics/arduino-sckech-avrisp-mkii

ここを参考にした。

秋月電子arduino互換168Pのブートローダー書き込み


数年前に購入した 秋月電子arduino互換168P を押入から取り出してセットアップした時のメモ



秋月電子arduino互換168Pのブートローダー書き込み

ブートローダー用のATmegaBOOT_168.hex を書込みます。http://www.arduino.cc/playground/uploads/Learning/bootloader168.zip 

 『ATmegaBOOT_168.hex』


 Atmel Studio 7、AVRISP mkⅡで、書き込み。

 Fuses



 ECTENDED : 0xF8
 HIGH : 0xDF
 LOW : 0xFF

LockBits

 LOCKBIT : 0xCF


以上で完了。

Arduino1.6.7 IDE では、『Duemilanove or Diecimila , ATmega168』で書き込みできた。






2016年2月20日土曜日

電工作、回路図作成ソフト『Fritzing』

電子工作の回路図作成ソフト 『Fritzing』





ダウンロードはここ からしてください。
 使い方は Google先生 に聞きます。

各種パーツは、

 ① https://github.com/fritzing/
 ② 無料ダウンロード:Fritzing 部品一覧




上記①②からDLする。

プロジェクトを、http://fritzing.org/projects/ から探して *.fzz をダウンロード。

以上

2016年2月15日月曜日

ubuntu14.04 インストール直後にやること


ubuntu14.04 インストール直後にやること

『デスクトップ』『音楽』などの日本語フォルダー名を英語表記にする

端末で入力。

env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update

「Update Names」ボタンをクリックする。一旦ログアウトして再度ログインすると、ダイアログが表示されてフォルダー名を日本語にするか聞かれるので、次回から表示しないをクリックしてチェックを入れた後、「古い名前のままにする」ボタンをクリックする。



ffmpegをubuntu14.04-64bitでビルドする

h264のエンコーダにx264を使う場合を想定

sudo apt-get update
sudo apt-get install build-essential automake autoconf zlib1g-dev libtool libx264-dev yasm
wget http://ffmpeg.org/releases/ffmpeg-2.6.tar.bz2
tar xjf ffmpeg-2.6.tar.bz2
cd ffmpeg-2.6
./configure --enable-libx264 --enable-gpl
make
sudo make install


2015年12月31日木曜日

Ubuntu14.04 Startup-manager インストール

Ubuntu14.04 Startup-manager インストール


Ubuntu と Windows をGRUBを使ってデュアルブートしている。
立ち上がる順番を編集したいが、以前使用していた
Startup-manager の代わりに Grub Customizer を
インストールすればGUIで編集できるようになる。










ICON『Grub Customizer』

















コマンドは下記参照


sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
 
Try Grub Customizer
 

2015年12月28日月曜日

Chumbyの使い方

押入れの段ボールにしまってあった『Chumby one』を取り出した。
めちゃくちゃ久しぶりに。。。

http://www.chumby.jp/

電源ON、Wifiでインターネットに接続、無事起動。

取り急ぎ、置時計とMP3プレイヤーとして使用。

今後、使い方を検討してみる。



2012年10月11日木曜日

pythonで、音声合成(AquesTalk2)を試してみた。

pythonで、音声合成(AquesTalk2)を試してみた。

AquesTalk2のダウンロードとインストールは、こちらを読んでね。

Linuxでの共有ライブラリーの読み込み方に苦戦しましたが、なんとか成功。
POINTERの使い方を見つけるのにめちゃくちゃ時間がかかってしまった。
評価版は、ナ行とマ行がヌに変換されるので、雰囲気をつかむだけですが、 結構快適に使えそうです。でも、作り込むなら OpenJTalk の方がよさげ。


import wave
import pyaudio
import StringIO
from ctypes import *

lib = cdll.LoadLibrary("libAquesTalk2.so.2")

str    = c_char_p("わたしたわしわたしたわ、なにぬねの、まみむめも、あかさ")
size   = c_int(10)

lib.AquesTalk2_Synthe_Utf8.restype = POINTER(c_char)
wav_p = lib.AquesTalk2_Synthe_Utf8(str,100, byref(size),0)

print("size is %d" % size.value)
output = StringIO.StringIO(wav_p[:size.value])
wf = wave.open(output, "rb")

# ストリームを開く
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

# チャンク単位でストリームに出力し音声を再生
chunk = 1024
data = wf.readframes(chunk)
while data != '':
    stream.write(data)
    data = wf.readframes(chunk)
stream.close()
p.terminate()

lib.AquesTalk2_FreeWave(wav_p)
output.close() 

2012年9月25日火曜日

pythonで、お知らせを表示する。(pynotify)


pythonで、pynotifyを使って、お知らせを表示する。



import pynotify
pynotify.init("My App")
n = pynotify.Notification("Title", "Message", "/path/to/my/icon.png")
n.show()


表示する時間などを設定できるようなので、次回調べることにする。

2012年9月23日日曜日

pygtk で Dialog Box を表示する。

pygtk の勉強を再開しました。日本語の説明が少ないので、のんびりと進行中。

ダイアログをモーダレス表示したくて色々調べていたら、モーダル表示 gtk.Dialog があるとわかったので早速試してみました。

日本語の説明はこちら


def dialog(self,im,txt):
        dlg = gtk.Dialog("タイトル", self.window, 0, (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))

        dlg_image = gtk.Image()
        dlg_image.set_from_pixbuf(im)
        dlg_label = gtk.Label(txt)
        dlg_label.set_width_chars(30)
        dlg_label.set_line_wrap(15)

        dlg.vbox.pack_start(dlg_image)
        dlg.vbox.pack_start(dlg_label)
        dlg.show_all()
        dlg.run()
        dlg.destroy()


これなら、手軽にダイアログ表示ができて便利、vboxのみ利用可能のようです。

ダイアログをモーダレス表示する場合は、普通にウィンドウを表示するだけでいいようです。次回、試してみます。

2012年9月22日土曜日

pythonで左クリックを連打してみる。

pythonでGUI操作をする xautomation を使って、左クリックを連打するGUIを作成しました。意外にも、使いやすかったので重宝してます。

マウスカーソルの位置を記憶したら、連打ボタンかダウンボタン(左を押し続ける)を押すだけ。 みるみるゲームが進むのは爽快です。指が痛くならずに済みます。



import os
import time
import sys
try:
  import pygtk
  pygtk.require("2.0")
except:
  pass
try:
  import gtk
  import gtk.glade
except:
  sys.exit(1)

def xte_click(x,y,interval):
    # xautomation を左ボタンを連打
    os.system("xte 'mousemove %d %d'"%(x,y))
    x1, y1 = x,y
    while True:
        cmd = "xte 'mouseclick 1'"
        os.system(cmd)
        time.sleep(interval)
        a, x2, y2, b = gtk.gdk.display_get_default().get_pointer()
        if x1!=x2 and y1!=y2:
            break
        else:
            x1,y1 = x2,y2

def xte_down(x,y):
    # xautomation を左ボタンを押しつづける
    os.system("xte 'mousemove %d %d'"%(x,y))
    x1, y1 = x,y
    cmd = "xte 'mousedown 1'"
    os.system(cmd)
    while True:
        a, x2, y2, b = gtk.gdk.display_get_default().get_pointer()
        if x1!=x2 and y1!=y2:
            cmd = "xte 'mouseup 1'"
            os.system(cmd)
            break
        else:
            x1,y1 = x2,y2


class pygtk_builder:
    def __init__(self):

        #print os.path.dirname(__file__)
        #while True:
        #    pass

        self.builder = gtk.Builder()
        # mainwindow.gladeファイルから画面を作成
        #self.builder.add_from_file("mainwindow.glade")
        buff = """




True
True
True
X:
0
50
TrueTrue

1
True
Y:
2
50
TrueTrue

3
True
間隔:
4
50
TrueTrue

5
0
True

位置記憶
TrueTrue
True

0
連打開始
TrueTrue
True
1
マウスダウン
TrueTrueTrue

2
1
"""

        self.builder.add_from_string(buff)


        #windows1というオブジェクトを取得
        self.window = self.builder.get_object("window1")

        # gladeファイルで定義されているシグナルを自動で接続
        self.builder.connect_signals(self)
        signal_dic = { "gtk_main_quit" : gtk.main_quit }
        self.builder.connect_signals(signal_dic)

        # オブジェクトの初期化
        self.entry_x = self.builder.get_object("entry_x")
        self.entry_y = self.builder.get_object("entry_y")
        self.entry_interval = self.builder.get_object("entry_interval")

        self.entry_x.set_text("0")
        self.entry_y.set_text("0")
        self.entry_interval.set_text("0.2")

        self.window.set_focus(self.builder.get_object("button_save"))
        self.window.set_title("左クリック連打")

        #windows1が破棄される時、gtk_endを呼び出す
        self.window.connect("delete-event", self.gtk_end)
        self.window.show()

    def on_button_save_clicked(self,widget):
        # 現在のマウスカーソルの位置を記憶する
        a, x, y, b = gtk.gdk.display_get_default().get_pointer()
        self.entry_x.set_text(str(x))
        self.entry_y.set_text(str(y))

        # 位置を記録したら、フォーカスを移動
        self.window.set_focus(self.builder.get_object("button_start"))

    def on_button_start_clicked(self,widget):
        # マウス左クリックを連打する。
        x = int(self.entry_x.get_text())
        y = int(self.entry_y.get_text())
        interval = float(self.entry_interval.get_text())

        xte_click(x,y,interval)

    def on_button_down_clicked(self,widget):
        # マウス左を押しつづける。
        x = int(self.entry_x.get_text())
        y = int(self.entry_y.get_text())

        xte_down(x,y)

    def gtk_end(self, windows, event):
        #明示的に終了しないと、Python自体が終了しないっぽい
        sys.exit(0)

    def main(self):
        # GTK+のメインループを呼ぶ
        gtk.main()

if __name__ == "__main__":
    app = pygtk_builder()
    app.main()

2年ぶりに更新

 最後の記事が21年3月でしたので、27ヶ月ぶり。 2020年頃から始まったコロナ禍から在宅ワークがなくなり、通常運転に慣れてきた頃。 そろそろ新しい趣味を探していこうと思っています。 さて何するかな。。。