【Raspberry Pi】SPIを使う

・/etc/modulesに追記
$ sudo vi /etc/modules
spidev

・/etc/modprobe.d/raspi-blacklist.confを変更(コメントアウト)
$ sudo vi /etc/modprobe.d/raspi-blacklist.conf 
#blacklist spi-bcm2708

・reboot

・設定の確認
ls -la /dev/spi*
crw-rw—T 1 root spi 153, 0 2月 14 23:43 /dev/spidev0.0
crw-rw—T 1 root spi 153, 1 2月 14 23:43 /dev/spidev0.1

・権限の変更
sudo chmod 666 /dev/spidev*

【python】関数Object

【Syntax】

def xxx(arg1,arg2,.....argn):
ステートメントブロック

i.e

def add(a,b):
return a+b

【呼び方】
print add(1,2)
3

print add('abc','def')
'abcdef'

型なしっていいんだか悪いんだかわからないけど、これ書いたときすごく便利な気がした。。

関数の変数代入(関数ポインタみたいなもの)
bdd = add
print bdd(10,20)

関数定義の切り替え。新しい。。
if a==1:
def func(x,y)
return x*y
else:
def func(x,y)
return x/y

print func(3,2)

【python】pythonの基本文法

ptthonシェルの起動と終了

$python
Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>exit()

エンコーディングの設定

# coding: utf-8


Numeric
string
list
tuple
dic
set

 

型(Numeric/)

1+1
2

2*3
6

2**3   2の3乗
8

10%3   
1

乱数
import randam
random.random
0.3345898739

random.choice([10,20,30])   このなかからのランダムチョイス
10

math
import math
math.pi
3.141592....

文字列(string)

a='CA'
a
'CA'
b="TX"
b
'TX'
c='ABC\'D'    エスケープ
c
'ABC'D'
a+b
'CATX'

a+b
'CATX'

a*2
'CACA'

インデックスアクセス
a[0]
C

a[1]
A

インデックスアクセス
a[-1]
A
a[-2]
C

部分文字列
hello='Hello'
hello[1:3]
'el'
a[3:]
'lo'
a[:-2]
'Hel'

string関数
len(a)        length
a.find('e')  find 'e'
a.upper()    大文字変換

オブジェクトの関数一覧表示
dir(a)

関数ヘルプの表示
help(a.find)

フォーマット
a='Hello'
'{0},world!!'.format(a)
'Hello world!!'

x=10/3
'{0:.3f}'.format(x)
3.333

'{0:.0}'.format(x)
3

'{:,}'.format(12345678)
12,345,678

リスト

要素の定義
l=[2,4,6,8,10]

要素の取得
l[1]
4

要素の取得
l[1:3]
[4,6]

結合
M=l+[1,3,5]
M
[2,4,6,8,10,1,3,5]

ソート
M.sort()
M
[1,2,3,4,5,6,8,10]

要素の追加
M.append(100)
[1,2,3,4,5,6,8,10,100]

要素を削除
M.pop(10)
[1,2,3,4,5,6,8,100]

LENGTH取得
len(M)
8

特定の要素のカウント
M=[1,1,1,2,3,4,4,5]
M.count(1)
3

タプル(構造体)

A = ('aiueo', 123)
A
('aiueo', 123)

x=A
x
('aiueo', 123)

a,b=A
a
'aiueo'
b
123

インデックスアクセスもできる。
A[0]
'aiueo'
A[1]
123

ただしこれは出来ない。
A[0]='kakikukeko'   <- ×

ディクショナリ(hush map)

A={'name':'miya','age':35}
A['name']
'miya'

空で定義
B={}
B['name']='abeshi'
B['age']='4'
B
{'name':'abeshi','age':4}

ディクショナリ関数表示
dir(B)

キー一覧取得  
B.keys()

値一覧取得  
B.values()

キーが有るかどうかチェック  
B.has_key('name')   <-あるとき
True
B.has_key('job')  <-ないとき
False 

Or
'name' in B    <-あるとき
True
'job' in B    <-ないとき
False

セット(リストをdistinctにしたもの。リストの中から重複された物をぬいたもの)

A=['a','b','a','c','c','c'];
B=set(A)
B
set('a','b','c')

setの演算
A=set('Hello')
B=set('World')
A=set(['H','e','l','o'])
B=set(['W','o','r','l','d'])

論理和
A|B
set(['H','e','l','o','W','r','d'])

アンド
A&B
set(['l','o'])

排他的論理和
set(['H','e','W','r','d'])

制御文

x=1   ;はつけないのが慣例(つけてもよい) 基本は1行 1ステートメント
y=2

if x>y:  コロンをつける事。if (x>y):でもOK
  print 'x is bigger'
else:
  print 'y is bigger'

インデントが重要
if a=1:
    print 'a is'
    print a
    print 'dayon'
else: 
    print 'a is'
    print a
    print 'janai-yo'

一行にまとめる
if a=1: print 'a is number 1.'

リスト定義(複数行またいでもOK)
L=[[1,2,3],[4,5,6],[7,8,9]]
M=[[1,2,3],
   [4,5,6],
   [7,8,9]]

例外

def detail(request, poll_id):
    try:
        p= Poll.objects.get(pk=poll_id)
    except Poll.DoesNotExist:
        raise Http404
    return render_to_response('polls/detail.html',{'poll':p})

【python】djangoのinstall

sudo pip install mysql-python
pip install django

プロジェクト作成
django-admin.py startproject http_test
python manager.py runserver

OSX 9にVirtual boxにUbuntuをいれdjangoをインストールします。

 

・install virtual box

・install ubuntu-13.10-server.iso

http://www.ubuntu.com/download/server

・setup Ubuntu
http://itpro.nikkeibp.co.jp/article/MAG/20131119/518861/

Ubuntu serverはCUI。GUIをインストールするには下記を実行

$ sudo apt-get install ubuntu-desktop
$ startx

OSXからUbuntuにSShでつなぐ
[Ubuntu]
sudo apt-get install openssh-server

[VirtualBox]

network settingから、NATを選択し、port  fowardingを設定して下記のように入力
スクリーンショット 2014-02-03 23.28.14

 

 

 

 

 

 

 

$sudo reboot

[OS X]

ssh -p 3022 user@127.0.0.1

pythonと、mysqlをinstall

$ sudo apt-get install python-mysqldb

djangoのinstall

sudo apt-get install python-django