Raspberry Pi 備忘録 / Mbedもあるよ!

Raspberry Pi であれこれやった事の記録

TJBot

ケース

Watson Maker Kits

形状データをダウンロードできる。

とりあえず、プリントしてみよう。

3Dプリンター不調で頓挫・・・しましたが、調整し直してプリントしました。 f:id:pongsuke:20180223130002j:plain パーツ

f:id:pongsuke:20180223132841j:plain 組んで

f:id:pongsuke:20180223132850j:plain 組んで

f:id:pongsuke:20180223132859j:plain こうなる

ケルトンだと、ターミネーターみたいで、なんか怖い。
特に目が!

カメラ

カメラの向き

www.youtube.com

youtube を見る限り、そして、実際にはめ込んでみたぴったり感からして、どうやら上下逆向きに(ケーブルを上向きに)設置するようだ。

逆向きに刺そうとすると、どうしてもリボンケーブルのコネクタが鑑賞して刺さらないのだ。

なので、撮影の際などには、-vf, --vflip : Set vertical flip オプションを付ける。

カメラの動作確認

$ raspistill -w 480 -h 360 -n -vf -o mod.jpg

f:id:pongsuke:20180223181149j:plain

サーボモーター(腕)

とりあえず動かしてみよう。

以前書いたコードをそのまま使ってみた。

SG92.py

#!/usr/bin/python
# coding: utf-8 

import RPi.GPIO as GPIO
import time
import signal
import sys 

gp_out = 21

def exit_handler(signal, frame):
        print("\nExit")
        servo.ChangeDutyCycle(2.5)
        time.sleep(0.5)
        servo.stop()
        GPIO.cleanup()
        sys.exit(0)

signal.signal(signal.SIGINT, exit_handler)

GPIO.setmode(GPIO.BCM)


GPIO.setup(gp_out, GPIO.OUT)
# pwm = GPIO.PWM([チャンネル], [周波数(Hz)])
servo = GPIO.PWM(gp_out, 50) 

servo.start(0.0)

val = [2.5,3.6875,4.875,6.0625,7.25,8.4375,9.625,10.8125,12]

servo.ChangeDutyCycle(val[0])
time.sleep(0.5)
servo.ChangeDutyCycle(val[8])
time.sleep(0.5)
servo.ChangeDutyCycle(val[0])
time.sleep(0.5)

while True:
        for i, dc in enumerate(val):
                servo.ChangeDutyCycle(dc)
                print("Angle:" + str(i*22.5)+"  dc = %.4f" % dc) 
                time.sleep(0.5)
        for i, dc in enumerate( reversed(val) ):
                servo.ChangeDutyCycle(dc)
                print("Angle:" + str(180 - i*22.5)+"  dc = %.4f" % dc) 
                time.sleep(0.5)

フルカラーLED

フルカラーLEDを触るのが今回が初めてです。

手元にあるのは カソードコモン のフルカラーLEDです。

f:id:pongsuke:20180228103909p:plain

左から、緑、青、共通カソード、赤 ですね。

挿して、520Ωの抵抗を付けました。

f:id:pongsuke:20180228111311j:plain

f:id:pongsuke:20180228111318j:plain

グラデーションさせるテスト

https://making.mrlittlebig.com/raspberry-pi-2-フルカラーledをグラデーション-5e4916fda419

こちらのコードを、中断できるように改変させていただきました。

#!/usr/bin/python
# coding: utf-8
import RPi.GPIO as GPIO
import time
import signal
import sys

def exit_handler(signal, frame):
        print("\nExit")
        red.stop()
        green.stop()
        blue.stop()
        time.sleep(0.5)
        GPIO.cleanup()
        sys.exit(0)

signal.signal(signal.SIGINT, exit_handler)

Rpin = 13
Bpin = 19
Gpin = 26

GPIO.setmode(GPIO.BCM)
GPIO.setup(Rpin,GPIO.OUT)
GPIO.setup(Bpin,GPIO.OUT)
GPIO.setup(Gpin,GPIO.OUT)

red = GPIO.PWM(Rpin, 50)
green = GPIO.PWM(Gpin, 50)
blue = GPIO.PWM(Bpin, 50)

red.start(0)
green.start(0)
blue.start(0)

blue.ChangeDutyCycle(100)

COUNT = 100
T = 0.04
I = 0
time.sleep(0.5)
for _ in xrange(0, COUNT):
        red.ChangeDutyCycle(I)
        blue.ChangeDutyCycle(100 - I)
        time.sleep(T)
        I+=1
I = 0
for _ in xrange(0, COUNT):
        red.ChangeDutyCycle(100-I)
        green.ChangeDutyCycle(I)
        I+=1
        time.sleep(T)
I = 0
for _ in xrange(0, COUNT):
        green.ChangeDutyCycle(100 - I)
        blue.ChangeDutyCycle(I)
        I+=1
        time.sleep(T)

time.sleep(0.5)
red.stop()
green.stop()
blue.stop()

GPIO.cleanup()

拡散キャップをかぶせました。

マイク

$ lsusb

$ lsusb 
Bus 001 Device 004: ID 8086:0808 Intel Corp. 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Intel Corp とのだけ認識されているけど、大丈夫かな?

$ arecord -l
**** ハードウェアデバイス CAPTURE のリスト ****
カード 1: Device [USB PnP Sound Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

録音テスト

$ arecord -D plughw:1,0 -d 5 test.wav
録音中 WAVE 'test.wav' : Unsigned 8 bit, レート 8000 Hz, モノラル

kiyo@raspberrypi:~ $ aplay -D plughw:0,0 test.wav 
再生中 WAVE 'test.wav' : Unsigned 8 bit, レート 8000 Hz, モノラル

なお、スピーカーが片方しかない状態(アナログout の2局のうち片方しか配線して居ない状態)なので、モノラルで進めています。