資料來源:https://blog.cavedu.com/2018/09/05/%E7%BF%BB%E8%AD%AF-2018-08-03-%E6%A0%B9%E6%93%9Atensorflow%E5%9C%98%E9%9A%8A%EF%BC%8Ctensorflow-1-9%E6%AD%A3%E5%BC%8F%E6%94%AF%E6%8F%B4%E6%A8%B9%E8%8E%93%E6%B4%BE/

目樹莓派的 TensorFlow 目前只支援 Python 3.4 下的 v1.1.0, ,但最近TensorFlow於2015年首次發佈時,我們希望它是一個「給所有人的開源機器學習框架」。爲要達成這一點,我們需要盡可能讓它在更多人們使用的平台上運作,所以,我們長期以來支援了Linux、MacOS、Windows、iOS及Android等作業系統。然而,儘管許多貢獻者已經貢獻卓越,在Raspberry Pi上運行TensorFlow仍有許多工作需要完成。感謝與Raspberry Pi基金會的合作,我們現在很高興能宣佈:最新的TensorFlow 1.9版,可透過Python的pip套件系統來安裝建置好的二元檔了!若您正使用Raspbian 9(Raspbian stretch),只要從終端機輸入下面這三道指令來安裝它:

(1) sudo apt-get update
(2)sudo apt install libatlas-base-dev

(3)sudo pip3 install tensorflow

接下來,您可在終端機上運作python3,並如同在任何其它平台上一樣使用TensorFlow。下面是一個簡單的hello world範例:

# Python
import tensorflow as tf
tf.enable_eager_execution()
hello = tf.constant(‘Hello, TensorFlow!’)
print(hello)

如果看到以下內容:Hello, TensorFlow!, 那您便可開始編寫TensorFlow的程式。
但我個人安裝並没有成功,但安裝scikit-learn有成功,步驟如下:

  1. sudo apt-get install python3-numpy
  2. sudo apt-get install python3-scipy
  3. sudo apt-get install python3-matplotlib
  4. sudo apt-get install python3-pandas
  5. conda install scikit-learn

How To Install Mahotas

 If you have conda installed, you can install mahotas using the following pair of commands: 
conda config --add channels conda-forge
conda install mahotas
or 
conda install -c https://conda.anaconda.org/conda-forge mahotas

or

pip install -i https://pypi.anaconda.org/sweetser/simple mahotas

or  (offline install)

pip install  mahotas‑1.4.5‑cp36‑cp36m‑win_amd64.whl

資料來源:http://yhhuang1966.blogspot.com/2017/03/python3-scikit-learn.html
https://scikit-learn.org/stable/install.html
https://mahotas.readthedocs.io/en/latest/install.html

 

 

 

stanley 發表在 痞客邦 留言(0) 人氣()


 

虛擬環境的好處

為什麼需要虛擬環境?這就像是為了這次的學習建立一個遊樂場,在這個場子裡,可以翻滾、可以東敲西打,不用擔心把場地搞亂了無法收拾,只要離開虛擬環境,再造下一個就好了。在實務上,有時會碰到不同專案會使用不同的套件,甚至使用相同套件但是使用不同版本的情況。那麼在管理上就會是一個問題了。如果你只需要使用特定的套件,或是想要嘗試各種不同的環境應用,但又不想彼此的開發環境受到影響,那miniconda的套件管理系統conda將會是一個很好的作法。

conda命令是管理在安裝不同package時的主要介面,使用conda時,你可以進行建立(create)輸出(export)列表(list)移除(remove)更新(update)環境於不同Python版本及Packages,同時也可以分享你的虛擬環境

(1)在pi 上建立及更新miniconda

可以輸入下列命令來檢查目前版本。

conda –V

想要進行更新,可以輸入下列命令

conda update conda

(2)建立虛擬環境

輸入下面命令看目前系統已經安裝幾個虛擬環境。

conda env list

