顯示具有 python 標籤的文章。 顯示所有文章
顯示具有 python 標籤的文章。 顯示所有文章

2013年3月25日 星期一

Raspberry Piでタイマーを作ってみた(source code)





前python+Tkinterで作ったタイマーです。


使用環境はLXDE, RPi.GPIOを使っているので、rootで起動してください。



もしキヨスクのように起動するとタイマーを起動した場合、
[Raspberry Pi] LXDE起動するとき指定pythonスクリプトを起動させる方法 一文を参考してください



2013年1月23日 星期三

Raspberry Pi with 128x64 Graphic LCD

やっと出来ました。



16x2キャラクターLCDと比べて、グラフィックLCDはかなり手間がかかります。まずはピン数がキツイ。あとはグラフィックに画像データの書き込みは別の処理が必要です。(しないとバラバラになった)



2013年1月21日 星期一

128x64 グラフィックLCDを買いました


照明LEDがついているバージョンが高い(あり→3500円ぐらい、なし→2000円ぐらい)RaspberryPiより高いなと思っていたので、なしバージョンを買いました(あとに後悔かも?)



早速半田つけましょう。下手だけど、前キャラクタータイプのをやっていた時より少し慣れました。説明書を読もうとしたが...なんだこれ、ひどい、一面しかない。さっそくネットで調べてスペックをダウンロードしました。





実験用の数字LED,モーターも買いました。あといろいろ写真にのせていないものも買いました。




2013年1月14日 星期一

Raspberry PiでキャラクタLCD(16x2)を動作させて(追記)

久々に更新

Raspberry PiでキャラクタLCD(16x2)を動作させてみたの記事の話です。
前解決しなかった諸問題のひとつ、「漢字ができません」という問題。mecabを利用してやっと解決しました。といったら恥ずかしい、Raspberry Piに最初インストールしたのはMeCabですが、そのまま放置してしまった...(インストールのついてはこちら)

pythonでそのまま使えるから、すぐ前のスクリプトに導入しました。コードは長いのでスキップ...ポイントは
import MeCab

あとは
  lcd_init()
 while 1:
    my_input = raw_input(">")
    lcd_byte(0x01,LCD_CMD)
    # Send some test
    lcd_kana(my_input)

をちょっと改造して:
 lcd_init()
  m = MeCab.Tagger("-Oyomi -N64")
  while 1:
    my_input = raw_input(">")
    lcd_byte(0x01,LCD_CMD)
    # Send some test
    lcd_kana(m.parse(my_input))
出来上がり。

