2017年4月16日 星期日

2017年4月13日 星期四

2017年4月10日 星期一

[RPi] SDR

Software Define Radio(SDR)

本來想要用 gqrx, 可是一直沒成功
http://gqrx.dk/download/gqrx-sdr-for-the-raspberry-pi
https://danielpocock.com/quickstart-sdr-ham-radio-gqrx-gnu-radio

後來還是使用 adafruit 的 FreqShow, 可以參考這篇
https://learn.adafruit.com/freq-show-raspberry-pi-rtl-sdr-scanner

使用 LoRa microchip 2483, 一個當 sender, 一個當 gateway, 參數如下
bw 500
sf sf12
cr 4/5
freq 868100000

sender 發送圖





gateway 接收圖




下一步就是要分析訊號強弱與傳輸距離等了
http://diydrones.com/m/blogpost?id=705844%3ABlogPost%3A2165825



後記:
SDL 要能支援 touch, 要裝舊版的
https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/pitft-pygame-tips#ensure-you-are-running-sdl-1-dot-2

透過 x11vnc 看結果, 要把 freqshow.py 這幾行註解掉
        #os.putenv('SDL_VIDEODRIVER', 'fbcon')
        #os.putenv('SDL_FBDEV'      , '/dev/fb1')
        #os.putenv('SDL_MOUSEDRV'   , 'TSLIB')
        #os.putenv('SDL_MOUSEDEV'   , '/dev/input/touchscreen')

滑鼠也要顯示才行
       #pygame.mouse.set_visible(False)
       pygame.mouse.set_visible(True)


[RPi] root 可以 ssh 登入

1. 要先更新 root 密碼
$ sudo passwd root

2. 要讓 root 可以從 ssh 登入
  • Login, and edit this file: sudo nano /etc/ssh/sshd_config
  • Find this line: PermitRootLogin without-password
  • Edit: PermitRootLogin yes
3. 重新啟動 sshd
$ sudo systemctl restart ssh.service 


參考:
http://raspberrypi.stackexchange.com/questions/48056/login-as-root-not-possible


2017年4月4日 星期二

[Python] 繪圖

如果是要畫得快, 建議是直接用 pyqtgraph, 不要用 matplotlib, 參考這篇

但如果要用 matplotlib 還是想畫得快, 可以參考這兩篇的效能調校方式
* http://stackoverflow.com/questions/8955869/why-is-plotting-with-matplotlib-so-slow
* http://bastibe.de/2013-05-30-speeding-up-matplotlib.html

[RPi] pulse sensor

都是參考 Arduino 範例改寫的
* http://udayankumar.com/2016/05/17/heart-beat-raspberry/
* https://github.com/tutRPi/Raspberry-Pi-Heartbeat-Pulse-Sensor

[Python] pyqtgraph 超基本繪圖

這要先會動才行

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import numpy as np

data = np.random.normal(size=1000)
#print data
pg.plot(data)   # data can be a list of values or a numpy array

if __name__ == '__main__':
    import sys

    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

更多參考資訊
* http://www.pyqtgraph.org/documentation/how_to_use.html
* https://wiki.qt.io/PySide

[Python] pyqtgraph 重新繪圖

再補充一下 pyqtgraph 重新繪圖的兩個方法

第一個是用 QApplication.processEvents(), 例如
pw = pg.plot()
while True:
    ...
    pw.plot(x, y, clear=True)
    pg.QtGui.QApplication.processEvents()

第二個是用 QTimer
pw = pg.plot()
timer = pg.QtCore.QTimer()
def update():
    pw.plot(x, y, clear=True)
timer.timeout.connect(update)
timer.start(16)

不過照這樣看來, 這篇就多此一舉了

http://stackoverflow.com/questions/18080170/what-is-the-easiest-way-to-achieve-realtime-plotting-in-pyqtgraph

[程式語言] 動態繪圖

這篇寫得很好, 如果要做動態繪圖, 基本上有這三個方法

1. 重新繪圖(re-plot)
2. 移動曲線(curve)
3. 移動視角(view)

http://stackoverflow.com/questions/24197910/live-data-monitor-pyqtgraph

[RPi] reset password

記得某個版本的 image 重設密碼怪怪的, 剛剛測試 2016-09 是好的
http://www.mapledyne.com/ideas/2015/8/4/reset-lost-admin-password-for-raspberry-pi