2019年12月13日 星期五

[stm32]timer and interrupts.


玩玩看,圖形化介面設定 STM32Cube 及 IDE 功能...

不錯的文章:
https://microtechnics.ru/en/stm32cube-timer-and-interrupts/

2019年12月11日 星期三

[C#] StringBuilder



String 物件不可變.每次您使用 System.String 類別的其中一個方法時,就會在記憶體中建立新的字串物件,這需要為該新物件配置新的空間.在您需要重複修改字串的情況下,與建立新 String 物件相關聯的額外負荷可能成本高昂.當您想要修改字串,而不建立新物件時,可以使用 System.Text.StringBuilder 類別. 例如,在迴圈中將許多字串串連在一起時,可以使用 StringBuilder 類別來提升效能.




不錯的文張:

在 .NET 中使用 StringBuilder 類別
https://docs.microsoft.com/zh-tw/dotnet/standard/base-types/stringbuilder

Day20-C#-StringBuilder

2019年12月6日 星期五

照著書本打

練習一下...

import requests
import re

url='http://www.mcut.edu.tw'
htmlfile=requests.get(url)
if htmlfile.status_code == requests.codes.ok:
    print("ok")
    print("html size=",len(htmlfile.text))

    pattern=input("search pattern:")
    if pattern in htmlfile.text:
        print("search %s ok" %pattern)
    else:
        print("search %s fail" %pattern)

    name=re.findall(pattern,htmlfile.text)
    if name !=None:
        print("%s find %d" %(pattern,len(name)))
    else:
        print("%s find 0" % pattern)

else:
    print("ng")

2019年11月15日 星期五

變更組裝,加入超音波測距模組





https://hackmd.io/@yoyostudy/ByGowUKIO


先讓它動起來:

int M1 = 10; //enable right whell
int E1 =12;  //high;forward
int M2 =11;  //enable left whell                    
int E2 = 13; //high:forward

int BUZZER =4;

int TRIGGER_OUT=7;
int ECHO_IN=8;


long ultrasonic_rangefinder()
{
  digitalWrite(TRIGGER_OUT, HIGH);     // 給 Trig 高電位,持續 10微秒
  delayMicroseconds(10);
  digitalWrite(TRIGGER_OUT, LOW);

  long duration = pulseIn(ECHO_IN, HIGH);  

  long cm = (duration/2) / 29.1;        
  return(cm);
}



void motor_forward()
{
  digitalWrite(M1,HIGH);
  digitalWrite(E1,HIGH);
  digitalWrite(M2,HIGH);
  digitalWrite(E2,HIGH);
}

void motor_stop()
{
  digitalWrite(M1,LOW);
  digitalWrite(M2,LOW);
}


void motor_backward()
{
  digitalWrite(M1,HIGH);
  digitalWrite(E1,LOW);
  digitalWrite(M2,HIGH);
  digitalWrite(E2,LOW);
}

void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);

  //initial motor
  pinMode(M1, OUTPUT);
  pinMode(E1, OUTPUT);
  pinMode(M2, OUTPUT);
  pinMode(E2, OUTPUT);

  //initial buzzer
  pinMode(BUZZER,OUTPUT);

  //initial ultrasonic rangefinder
  pinMode(TRIGGER_OUT,OUTPUT);
  pinMode(ECHO_IN,INPUT);

  //motor stop
  digitalWrite(M1,LOW);
  digitalWrite(M2,LOW);

  //buzzer off
  digitalWrite(BUZZER,LOW);

  //ultrasonic rangefinder off
  digitalWrite(TRIGGER_OUT,LOW);
 
}

void loop() {
  // put your main code here, to run repeatedly:
 
  long dist,dist1,dist2;

  delay(50);
 
  dist1=ultrasonic_rangefinder();
  dist2=ultrasonic_rangefinder();
  dist=(dist1+dist2)/2;
 
  Serial.print(dist);
  Serial.print(" ");
  if(dist>50)
  {
    motor_forward();
    digitalWrite(BUZZER,LOW);
  }
  else if(dist<20)
  {
    motor_backward();
    digitalWrite(BUZZER,HIGH);
  }

}


成功....YA!! YA!!

跑得好慢.....Zzzz



2019年11月1日 星期五

組裝










