LCDモジュールに文字を出す

メッセージとシリアルポートは決めうちだけど、とりあえず任意の文字を任意のサイズで表示できるようになった。

# coding: 'utf-8'

import Image, ImageDraw, ImageFont
import serial

com = serial.Serial(
  port=11,
  baudrate=115200,
  bytesize=8,
  parity='N',
  stopbits=1,
  timeout=None,
  xonxoff=0,
  rtscts=0,
  writeTimeout=None,
  dsrdtr=None)

com.timeout=0.5

#text1 = u'愛しあってるかい!'
#text2 = u'もうラブラブ☆★☆'
#text1 = u'今日はもう疲れたよ。'
#text2 = u'ノー残デーだし帰ろうよ。'
#text1 = u'え?定時過ぎからEMボードを'
#text2 = u'資料なしで見てと言われても。'
text1 = u'そんな仕事するなんて、'
text2 = u'北村さんもほんとに物好きね。'

im = Image.new("1", (122, 32), 1)
draw = ImageDraw.Draw(im)
font = ImageFont.truetype("C:\WINNT\Fonts\msgothic.ttc", 14, index=2, encoding="unic")
draw.text((1,1), text1,  font=font, fill=0)
font = ImageFont.truetype("C:\WINNT\Fonts\msgothic.ttc", 10, index=2, encoding="unic")
draw.text((1,18), text2,  font=font, fill=0)

serdata = []

dict = {'0000': '0',
	'0001': '1',
	'0010': '2',
	'0011': '3',
	'0100': '4',
	'0101': '5',
	'0110': '6',
	'0111': '7',
	'1000': '8',
	'1001': '9',
	'1010': 'A',
	'1011': 'B',
	'1100': 'C',
	'1101': 'D',
	'1110': 'E',
	'1111': 'F' }

def boxfilter(boxdata):
	box=boxdata
	im2=im.crop(box)
	im3=im2.transpose(Image.ROTATE_270)
	for y in range((im3.size[1])):
		row = []
		for x in range((im3.size[0])):
			value = im3.getpixel((x, y))
			if value == 0:
				row.append('1')
			else:
				row.append('0')
		data = ''.join(row)
		data1 = data[0:4]
		serdata.append(dict[data1])
		data2 = data[4:8]
		serdata.append(dict[data2])

boxfilter(( 0, 0, 61, 8))
boxfilter(( 0, 8, 61,16))
boxfilter(( 0,16, 61,24))
boxfilter(( 0,24, 61,32))
boxfilter((61, 0,122, 8))
boxfilter((61, 8,122,16))
boxfilter((61,16,122,24))
boxfilter((61,24,122,32))

print >>com, '@HELLO'
print >>com, '%'
print >>com, ''.join(serdata)

でも、なんかもう飽きてきたぞ(^^;。


Pythonで素人が実質数時間でできることが、どうしてVCだとできないのかな?
ふつーのPython使いの人なら、こんなの朝飯前で一日くらいで、仕様通りのものを作ってしまいそうな勢いだ。
組み込みではPILの重さとかが気になって、シェルスクリプトを選んだけど、Windowsマシンくらいのパワーがあれば、Pythonで十分実用になりそうだ。
このくらいわかれば、RSS出したり、メール通知したりするのは簡単だろうから、お金のある人は遊んでちょ。