假設我們要建立一個叫做myenv的虛擬環境,並且是安裝python 3.5的版本,那我們可以鍵入下面的命令。

sudo -i
cd /home/pi/miniconda3/bin
conda create --name myenv

or

sudo -i

conda create --name test --clone base

conda create -n mytest --clone myenv

(3)啟動虛擬環境

啟動一個新的虛擬環境可以利用下面命令。

activate myenv

如果你是LINUX或macOS,那你所需輸入啟動的方式將會是

source activate myenv

啟動後指令列會有 myenv 在最前頭,可在這時輸入 which python 詢問 Python 版本

(4)安裝專案所需要的package

利用下面命令來查看,目前此虛擬環境中已經先安裝了那些東西。

conda list

python --version

---------------------------------------------------

安裝python 3.6

conda config --add channels rpi

conda install python=3.6

如果要在此虛擬環境下安裝所需套件,例如numpy那只需要輸入下令命令即可。

conda install numpy

(5):離開虛擬環境

若要關閉虛擬環境,在windows中可使用下列命令

deactivate

而在macOS或LINUX則可以使用

source deactivate

(6):刪除虛擬環境或package

若要刪除虛擬環境中某個package(例如在剛剛建立的虛擬環境myenv中的numpy),那可以輸入下面命令

conda remove --name myenv numpy

如果是要刪除整個虛擬環境,則可輸入下面命令即可完成刪除

conda env remove --name myenv

結語

為每一個不同需求的專案建立一個獨立適合的虛擬環境是一個很好的習慣,因為它並不會去影響其他的系統配置而產生不預期問題。

若在配置上產生了問題只要輕易的移除某個package或是虛擬環境再重新建構它即可

 

 

stanley 發表在 痞客邦 留言(0) 人氣()

https://medium.com/@lin7lic/%E5%9C%A8raspberry-pi-3-%E5%AE%89%E8%A3%9Dpython-3-opencv-34c9740d78e4

 

Pi3b 安裝 OpenCV3
										
### 強烈建議安裝Miniconda
---------------------------------------------------------------------------------									
Install Miniconda3
-------------------------------------------------------------------------------
wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh
sudo md5sum Miniconda3-latest-Linux-armv7l.sh # (optional) check md5
sudo /bin/bash Miniconda3-latest-Linux-armv7l.sh # -> change default directory to /home/pi/miniconda3
sudo nano /home/pi/.bashrc # -> add: export PATH="/home/pi/miniconda3/bin:$PATH"
sudo reboot -h now

update miss permission of the directory:
----------------------------------------------
sudo chown -R pi miniconda3

---------------------------------------------------
Test測試你的環境
conda
python --version

---------------------------------------------------
安裝python 3.6 
conda config --add channels rpi
conda install python=3.6
---------------------------------------------------
安裝opencv3
conda install -y -c conda-forge opencv
---------------------------------------------------

到此完成




以下選用
#######################################################################
安裝Spyder
pip3 install spyder

---------------------------------------------------
CONDA環境下安裝
安裝anaconda client

pip3 install opencv-python
conda install -y -c conda-forge opencv
---------------------------------------------------


update 更新套件
---------------------------------------------------
conda update conda
conda update --all

pip install --upgrade pip

---------------------------------------------------
安裝anaconda client
conda install anaconda-client
---------------------------------------------------

stanley 發表在 痞客邦 留言(0) 人氣()

ASCII 只能儲英文或特殊字符,只占一個字節,一個字節8bit,不能儲中文,所以才出現Unicode

Unicode 不管是中文或英文,都是占二個字節,一個字節8bit

UTF-8 是一種針對Unicode的可變長度字元編碼,英文字符一樣會依照ASCII碼規範,只占一個字節8bit,而中文字符的話,統一就占三個字節了

(1) 在Python 3.x 中,python 直譯器預期的 .py 編碼,預設是 UTF-8,而在 Ubuntu 15.10 中,預設採用的文字編碼也是 UTF-8,