將L298N 換成L298P模組,不用跳接太多線
https://protosupplies.com/product/l298p-motor-driver-shield/
https://www.taiwansensor.com.tw/product/l298p-motor-shield-arduino-%E7%9B%B4%E6%B5%81%E9%A6%AC%E9%81%94%E9%A9%85%E5%8B%95%E6%A8%A1%E7%B5%84-%E7%9B%B4%E6%B5%81%E9%9B%BB%E6%A9%9F%E9%A9%85%E5%8B%95%E6%A8%A1%E7%B5%84/


2019年9月25日 星期三

2019年9月17日 星期二

[linux]shell script 教學

不錯的文章

http://www.runoob.com/linux/linux-shell.html

linux echo命令的-n、-e两个参数
http://blog.sina.com.cn/s/blog_4da051a6010184uk.html

let命令
https://man.linuxde.net/let

http://mirror.sars.tw/Bash_Shell_by_ols3/c860.html

python 調用shell python shell 間變量傳遞
https://blog.csdn.net/ysdaniel/article/details/7970978  -->怪怪的!!

How to import python variable in shell script
https://unix.stackexchange.com/questions/316895/how-to-import-python-variable-in-shell-script

2019年8月29日 星期四

[raspberry]USB音效卡

不知為什麼,系統開機的audio 都無法預設成 usb audio.......@$%


不錯的文張

Using a USB Audio Device With a Raspberry Pi
https://computers.tutsplus.com/articles/using-a-usb-audio-device-with-a-raspberry-pi--mac-55876

Using a USB Audio Device with the Raspberry Pi
https://www.raspberrypi-spy.co.uk/2019/06/using-a-usb-audio-device-with-the-raspberry-pi/

Raspberry Pi 筆記(11):音效設定與播放器
https://atceiling.blogspot.com/2014/02/raspberry-pi.html

USB Audio Cards with a Raspberry Pihttps://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/instructions

2019年8月22日 星期四

[raspberry] python操作 GPIO

不錯的文張

讓你的 Raspberry Pi 透過 GPIO 閃爍 LED 燈
https://coldnew.github.io/f7349436/

2019年8月13日 星期二

[raspberry]python 操作 i2c

不錯的文張

Raspberry PI3 - 如何使用 Python 控制 Raspberry Pi 3 的 I2Chttp://andychen15577.blogspot.com/2016/08/raspberry-pi3-python-raspberry-pi-3-i2c.html

i2c-tools 的使用方法, i2cdetect 、 i2cdump、i2cset
https://b8807053.pixnet.net/blog/post/347698301-linux-tool---%3A--i2c-tools-%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%EF%BC%8C-i2cdetect-%E3%80%81-i

2019年7月29日 星期一

[linux] ubuntu使用SSH安全加密連線遠程登錄


不錯的文章喔!!

[Linux系統] ubuntu利用SSH安全加密連線遠程登錄
https://andy6804tw.github.io/2019/01/23/ubuntu-ssh-remote/
Linux 的 scp 指令用法教學與範例:遠端加密複製檔案與目錄
https://blog.gtwang.org/linux/linux-scp-command-tutorial-examples/

2019年6月12日 星期三