残ってる部分は英語と混ぜるとの判断、あとは文字数の処理(キャラクターLCDは16x2文字です、濁音や半濁音が出る場合、一回表示できる文字数も減るから、ここは別の判断が必要です。







2013年1月5日 星期六

[Raspberry Pi] LXDE起動するとき指定pythonスクリプトを起動させる方法



最近Raspberry Piでタイマーをつくりました。キオスクのように電源を入れてすぐ使えるという形をしたいですが、問題点は二つがある:

1.GPIOライブラリを使うには、root(またはsudo)が必要です。
2.起動したいのはTkinterを使ったpythonスクリプトです。


解決策は:

1.pythonスクリプト(例:timer.py)の最初に

#!/usr/bin/env python

を入れて、
chmod +x timer.py
権限を変更します

2.~/.config/lxsession/LXDE/autostart を編集(または作成)します:
/usr/bin/sudo ~/timer.py
3.RaspberryPiを再起動してみてください、スクリプトがうまく起動しなかったら、~/.xsession-errors をチェックしてください。

実際起動してる様子:





今日はここで。

2012年12月18日 星期二

2012年12月9日 星期日

RPi_GPIO_GUI.py v0.2




RPi_GPIO_GUIページ

変更点(2012/12/9)


  1. コードを改善しました。
  2. 画面にGPIOの説明を追加しました
  3. ただ今 GPIO 4, 7, 8, 9, 10, 11, 14, 15, 17, 18, 21/27, 22, 23, 24, 25 のコントロールが可能です。


2012年11月30日 星期五

Raspberry PiでキャラクタLCD(16x2)を動作させてみた(下)


実際の動きはこの感じです。
全角ひらがなカタカナと半角カナの変換辞書は未完成なので(約7割ぐらい完成)、気をつけてください。あとは英語数字と日本語と混ぜて使うとエラーが出てしまいます。

コードは以下です:

2012年11月29日 星期四

Raspberry PiでキャラクタLCD(16x2)を動作させてみた(上)

まず結果です。


今回使ったのは、秋月電子で買ったの超小型LCDキャラクタディスプレイモジュールです。はんだをやることに自信がないし、二つを買いました。(昨日の話)SD1602系を選んだ理由の一つは、端子は1列となっていて、ブレッドボードに優しいから。

LCDモジュールを動作させることについてを調べてみた。コントローラICは基本的にHD44780が使われているそうです。ということで「Raspberry Pi」「HD44780」をキーワードにして検索して、いっぱい結果(サンプルコードも)が出てきた。LCDに関するライブラリも少なくないけれど、これから半角カナを表示することが必要になるので、ライブラリをつかずサンプルコードを参考しました。

16×2 LCD Module Control Using Python
http://www.raspberrypi-spy.co.uk/2012/07/16x2-lcd-module-control-using-python/

大変詳しい説明があるので、記事が書いたとおりすれば、いい結果が出てくるはずです。

問題は半角カタカナの表示。

一般(?)使っているのは全角ひなや全角カナだが、LCDモジュールは半角カナのみ。モジュールの説明書にあるキャラクターフォントテーブルをひいて、「こんにちは」を 0xBA,0xDD,0xC6,0xC1,0xCA(コンニチハ)に変化するのも面倒だし...

実はいままだ頑張っている途中です。いまはここの記事を基づいて改造しています。

【Unicode】PythonでのUnicode下での半角カナと全角かな変換
http://pythonlife.seesaa.net/article/148816739.html

いまのところ、ひらがなを半角カナに変更し、正常に表示できました。残った部分は
濁点、半濁点の処理です。

完成したらまた報告します。

2012年11月28日 星期三

帰りました



実は日本へ旅行しにいってきた。秋月電子でLCDモジュールを買いました。こちらは16x2キャラクタータイプのLCDモジュールをうっている店もありますけれど、これから作りたいモノにカタカナ表示が必要なので...

はんだは下手すぎで、壊れてしまったかに心配していた、でも異常はないようだ。


参考リンク

http://learn.adafruit.com/drive-a-16x2-lcd-directly-with-a-raspberry-pi/overview

http://www.rpiblog.com/2012/11/interfacing-16x2-lcd-with-raspberry-pi.html

2012年11月6日 星期二

[Rasepberry Pi] GPIOコントロール用のサンプルコードを作ってみた

LXDE環境で使うGPIOコントローラです、ボタンを押すだけでGPIOをオン/オフするが可能です。LEDやモーターをテストに便利かなと思います。実際に使う様子:


2012年11月4日 星期日

Raspberry PiのGPIOテストコントロール用スクリプト(Python)

更新が遅れてしまった。

今回はRaspberry PiのGPIOテストコントロール用スクリプトを作ろうと思います。
ここは全部のGPIOがコントロールできるコードじゃない。GPIO21,22,23,24,25だけコントロールできるの部分です、全部はるのもちょっと長過ぎるという原因もありますし。もっときれいなコードがあるはずと思います(Pythonは得意じゃないから、、)


使い方は簡単、rootで起動します。例えばGPIO 25をオンにしたい場合、そのまま25を入力してください。オフにしたい場合、もう一度25を入力したらオフです。CTRL+Cを押すと中止です。

GUIバージョンを作ろうか...

import RPi.GPIO as GPIO
import time
GPIO.setmode( GPIO.BCM )
GPIO.setup(21, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)
io21=0
io22=0
io23=0
io24=0
io25=0
my_input = '25'
while 1:
  my_input = raw_input("(Last input: %s):\n" % my_input) or my_input


  if my_input=="25":
     if io25==0:
        GPIO.output(25, GPIO.HIGH)
        io25=1
     else:
        GPIO.output(25, GPIO.LOW)
        io25=0
  if my_input=="24":
     if io24==0:
        GPIO.output(24, GPIO.HIGH)
        io24=1
     else:
        GPIO.output(24, GPIO.LOW)
        io24=0
  if my_input=="23":
     if io23==0:
        GPIO.output(23, GPIO.HIGH)
        io23=1
     else:
        GPIO.output(23, GPIO.LOW)
        io23=0
  if my_input=="22":
     if io22==0:
        GPIO.output(22, GPIO.HIGH)
        io22=1
     else:
        GPIO.output(22, GPIO.LOW)
        io22=0
  if my_input=="21":
     if io21==0:
        GPIO.output(21, GPIO.HIGH)
        io21=1
     else:
        GPIO.output(21, GPIO.LOW)
        io21=0

2012年10月29日 星期一

Raspberry PiのGPIOを遊んでみた


GPIOを遊んでみたいが、半田はわたしには難しいです。
ネットで資料を調べてみた。3.5"FDDケーブルにはこういう使い方もあるか。早速改造してみた。これは完成品です、地味だけど。

2012年10月20日 星期六

Raspberry Piにmecabをインストールしてみた


Raspberry PiにMeCabをインストールしてみた。

参考URL:
http://d.hatena.ne.jp/aircastle/20080925/1222269708 (DebianにMecabを入れてみる.)
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html (MeCab: Yet Another Part-of-Speech and Morphological Analyzer)