這時在 .py 檔案中撰寫中文,並不會有問題發生,然而,

在 Windows 中,使用記事本編輯文字檔案時,預設的文字編碼是什麼嗎? 在 Windows 中使用記事本編輯文字檔案,預設的編碼是 MS950

所以要加上 # -*- coding: UTF-8 -*-  且儲存成UTF-8格式
忘記加上這一行就在程式使用中文的話,會出現下面的錯誤

SyntaxError: Non-ASCII character '\xe4' in file on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

(2) Python 3.x 中,文字是 str 型態的實例,不過 str 代表的是 Unicode
在 Python 2.x,程式中,文字雖是 str 的實例,然而卻是代表文字資料的位元組序列(Byte sequence )

在 Python 2.x 中,如果想要用 Unicode 來代表文字,也就是想要用 unicode 型態來封裝文字,可以使用 Unicode 字面常量(Unicode literal) 來表示,也就是在文字前置一個 u 符號。

記住: python3 使用unicode

(1) 了解你的環境Default設定,印出目前系統字符編碼

C:\>python
Python 2.7.15 |Anaconda, Inc.| (default, Nov 13 2018, 17:33:26) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.stdout.encoding
cp437
>>> print sys.getdefaultencoding()
ascii
>>> print sys.getfilesystemencoding()
mbcs

(2) - Environment variable

set PYTHONIOENCODING=UTF-8

在Python3因為字串已經全部統一成 unicode ,所以不必在字符串前加上 u ,這是Python2和Python3的重要差別之一,需要特別注意

stanley 發表在 痞客邦 留言(0) 人氣()

(1) Create windowns 2019 server VM
     change user password
(2) install Anaconda
(3) conda install -c conda-forge dash
(4) conda install -c conda-forge opencv
(4) conda install -c conda-forge  sqlalchemy
(5) conda install -c conda-forge  Cloud Vision
(6) conda install -c conda-forge googlemaps

 

stanley 發表在 痞客邦 留言(0) 人氣()

記錄如何安裝,管理主機,建置APP到程式開發等必須要用的指命及參考手冊

雲端運算產品

(1) VM(虛擬機器)部份

建立和啟動 VM 執行個體

網路

執行開機指令碼

執行關閉指令碼
管理VM

(1)將 VM 遷移至 Compute Engine
 

 

(2) APP 部份 (uploaded your web app into app engin)

(1) 測試伺服器(執行基本 Apache 網路伺服器)
(2) 安裝 Nginx(ubuntu 上 Nginx 介紹,安裝與設定)
      基本的 Nginx 設定檔結構網站所示
      (1) nginx 基礎設定教學
      (2) Nginx筆記(二)Nginx基礎
(3) 啟動及結束 nginx server 

sudo -s 
nginx -t #測試
nginx #啟動 
nginx -s stop #結束
nginx  -s reload  #重新啓動

鍵入 http://extern-IP-address  (不是https)

可以試試看可不可以連線~成功的話就會看到成功的畫面

 

(4) Python Bookshelf 應用程式
 

Bookshelf 應用程式是一個以 Python 編寫的範例網頁應用程式,用於示範如何使用各種 Google Cloud Platform (GCP) 產品,包含:

  • App Engine 彈性環境
  • Cloud SQL
  • Cloud Datastore
  • Cloud Storage
  • Cloud Pub/Sub

Bookshelf 範例應用程式採用 Flask 網頁應用程式架構,但不論您使用哪一個架構,這些概念和技術皆可適用。

您可以使用自選的其他網頁應用程式架構來實作這個應用程式,例如 Django

 

(3) Cloud SDK 元件安裝

gcloud components list  

gcloud components install app-engine-python

cloud components updateERROR: (gcloud.components.update) You cannot perform this action because this Cloud SDK installation is managed by an external package manager.Please consider using a separate installation of the Cloud SDK created through the default mechanism described at: https://cloud.google.com/sdk/

