永い間,中身のないWebサイトでしたが,古い記事を含むサイトを復活させました。\(^^)/
-
最近の投稿
アーカイブ
カテゴリー
.:.
2025年4月 月 火 水 木 金 土 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
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したら問題なく動作した。
まずは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
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)
OS XのFinderから濁音/半濁音のファイルの名前部分をコピー&ペーストすると文字数が2倍になる現象があります。
まぁ,要するにFinderのUTF8-MacをUTF-8に変換できないXojoのバグですが…
これを回避するには,その文字列をConvertencoding(Encodings.ShiftJIS)
してからConvertencoding(Encodings.UTF-8)
すると正しいUTF-8になります。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo vi /etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ 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
$
Raspberry Pi 2にBME280を接続し,温度/湿度/気圧を測定するModuleをXojo 2015R3で作ってみた。
GitHubにでもあげようかな…
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
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