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()

2012年8月30日木曜日

pythonでGUI操作を自動化してみる。

タイトルが大げさでごめんなさい。

右クリックを連打するスクリプトを作ってみました。(Y!モバゲーを楽しむ為に)



GUI操作を自動化するソフトは色々ありますが、

今回は xautomation を使ってみました。

インストールは、apt-get install xautomation で行い。

xte というコマンドが使え下記のようなオプションがあります。


xte 'key [KEY]'
xte 'keydown [KEY]'
xte 'keyup [KEY]'
xte 'mousemove [x座標] [y座標]'
xte 'mouseclick [ボタン]'

で、早速 pythonで、5回/秒 1万回 左クリックするスクリプトを作ってみました。


import os
import time
for i in range(10000):
    cmd = "xte 'mouseclick 1'"
    os.system(cmd)
    time.sleep(0.2)
簡単ですね。

sleepを初めて使ったんですが、これは 0.2秒間 待ってもらう関数となります。


使ってみましたが、威力は抜群、考えれば使い道は広がりそうです。
日々繰り返している操作はたくさんあるので、pythonでお手軽に作れそうです。
さしあたって、IDとPassを入力してくれるアプリが便利そうだな。

2012年8月21日火曜日

pythonで nicovideo-dl を使ってみる。

ニコニコ動画をダウンロードして、後日ゆっくりと鑑賞したいと思い調べていたら、ubuntuに nicovideo-dl というコマンドを発見。便利です。

Synaptic からチェックしてダウンロード。

nicovideo-dlのオプション:

  -h, --help            print this help text and exit
  -v, --version         print program version and exit
  -u USERNAME, --username=USERNAME
                        account username(アカウント)
  -p PASSWORD, --password=PASSWORD
                        account password(パスワード)
  -o FILE, --output=FILE
                        output video file name
  -q, --quiet           activates quiet mode
  -s, --simulate        do not download video
  -t, --title           use title in file name(タイトルをファイル名にする)
  -l, --literal         use literal title in file name
  -n, --netrc           use .netrc authentication data
  -g, --get-url         print final video URL only
  -2, --title-too       used with -g, print title too



python で実行するには下記のようにして、urlを指定して実行すれば書いてきに動作してくれる。(エコノミーの判定方法がわかれば、もう少しよくなるんだがなぁ)

import os

def nicodl(url):
    cmd  = "nicovideo-dl "
    cmd += "-u アカウント "
    cmd += "-p パスワード "
    cmd += "-t "
    cmd += url
    os.system(cmd)

Pythonで gtk+glade のGUIアプリに挑戦(1)

いまさらながらニコニコ動画をチェックするアプリが作りたくなって、gtkに挑戦。
gladeのファイル読み込みに少々手間取ったのでメモ。
のんびり作成中。


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

def gtk_init():
    builder = gtk.Builder()
    #sample.gladeファイルから画面を作成
    builder.add_from_file("mainwindow.glade")

    #windows1というオブジェクトを取得
    window = builder.get_object("window1")
    #windows1が破棄される時、testを呼び出す
    window.connect("delete-event", gtk_end)
    window.show()

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

if __name__ == "__main__":

    gtk_init()
    gtk.main()

2012年6月19日火曜日

ubuntuで、Open JTalkを使って、日本語テキストを読み上げさせてみた。(2)

さて、インストールは完了してので、さっそくpythonで Open JTalk を使ってみた。


pyaudioは、ここでダウンロードした。
オプションは、ここを参考にした。

まずまずの結果でした。

これを使えば、rrs読み上げソフトを作れそうだ。


import wave
import os
import pyaudio