使用這種安裝方式

Apt-get is the way to install the app engine component In a Ubuntu/Debían System.

sudo apt-get update && sudo apt-get install google-cloud-sdk

sudo apt-get install  app-engine-python

以上皆有問題,最後是重新連線glcod shell 就可以使用 gcloud components install app-engine-python

但出現warnning 

WARNING: There are older versions of Google Cloud Platform tools on your system PATH. Please remove the following to avoid accidentally invoking these old tools:

修改 ~/.bash_profile 檔案,把 gcloud 下面的路徑移出:

 /usr/lib/google-cloud-sdk/bin/git-credential-gcloud.sh
/usr/bin/snap
/usr/lib/google-cloud-sdk/bin/gsutil
/usr/lib/google-cloud-sdk/bin/bq
/usr/lib/google-cloud-sdk/bin/gcloud

以上方法皆不行,最後是用了這篇文章的方法才成

https://cloud.google.com/sdk/docs/ <- It's OK

(4) Download the Hello World app

git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/standard/hello_world

(5)開始HTTP SERVER: SimpleHTTPServer 範例

在本機上建立HTTP SERVER
如要透過 Cloud Shell 指令提示啟動簡易的 Python HTTP 伺服器,請使用下列指令碼:

cd `mktemp -d` \
    && echo '<html><body>Hello World</body></html>' >./index.html \
    && python -m SimpleHTTPServer 8080

(6)Test the application

dev_appserver.py app.yaml

(7) Deploy your app

gcloud app deploy

(8) View your application

To launch your browser and view the app at http://[YOUR_PROJECT_ID].appspot.com, run the following command:

gcloud app browse 

參考資料:

Running Jupyter Notebook on Google Cloud Platform in 15 min
使用網頁預覽功能
Deploying a Python Flask Web Application to App Engine Flexible
Getting Started with Flask on App Engine Standard Environment
Deploying Dash to Google App Engine

Beginner’s Guide to Deploying a Django + PostgreSQL project on Google Cloud’s Flexible App Engine

GCP Day3 安裝Ubuntu桌面與遠端

 

 

 

 

stanley 發表在 痞客邦 留言(0) 人氣()

這網頁收集有關商業模式的文章,有空時讀一讀總會有一種腦袋打到的感覺

有時候多思考一下「商業模式圖(Business Model Canvas)」給自己一些新的想法

四大構面及九大要素設計

 

九項要素歸納成四大構面。其中,「價值主張」自成一個「價值構面」,

而將「客群、通路與顧客關係」統整為一個「顧客構面」,

並將「關鍵資源、關鍵活動與關鍵夥伴」統整成「夥伴構面」,

而「營收流量與成本結構」則統整成「財務構面」。

(1)「What is your business model?」17種常見的商業模式

(2) 你的商業模式是什麼?

(3) 2018傳統行業可借鏡的24種創新商業模式

(4) 商業模式再創新 

(5) 創業必須知道的5種商業模式(上)

(6) 一個新創而有「創新模式」事業的「營運計劃書」,應善加運用「商業模式圖」!

 

 

 

 

 

 

 

 

文章標籤

stanley 發表在 痞客邦 留言(0) 人氣()

EspWifiTracker

偵測ESP8266的Wi-Fi RSSI(接收信號強度)的Arduino和MicroPython程式

 

stanley 發表在 痞客邦 留言(0) 人氣()

 

原本以前這不是很重要的問題,但經過研究後發現這是一個很有趣且實用的議題,很值得研究
但自己並没有實作過,所以以下的線路全都是網站收集而來的

其設計概念就是當按下開關時供電給MCU版,而當程式結束時MCU發出關機信號,將電源關閉如此可以省電

其延伸概念是Latch 電路有個開關,按第一下時供電給MCU,再按一下即對MCU斷電

另一種作法是電源電力足夠是供電,當電力不足時,latch 電路先行斷電,可避免電池過度使用。

 

undefined