[#]study get battery status

要 reference Windows.Devices.Power 就失敗了.






有用的文章:
Calling Windows 10 APIs From a Desktop Application
https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/#0VBvIDw8jFwbXajH.97

Battery and charging
https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/battery-and-charging

初探C#操作WMI類別及其應用
http://einboch.pixnet.net/blog/post/266960399-%E5%88%9D%E6%8E%A2c%23%E6%93%8D%E4%BD%9Cwmi%E9%A1%9E%E5%88%A5%E5%8F%8A%E5%85%B6%E6%87%89%E7%94%A8

Battery Level using System Management in C#https://stackoverflow.com/questions/18124436/battery-level-using-system-management-in-c-sharp

不錯的範例
https://gist.github.com/ahawker/9715872

2019年5月30日 星期四

[python]flask 練習


不錯的文張:

https://hackmd.io/s/H1CMTVheG

https://cutejaneii.wordpress.com/2017/11/06/python-2-%E4%BD%BF%E7%94%A8pythonflask%E6%92%B0%E5%AF%ABapi/







How to get data received in Flask request
jinja2.exceptions.TemplateNotFound: bootstrap/base.html
https://stackoverflow.com/questions/44318142/jinja2-exceptions-templatenotfound-bootstrap-base-html


Flask學習筆記-Flask模板整合Bootstraphttps://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/13232/

2019年5月29日 星期三

[python]timer


練習:

from threading import Timer
import time
def tick_run():
    print("timer wakeup")
class RepeatingTimer(Timer):
    def run(self):
        while not self.finished.is_set():
            self.function(*self.args,**self.kwargs)
            self.finished.wait(self.interval)
t=RepeatingTimer(5.0,tick_run)
t.start()
while True:
    time.sleep(1)
    print("main wakeup")





不錯的文章:
https://www.twblogs.net/a/5c894d8ebd9eee35fc148ca6

2019年4月28日 星期日

[linux]study

不錯的文章:

認識系統服務daemons
http://bluelove1968.pixnet.net/blog/post/222286828-%E8%AA%8D%E8%AD%98%E7%B3%BB%E7%B5%B1%E6%9C%8D%E5%8B%99-daemons

 更改檔案擁有者與群組,chown指令使用較學與範例
https://blog.gtwang.org/linux/linux-chown-command-tutorial/

使用SSMTP與GMail以指令或程式自動寄信教學
https://blog.gtwang.org/iot/raspberry-pi/linux-send-mail-command-using-ssmtp-and-gmail/

2019年4月27日 星期六

[raspberry]攝影機學習

https://hackmd.io/vbHvp33ARgOmhlW0LlvZcw?view

gmail 無兩階段認證時,須將如下打開,才可寄信:
Google帳戶 -> 安全性 ->低安全性應用程式存取權->開啟



不錯的文章:
樹莓派 Raspberry Pi 自製智慧型監視器,自動遠端通報系統
https://blog.gtwang.org/iot/raspberry-pi/how-to-diy-home-alarm-system-with-raspberry-pi-and-webcam/

樹莓派 Raspberry Pi 與 USB 網路攝影機,自製縮時攝影設備教學
https://blog.gtwang.org/iot/raspberry-pi/raspberry-pi-time-lapse-using-motion-and-webcam/

2019年4月21日 星期日

[python]uart 通訊



不錯的文章:
Python通過pyserial控制串列埠操作https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/584468/

2019年4月11日 星期四

[raspberry]study

更新FW
sudo apt-get update
sudo apt-get upgard
sudo rpi-update
sudo shutdown -r now

安裝網頁伺服器 apache2
sudo apt-get install apache2



安裝PHP
sudo apt-get install php libapache2-mod-php php-mcrypt


不錯的文章:
如何更新Raspbian
https://www.raspberrypi.com.tw/tag/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%96%B0raspbian/

Raspberry Pi安裝Apache+PHP+MySQL+Perl
 https://hackmd.io/s/Sy0SfRkh

Raspberry pi 安裝 Apache、PHP
 http://dirtypig8.blogspot.com/2018/01/raspberry-pi-apachephp.html

2019年4月9日 星期二

[python]抓取yahoo 台股歷史股價

import pandas as pd
import pandas_datareader.data as web
import datetime as dt
import fix_yahoo_finance as yf

yf.pdr_override()
start=dt.datetime(2010,1,1)
end=dt.datetime(2019,3,10)
df_2330 = web.DataReader('2330.TW', 'yahoo', start, end)
df_2330.to_csv('file.csv')

df=pd.read_csv('file.csv')
print(df.head())


不錯的文章:
Python新手教學(1)用爬蟲爬全球股價
https://www.finlab.tw/%E7%94%A8%E7%88%AC%E8%9F%B2%E7%88%AC%E5%85%A8%E4%B8%96%E7%95%8C%E8%82%A1%E5%83%B9/

用 Python pandas_datareader 抓台灣股價
http://thebacksade.blogspot.com/2017/10/python-pandasdatareader.html

從 pandas 開始 Python 與資料科學之旅
https://medium.com/datainpoint/%E5%BE%9E-pandas-%E9%96%8B%E5%A7%8B-python-%E8%88%87%E8%B3%87%E6%96%99%E7%A7%91%E5%AD%B8%E4%B9%8B%E6%97%85-8dee36796d4a

2019年4月4日 星期四

[linux]Linux 檔案結構

目錄結構-->說明
bin-->重要執行檔
boot-->系統開機的一些載入檔
cdrom-->光碟機裡的資料被掛上來的地方
etc-->系統設定檔
lib-->基本函式庫
mnt-->可以掛上其他檔案系統
proc-->整個系統的運作資訊
vmlinuz-->系統核心檔案

/proc下的檔案介紹
more cupinfo-->cpu訊息
more devices-->區塊設備,字元設備
more filesystems-->目前核心支援的檔案系統
more dma-->直接記憶體存取
more interrupt-->中斷向量值,中斷次數
more ioports-->每個設備的輸出/輸入埠的位址範圍
more meminfo-->記憶體的分配狀態
mpre pci-->顯示PCI介面訊息

2019年4月3日 星期三

[raspberry] VNC 遠端控制

一知半解,試了好久,終於找到如下範例,一試就成功了

I failed to remote connect to Raspberry Pi 3 from Ubuntuhttps://raspberrypi.stackexchange.com/questions/68838/i-failed-to-remote-connect-to-raspberry-pi-3-from-ubuntu

不錯的文章:
安裝與設定Raspberry Pi的RealVNC伺服器
 https://swf.com.tw/?p=795

2019年4月2日 星期二

[raspberry]設定網路固定IP位址

cd /etc/network
sudo nano interfaces

打入如下內容:
auto eth0
iface eth0 inet static
address 1192.168.1.XX(希望的位址)
gateway 192.168.1.254
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.125

按 Ctrl+O ,然後按 Enter 存檔
按 Ctrl+X 離開

重新開機

不錯的文章:
树莓派设置固定IP地址的三种方法 https://www.jianshu.com/p/308fb22a7dab

2019年3月31日 星期日

[python]time AND subprocess function

簡單的 time 範例:

import time
now=time.localtime()
print(now)
print(now.tm_hour)
print(now.tm_min)
print(now.tm_sec)

不錯的文章:
Python 日期和時間
http://www.runoob.com/python/python-date-time.html

Python多进程(1)——subprocess与Popen()

Cheatsheet for Python subprocess

2019年3月28日 星期四

[python] feedparser

不太了解,先記著:

Python解析RSS(feedparser安裝與使用)
https://www.twblogs.net/a/5c600b1fbd9eee06ef3712ce


Using Feedparser in Pythonhttps://www.pythonforbeginners.com/feedparser/using-feedparser-in-python


嘗試建立gamil  有新郵件通知

USERNAME="mymain@gmail.com" 
PASSWORD="mypassword" 
PROTO="https://" 
SERVER="mail.google.com"
 PATH="/gmail/feed/atom"

newmails = int(feedparser.parse( PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH )["feed"]["fullcount"])

一直都失敗,找不到原因 ???

2019年3月20日 星期三

[python]攝影機檔案儲存

cap=cv2.VideoCapture(0)

#decode
fourcc=cv2.VideoWriter_fourcc('I', '4', '2', '0')

#image save
out=cv2.VideoWriter('out.avi',fourcc,20.0,(640,480))

while(cap.isOpened()):
    ret,frame=cap.read()
    if ret==True:
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1)& 0xFF==ord('q'):
            break
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