if __name__ == "__main__":

    voice = '/usr/local/share/hts_voice/mei_normal'
    dic   = '/usr/lib/open_jtalk/dic/utf-8'
    text = "ウブンツで、日本語テキストを読み上げさせてみた。"
 
    opts = [
            "-x  " + dic + "/",
            "-td " + voice + "/tree-dur.inf",
            "-tm " + voice + "/tree-mgc.inf",
            "-tf " + voice + "/tree-lf0.inf",
            "-md " + voice + "/dur.pdf",
            "-mm " + voice + "/mgc.pdf",
            "-mf " + voice + "/lf0.pdf",
            "-dm " + voice + "/mgc.win1",
            "-dm " + voice + "/mgc.win2",
            "-dm " + voice + "/mgc.win3",
            "-df " + voice + "/lf0.win1",
            "-df " + voice + "/lf0.win2",
            "-df " + voice + "/lf0.win3",
            "-dl " +voice + "/lpf.win1",
            "-s   48000",
            "-p   240",  # 話速?
            "-a   0.55", # 声質?
            "-u   0.5",  # 有声化・無声化?
            "-jm  0.7",  # 大小?
            "-jf  0.5",  # 抑揚?
            "-jl  1.0",
            "-l",
            "-z   6000",
            "-ow " + "out.wav",
            "-em " + voice + "/tree-gv-mgc.inf",
            "-ef " + voice + "/tree-gv-lf0.inf",
            "-cm " + voice + "/gv-mgc.pdf",
            "-cf " + voice + "/gv-lf0.pdf",
            "-k  " + voice + "/gv-switch.inf",
            ]

    cmd = "open_jtalk "
    for row in opts:
        cmd += row + " "
    cmd += "in.txt"

    f = open("in.txt",'w')
    f.write(text)
    f.close()

    os.system(cmd)

    wf = wave.open("out.wav", "r")

    # ストリームを開く
    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()


ubuntuで、Open JTalkを使って、日本語テキストを読み上げさせてみた。(1)

ubuntu で、日本語テキストを読み上げさせてみた。(忘れない程度に、いい加減なメモ)

音声合成は、Open JTalk を使えば簡単にできる。が、インストールが大変そう。

google先生にしつこく聞いてみると、ここで(OpenHRI)紹介されていた。


コマンドラインを使ったインストール、

sudo apt-add-repository ppa:openhri/ppa
sudo apt-get update
sudo apt-get install openhrivoice

Open JTalkは、openhrivoiceパッケージに含まれているので、これでインストール完了。



端末から、コマンドで、

open_jtalk

と入力し実行すれば簡単な使い方が表示される。
コマンドオプションが複雑なので、pythonを使って動かすことにした。



辞書は、

/usr/lib/open_jtalk/dic/utf-8/

HTSボイスは

/usr/lib/hts-voice/nitech-jp-atr503-m001/

にインストールされていた。



HTSボイスの「 nitech_jp_atr503_m001 」だけでは物足りないので、MMDAgentもインストールすることにした。(参考にしたページはここ)


 MMDAgent - Toolkit for Building Voice Interaction Systems から、
     
    MMDAgent_Example-1.1.zip(MMDAgent のサンプルスクリプト)

をダウンロード。作業用ディレクトリに置いて展開し配置する。


unzip MMDAgent_Example-1.0.zip
sudo mv ./MMDAgent_Example-1.0/Voice/mei_normal /usr/local/share/hts_voice/mei_normal



これで、インストールは完了。


2018/2/9追記
上の情報は6年前で古い。open jtalkのインストールは簡単にできる。

#インストールします。
sudo apt-get install -y open-jtalk
sudo apt-get install -y open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

#wavファイルを作ってみます。
echo "はじめまして、こんにちは" > voice.txt
open_jtalk -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow test.wav voice.txt

2012年5月12日土曜日

10.04lts Handbreakをインストール

10.04lts Handbreakをインストールする。

sudo add-apt-repository ppa:stebbins/handbrake-snapshots
sudo apt-get update
sudo apt-get install handbrake-gtk

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

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

アプリケーション → アクセサリ → 端末

LANG=C xdg-user-dirs-gtk-update

10.04lts firefoxでBSキーを有効にする。

アドレスバーに「about:config」と入力して、backspaceを検索。

設定値を2→0へ変更する。

10.04lts sun-java6のインストール

ubuntu 10.04 を再インストールしたけど、sun-java6のインストール方法が変わっていました。
現時点では、下記コマンドのようです。

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:sun-java-community-team/sun-java6
sudo apt-get update
sudo apt-get install sun-java6-jdk

2年ぶりに更新

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