slackにhatenaに投稿された記事を自動投稿できるようにする

slackにhatenaに投稿された記事を自動投稿できるようにする

/feed

を使えばいける.

/feed subscribe http://ksumiya.hatenablog.com/feed

など.

subscribeはなくてもよいらしく,

/feed http://ksumiya.hatenablog.com/feed

でもいけるっぽい.

/feed subscribe http://ksumiya.hatenablog.com/rss

で, rssもいける.

/feed help

で,

Valid commands: subscribe, list, remove, help.
To subscribe to a feed in this channel: /feed subscribe http://kotaku.com/vip.xml
To list subscribed feeds from this channel: /feed list
To remove a feed from this channel: /feed remove ID

のように3つのcommandがあることがわかる.

この記事をここまで書いた時点で投稿してみた.

およそ8分50秒後に

.../feed
f:id:ksumiya0318:20170112225239p:plain

.../rss
f:id:ksumiya0318:20170112225238p:plain

と通知された.

rssが邪魔だったので,

/feed list

でそのチャンネルに登録したfeedをのリストを見て, でてきた自分のIDが126700204965だったので

/feed remove 126700204965

で登録を止めた.

(追記: と, 思ったけど, feed版の方がスペース取って邪魔な気もしてきた. まぁいっか)

ここまで書いて記事をupdateした. updateは投稿されないらしい.

テストでもう一つ上げてみたら約7分経ってから通知されたので, おそらく10分周期くらいで投稿確認をしているのかな...?

ssh on cmd in windows [OpenSSH]

windows10のcmdが使いやすそうだったので、sshできるようにした

teratermでもsshできるけど, GUIの操作をいちいちやらなきゃいけないのは面倒くさいしterminalの感覚とずれるので必然性ありだった

結論: OpenSSH www.mls-software.com をDLしてinstallすればそれだけでおk

raspberrypi GPIO python RPi servo iphone-camera NDI

raspberrypi GPIOの例としてservoを使う.
servoでカメラを制御する.

USBカメラを載せて終わらせる予定だったけど, USBポートの口が足りなくなって, ハブも死んでるのでワイヤレスにした.
無線ルーター(wimax wx02)経由でNDIでiphoneのカメラをmacに送って挙動を見ることにした.

iphone6, macbook pro early 2015 13inch, wimax wx02, low mode, NDI

準備: 有線LANでのSSH接続

SSHの設定をする前の一番最初の設定時にはディスプレイ + キーボード + マウスが必須なのかなぁ(面倒くさい)
3つを持ち歩くのは面倒なので, せめてblackmagickで何とか解決したいところ.
発注分は届いたら試す予定.
小さくて薄くて省電力なHDMIディスプレイも欲しい.

windowsはtera termでいけるはず. 少なくともIP(仮にxxx.xxx.xxx.xxxとする)を確認してから,

ip: xxx.xxx.xxx.xxx
usr: pi
pw: raspberry(デフォルトのまま)

でやればいけた. (ただしraspi内のキーボードの設定が違うとviでmacから編集するときに謎の挙動が発生するらしく, そこが今日は面倒だった)

で.

有線LANでつなぐ方法は以前書いたとおり:
ラズパイとmacを有線LANでつないでSSHして, ラズパイのGPIOでpython使ってLチカ制御 - code0318
で,

sudo apt-get install avahi-daemon
sudo insserv avahi-daemon
ssh pi@raspberrypi.local
sudo apt-get install avahi-autoipd

をやっておけば, 有線or無線でPCとraspberry piが繋がった時に

ssh pi@raspberrypi.local

sshできるようになるはず.
ただし, piはデフォルトのアカウントなので, 他のラズパイで設定してしまったPCだとwarningがでて繋げられないかも. 少なくとも僕のmacで今日, それが発生した.

他のアカウントで固定すれば大丈夫かも. 気が向いたら試す.

servo, RPi

参考にさせていただいたURL: windvoice.hatenablog.jp

回路はwiringpiの時と同じで18番を制御に使う.
f:id:ksumiya0318:20161214161301p:plain

今回は制御APIとしてRPiを使用した.
角度指定の値として[2, 12]が[0, PI]に対応するらしい. 理由は不明.
値はfloatが使えるので角度指定の細かさという意味では特に困らない.

codeは上記の参考元のをベースにした.
挙動は
0 > PI > 3 PI /4 > PI/2 > PI/4 > 0.... の繰り返し. 各角度で2secずつ停止.
という単純なものにした.
(今日, 別のraspiでやった時は, より細かい&速いの設定にしていたが, ここではそれはやめた)

servo_RPi.py :

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

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

def move(dc, sleeptime):
  servo.ChangeDutyCycle(dc)
  print("dc = ", dc)
  time.sleep(sleeptime)

signal.signal(signal.SIGINT, exit_handler)

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)
servo = GPIO.PWM(18, 50)

servo.start(0.0)

dc_min = 2.0
dc_max = 12.0
delta_dc = dc_max - dc_min
sleeptime = 2
while True:
  move(dc_min, sleeptime)
  move(dc_max, sleeptime)
  move(dc_min + delta_dc*3/4, sleeptime)
  move(dc_min + delta_dc*2/4, sleeptime)
  move(dc_min + delta_dc*1/4, sleeptime)

これを,

sudo python servo_RPi.py

すれば起動してずっと動き続ける.

NDI

サーボの上に載せるカメラは何でもいいわけだけど, せっかくなのでNDIを使ってiphoneカメラの画像を飛ばすことにした.
簡易的なネットワークカメラになるので感触はかなり良い.

本当は, SDK Programs でちゃんと自作しようと思ったけど, "Join the NewTek Developer Network"してから中々返事が来ない.
早く試してみたかったので, アプリを買ってtemporallyに試すことに.

iphoneのsend側 (¥2400):

NewTek NDI Camera

NewTek NDI Camera

  • NewTek
  • 写真/ビデオ
  • ¥2,400

macのmonitor側 (free):

NDI Monitor

NDI Monitor

  • Mark Gilbert
  • ビデオ
  • 無料

と, 思ったら.

NewTek NDI

から普通にSDKをダウンロードできることに今気づいた. まぁいっか.

動画

挙動はこんな感じ.
youtu.be

ルーターが良ければもっと滑らかになるはず. 作りは雑だけどサーボもちゃんと動いてる.