2019年3月19日 星期二

[python]開啟攝影機

cap=cv2.VideoCapture(0)
while(cap.isOpened()):
    ret,frame=cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1)& 0xFF==ord('q'):
            break

2019年3月7日 星期四

[python]使用opencv 秀圖

在 visual studio ,安裝 opencv,必須在安裝 packeage 的搜尋地方打入 opencv-python 才行

簡單的程式:

import cv2
import numpy as np
import os
mywd="c:\pydata"
os.chdir(mywd)
cv2.namedWindow("test_show",1)
img=cv2.imread("1.jpg",1)
cv2.imshow("test_show",img)
cv2.waitKey(0)  ==>沒寫這欄,只會有框,不會秀圖........

成功!!!

2019年3月5日 星期二

[python]在visual studio 中安裝套件

不錯的文章:

在您的 Python 環境中安裝套件https://docs.microsoft.com/zh-tw/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-05-installing-packages?view=vs-2017

2019年2月10日 星期日

[window]如何在window下 fdisk usb flash friver (使用linux分割過的)


不錯的文章
https://www.howtogeek.com/235824/how-to-clean-a-flash-drive-sd-card-or-internal-drive-to-fix-partition-and-capacity-problems/

2019年1月22日 星期二

[raspberry pi]How To Mount A USB Flash Disk On The Raspberry Pi

不錯的文章
https://www.raspberrypi-spy.co.uk/2014/05/how-to-mount-a-usb-flash-disk-on-the-raspberry-pi/

What Is the Linux fstab File, and How Does It Work?
https://www.howtogeek.com/howto/38125/htg-explains-what-is-the-linux-fstab-and-how-does-it-work/

[raspberry pi]IoT Weather Station With RPi and ESP8266

不錯的文章:
https://www.instructables.com/id/IoT-Weather-Station-With-RPi-and-ESP8266/