復活

永い間,中身のないWebサイトでしたが,古い記事を含むサイトを復活させました。\(^^)/

Posted in 未分類 | 復活 はコメントを受け付けていません

Raspberry pi 3 + ServoをShellから制御する

Raspberry PiにてShellからサーボを制御できるservoblasterなんだけど,Raspberry Pi 3上でBuildするとservod: Cannot parse the hardware name stringと表示されて動作しない。

ソースのservod.cをつらつら眺めていたらBCM2708とBCM2709のみ対象をとしてるではないか。

shellから以下のコマンドでHardwareを調べ,BCM2835がRaspberry Pi 3のHardwareであることを確認。

$cat /proc/cpuinfo |grep -i hardware

その後,servod.cの960行を編集。

else if (strstr(modelstr, “BCM2709”)

else if (strstr(modelstr, “BCM2709”) || strstr(modelstr, “BCM2835”))

再度Buildしたら問題なく動作した。

Posted in Raspi, メモ | Raspberry pi 3 + ServoをShellから制御する はコメントを受け付けていません

RaspiにRS-380を接続してFelica IDを取得する

まずはPython用の追加パッケージのインストール

$ pip install libusb1 pyserial

次にbzrのインストール

$ sudo apt-get install bzr

次にnfcpyのブランチ

$bzr branch lp:nfcpy

felica IDの取得

sudo python nfcpy/examples/tagtool.py show

$ sudo python examples/tagtool.py show
[nfc.clf] searching for reader on path usb
[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:001:005
** waiting for a tag **
Type3Tag 'FeliCa Standard (RC-S???)' ID=**************** PMM=**************** SYS=0003

Posted in Raspi, メモ | RaspiにRS-380を接続してFelica IDを取得する はコメントを受け付けていません

割り込みによるスイッチ処理

Raspi上で立ち上がり割り込みによるスィッチ処理をXojoで作ってみた。

↓ にZIP圧縮したものを置いた。

Interrupt

尚,使用に際しては自己責任でお願いします。

Posted in Raspi, Xojo | 割り込みによるスイッチ処理 はコメントを受け付けていません

Raspiで温度測定・ADT7410

Xojoのコードです。

簡単すぎて拍子抜けw

Soft Declare Function wiringPiI2CSetup Lib "libwiringPi.so " (devId As int32) As int32
Soft Declare Function wiringPiI2CReadReg16 Lib "libwiringPi.so " (fd As int32, reg As int32) As int32
Soft Declare Function wiringPiI2CReadReg8 Lib "libwiringPi.so " (fd As int32, reg As int32) As Byte

Dim fd As Int32
Dim data As Integer

fd = wiringPiI2CSetup(&h48)

data = wiringPiI2CReadReg16(fd, 0)

data = Bitwise.ShiftRight(Bitwise.ShiftLeft(Bitwise.BitAnd(data, &hff), 8)+Bitwise.ShiftRight(data, 8), 3)

Print str(data/16)

Posted in 未分類 | Raspiで温度測定・ADT7410 はコメントを受け付けていません

FinderとXojoの関係

OS XのFinderから濁音/半濁音のファイルの名前部分をコピー&ペーストすると文字数が2倍になる現象があります。

まぁ,要するにFinderのUTF8-MacをUTF-8に変換できないXojoのバグですが…

これを回避するには,その文字列をConvertencoding(Encodings.ShiftJIS)してからConvertencoding(Encodings.UTF-8)すると正しいUTF-8になります。

Posted in OS X, Xojo, メモ | FinderとXojoの関係 はコメントを受け付けていません

Raspberry Pi Wheezy -> Jessie Update

Wheezyを最新状態に更新

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

aptのリスト情報をJessie用に修正

$ sudo vi /etc/apt/sources.list

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

Jessieにアップデート

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

再起動後,Operating Systemを確認

$ hostnamectl
Static hostname: raspi3rd
Icon name: computer
Chassis: n/a
Machine ID: f64ca66647d24dd88e5251e391dbf582
Boot ID: 6303e40951a94ec092039f0cd64ae57b
Operating System: Raspbian GNU/Linux 8 (jessie)
Kernel: Linux 4.1.12-v7+
Architecture: arm
$

Posted in Raspi | Raspberry Pi Wheezy -> Jessie Update はコメントを受け付けていません

Xojo Raspi – BME280

Raspberry Pi 2にBME280を接続し,温度/湿度/気圧を測定するModuleをXojo 2015R3で作ってみた。

GitHubにでもあげようかな…

Posted in Raspi, Xojo | Xojo Raspi – BME280 はコメントを受け付けていません

Xojo iOS / CubeSQL Json Connect Select, etc..

CubeSQLをJsonでConnectし,Select等を行う際に代入する値に日本語などが入っている場合,そにままUTF-8に変換しても動作しない。

以下のようにuTF16BigEndianに変換の後に\uでユニコード文字にエスケープする必要がある。

—-

// ‘で囲まれた文字列はuTF16BigEndianに変換の後に\uでユニコード文字にエスケープする

Dim tt As Text = “{“+&u22+”command”+&u22+”:”+&u22+”SELECT”+&u22+”,”+&u22+”sql”+&u22+”:”+&u22+SQLstr+”;”+&u22+”}”

Dim sFlag As Boolean
Dim s As Text
Dim i As Integer
DIm nn As MemoryBlock

for i = 0 to tt.Length-1
if tt.Mid(i, 1) = “‘” Then
// 文字列開始もしくは終了があった
if sFlag Then
sFlag = False
// 文字列終了
else
sFlag = True
end if
s = s+tt.Mid(i, 1)
else
if sFlag Then
// 文字列処理中

nn = xojo.Core.TextEncoding.UTF16BigEndian.ConvertTextToData(tt.Mid(i, 1))
s = s+”\u”+mb2hex(nn)
else
s = s+tt.Mid(i, 1)
end if
end if
next

Posted in iOS, Xojo | Xojo iOS / CubeSQL Json Connect Select, etc.. はコメントを受け付けていません

Xojo iOS / CubeSQLへの接続

iOSからDatabaseをアクセスする方法をあれこれ模索していたら,CubeSQL ServerはJson形式でコマンドを投げるとJsonで返してくれることが判明。

—- 接続用のJsonを生成 —-

Function BuildCubeSQLConnectJson(ConnetUsername As Text, ConnectPassword As Text) As xojo.Core.MemoryBlock
Using Xojo.Core
Using Xojo.Crypto

Dim username As xojo.Core.MemoryBlock
Dim password As xojo.Core.MemoryBlock
Dim pass As Text
Dim rndvalue As Text
Dim t As Text
dim m as xojo.Core.MemoryBlock
Dim randpool As UInt64

randpool = xojo.Math.RandomInt(10000000000, 99999999999999999999)
rndvalue = randpool.ToText

username = SHA1(Xojo.Core.TextEncoding.UTF8.ConvertTextToData(rndvalue+ConnetUsername))
password = SHA1(SHA1(Xojo.Core.TextEncoding.UTF8.ConvertTextToData(ConnectPassword)))

pass = xojo.Core.TextEncoding.ASCII.ConvertDataToText(password)
pass = rndvalue+EncodeBase64(pass)

password = Crypto.SHA1(xojo.Core.TextEncoding.ASCII.ConvertTextToData(pass))

t = "{"+&u22+"command"+&u22+":"+&u22+"CONNECT"+&u22+","+&u22+"username"+&u22+":"+&u22+mb2hex(username)+&u22+","+&u22+"password"+&u22+":"+&u22+mb2hex(password)+&u22+","+&u22+"randpool"+&u22+":"+&u22+rndvalue+&u22+"}"

m = xojo.Core.TextEncoding.UTF8.ConvertTextToData(t)

Return m

End Function

—- SQL文のJsonを生成 —-

Function BuildSqlJson(SQLstr As Text) As xojo.Core.MemoryBlock
Dim t As Text = "{"+&u22+"command"+&u22+":"+&u22+"SELECT"+&u22+","+&u22+"sql"+&u22+":"+&u22+SQLstr+";"+&u22+"}"

dim m as xojo.Core.MemoryBlock = xojo.Core.TextEncoding.UTF8.ConvertTextToData(t)

Return m
End Function

Posted in iOS, Xojo | Xojo iOS / CubeSQLへの接続 はコメントを受け付けていません