資料來源:Power Control for Your Product: Starting and Stopping Electrons

undefined

直到最近在實作LinkIt 7688 Duo 時發現整個作業系統要闗機是個很大的問題,先來

問題描述:

從作業系統的角度而言,系統尚未完成 I/O 操作或正在作檔案系統的讀寫,此時測試版如果不預期的斷電,就有可能會造成系統不正常的結束。整個測試版損毀下次將會無法正常開機。
根據官方文件說明如果有三種這種現象那就是你的開發版掛點了-
變磚 ,首先,可透過更新韌體的方式進行修復( 解磚 )。

(1)板子上的 flash 速度比平常慢,而且好像快壞掉了,這是為什麼呢?

板子內建的 SPI NOR flash 有其寫入壽命 (約十萬次) 而且其檔案系統的操作並非不可中斷 (atomic) 的,以至於若 flash 過於頻繁的讀寫或者是在寫入途中遇到斷電等狀況,很有可能會造成 flash 或是檔案系統的損毀。因此,建議頻繁的 I/O 存取可改用 /tmp 的 RAM disk (斷電後會消失) 或是將檔案系統延伸至 SD 卡上,都可提供更快速且穩定的 I/O 操作。

(2)檔案系統好像損毀了 / 開機時橘色 LED 一直亮著無法正常開機,發生什麼事了?

 當你想要將 LinkIt Smart 7688 關機時,不建議直接拔除 USB 線或是使用其他直接斷電的操作,否則將會有檔案系統損毀進而無法開機的現象發生。標準做法為:想要將系統關機時,先至命令列         (透過 SSH 或是 UART) 中輸入 reboot 或是 poweroff 的指令*,讓系統將所有尚未完成的 I/O 操作完成。等到這一步驟完成後,你會看到板上的橘色 LED 閃爍並亮起準備進行開機程序時,就可以       安全地將系統斷電。
      * OpenWrt 作業系統並無提供 shutdown 這個指令,而且 poweroff 指令與 reboot 指令都是相同的行為 (亦即重開機)。

(3)為什麼我的板子變磚無法開機了?

請參考上題,板子上的檔案系統可能已經損毀了。

從個人的運作經驗得知,當使用者下了 reboot 或是 poweroff 的指令後,你會看到板上的橘色 LED 閃爍並亮起準備進行開機程序時,經過大約6 秒後我們才可以安全地將系統斷電

但此時如没有及時斷電,系統將會開始執行下面的開機程序,橘色 LED 又開閃爍進行開機。

undefined

解決方案:

所以我的需求如下:
(1)電源管理版上有開機按鍵,手按開機鍵可一直供電給
LinkIt Smart 7688

(2)電源管理版上有關機按鍵,手按關機鍵後LinkIt Smart 7688開始關機。
(3)電源持續供電6秒後,斷開電源。

而我提的解決方法是利用Relay 自保持電路維持供電,再利用555 計時電路延續6秒後再斷電。

undefined

Relay 自保持電路

undefined

555 計時電路延續6秒

所以我依照我的需求結合且修改上面二個電路做成的電路結果如下:

下面電路輸入電源為12V,輸出電源有12V,5V,一個連接到MCU的控制信號線

而管理版上有二個控制按鈕,一個ON,一個OFF按鈕 

當按ON時電路會自保且輸出12V,5V電源。

按下off 時,電路會供電持續6秒後會切斷電源。

同時管理版上有三個LED,當有電源輸出時會亮藍色燈,
所以當電路自保時會亮綠色LED及藍色LED燈

當按OFF時,綠色LED OFF,橙色LED亮起,當所有斷電時所LED皆仁會滅

這是我依自己需求所條改的電路,我不知道網友是否有相同的問題,所以有問題可以留言再問我。

LinkIt 7688 Duo 電源管理.jpg

 

 

 

 

 

參考資料:

Power Control for Your Product: Starting and Stopping Electrons
Latching Power Switch Circuit (Auto Power Off Circuit) for ESP32, ESP8266, Arduino
Latching power switch uses momentary pushbutton
Soft Latch Power Switch (Ardweeny)

Latch and Toggle Power Circuits
Latching Relay Circuit

555 timer delay cicruit 
555 Monostable Circuit Calculator   

 

 

 

文章標籤

stanley 發表在 痞客邦 留言(1) 人氣()

電腦圖學英語:computer graphics縮寫CG)是研究電腦硬體軟體的幫助下建立電腦圖形科學學科,是電腦科學的一個分支領域,主要關注數位合成與操作視覺的圖形內容。雖然這個詞通常被認為是指三維圖形,事實上同時包括了二維圖形以及影像處理

簡單地說,電腦圖學的主要研究內容就是研究如何在電腦中表示圖形、以及利用電腦進行圖形的計算、處理和顯示的相關原理與演算法。圖形通常由、體等幾何元素和灰度色彩、線型、線寬等非幾何屬性組成。從處理技術上來看,圖形主要分為兩類,一類是基於線條資訊表示的,如工程圖等高線地圖曲面線框圖等,另一類是明暗圖,也就是通常所說的真實感圖形。

電腦圖學一個主要的目的就是要利用電腦產生令人賞心悅目的真實感圖形。為此,必須建立圖形所描述的場景的幾何表示,再用某種光照模型,計算在假想的光源、紋理、材質屬性下的光照明效果。所以電腦圖學與另一門學科電腦輔助幾何設計有著密切的關係。事實上,圖學也把可以表示幾何場景的曲線曲面造型技術和實體造型技術作為其主要的研究內容。同時,真實感圖形計算的結果是以數字圖象的方式提供的,電腦圖學也就和圖像處理有著密切的關係。

圖形與圖像兩個概念間的區別越來越模糊,但還是有區別的:圖像純指電腦內以點陣圖形式存在的灰度資訊,而圖形含有幾何屬性,或者說更強調場景的幾何表示,是由場景的幾何模型和景物的物理屬性共同組成的。

電腦圖學的研究內容非常廣泛,如圖形硬體圖形標準圖形互動技術光柵圖形生成演算法曲線曲面造型實體造型真實感圖形計算與顯示演算法、非真實感繪製,以及計算視覺化電腦動畫自然景物仿真虛擬實境等。

幾何學(英語:Geometry古希臘語γεωμετρία)簡稱幾何。幾何學是數學的一個基礎分支,主要研究形狀、大小、圖形的相對位置等空間區域關係以及空間形式的度量。

齊次座標(homogeneous coordinates) 
所謂齊次坐標就是將一個原本是n維的向量用一個n+1維向量來表示。 
例如,二維點(x,y)的齊次坐標表示為(hx,hy,h) 
齊次坐標的優點: 
1、許多圖形應用涉及到幾何變換,以矩陣表達式來計算這些變換時,平移是矩陣相加,而旋轉和縮放則矩陣相乘,綜合起來可以表示為p' = m1*p + m2,引入齊次坐標的目的主要是合併矩陣運算中的乘法和加法,表示為 p' = M*p 的形式。 
2、它可以表示無窮遠的點。n+1維的齊次坐標中如果 h=0,實際上就表示了n維空間的一個無窮遠點。 

 

重點:

(1) 圖形通常由、體等幾何元素灰度色彩、線型、線寬等非幾何屬性組成
     從處理技術上來看,圖形主要分為兩類,一類是基於線條資訊表示的,如工程圖等高線地圖曲面線框圖等,
     另一類是明暗圖,也就是通常所說的真實感圖形。

(2) 圖像純指電腦內以點陣圖形式存在的灰度資訊,而
     圖形含有幾何屬性,或者說更強調場景的幾何表示,是由場景的幾何模型和景物的物理屬性共同組成的。
 

資料來源:

維基百科,自由的百科全書

 

 

 

文章標籤

stanley 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