目前版本有 : 2.7 、 3.3
目前互不支援,但2.7有較多第三方支援
------ 如何安裝------
1 . 請至官方網站下載 : python ( 像是 Java 的 SDK )
目前安裝 2.7版本
安裝目標 : D:\Python ( 可依個人需求更改,但要記得位置 )
2 . 新增環境變數 : Path -> ;D:\Python
------ 如何執行 ------
目前有 Window 有幾種方法執行 ( 二選一 ):
1 . 命令提示字元 ( cmd ) 內 :
( 寫入 D: -> python )( 對應安裝的位置 )
2 . 下載 : pythonWin
(Files -> pywin32 -> Build219 -> pywin32-219.win32-py2.7.exe)
以下是執行的畫面 :
備註 : 有大大問,哪一種比較實用。因為目前沒深入研究
對版大來說沒有明顯的差異。
------ 離開指令 ------
exit() ( 離開 )
參考資料 : 初試 Python
參考資料 : [教學] 如何在 Windows 平台建立 Python 編程環境
參考資料 : Python免費學習資源、推薦書籍
2015年2月27日 星期五
2015年2月25日 星期三
2015年2月23日 星期一
Arduino-步進馬達 A3967驅動板
利用兩輸入腳位控制步進馬達( 兩相四線 )
//定義腳位
#define DIR_PIN 2
#define STEP_PIN 3
//腳位模式
void setup() {
pinMode(DIR_PIN, OUTPUT);
pinMode(STEP_PIN, OUTPUT);
}
void loop(){
//rotate a specific number of degrees
rotateDeg(360, 1);
delay(1000);
rotateDeg(-360, .1); //reverse
delay(1000);
//rotate a specific number of microsteps (8 microsteps per step)
//a 200 step stepper would take 1600 micro steps for one full revolution
rotate(1600, .5);
delay(1000);
rotate(-1600, .25); //reverse
delay(1000);
}
//迴轉
void rotate(int steps, float speed){
//先確認要正/逆時鐘,所以先確認腳位的高低電壓
int dir = (steps > 0)? HIGH:LOW;
steps = abs(steps);
digitalWrite(DIR_PIN,dir);
float usDelay = (1/speed) * 70;
for(int i=0; i < steps; i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}
//旋轉角度
void rotateDeg(float deg, float speed){
//rotate a specific number of degrees (negitive for reverse movement)
//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
int dir = (deg > 0)? HIGH:LOW;
digitalWrite(DIR_PIN,dir);
int steps = abs(deg)*(1/0.225);
float usDelay = (1/speed) * 70;
for(int i=0; i < steps; i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}
A3967 DateSheet : 連結在此
參考網址 : 連結在此
歡迎轉載,請註明出處
2015年2月16日 星期一
Java-線程( 二 )
Volatile boolean
Thread.yield( );
讓出處理器時間,接下來該誰執行是未知數
Thread.join( );
會等待此執行續完成後,才接下來執行別的執行續
Thread.yield( );
讓出處理器時間,接下來該誰執行是未知數
Thread.join( );
會等待此執行續完成後,才接下來執行別的執行續
2015年2月15日 星期日
JAVA-線程( 一 )
進程 : 一個班級
線程 : 班級內的學生
一個線程可有多的線程
線程的溝通可以是 :
1 . 同步 : 一起合作完成海報
2 . 互斥 : 筆記同時只能借給一個人,其餘就只能等待
Thread and Runnable
Output :
Mr.Thread 開始演出 ~!
Mr.Thread 表演中 1次 !
Mr.Thread 表演中 2次 !
Mr.Thread 表演中 3次 !
Mr.Thread 表演中 4次 !
Mr.Thread 表演中 5次 !
Ms.Runnable 開始演出 ~!
Ms.Runnable 表演中 1次 !
Ms.Runnable 表演中 2次 !
Ms.Runnable 表演中 3次 !
Ms.Runnable 表演中 4次 !
Ms.Runnable 表演中 5次 !
Mr.Thread 表演中 6次 !
Mr.Thread 表演中 7次 !
Mr.Thread 表演中 8次 !
Mr.Thread 表演中 9次 !
Mr.Thread 表演中 10次 !
Ms.Runnable 表演中 6次 !
Ms.Runnable 表演中 7次 !
Ms.Runnable 表演中 8次 !
Ms.Runnable 表演中 9次 !
Ms.Runnable 表演中 10次 !
Mr.Thread 演出結束 !
Ms.Runnable 演出結束 !
來源為 : 慕課網教學筆記
線程 : 班級內的學生
一個線程可有多的線程
線程的溝通可以是 :
1 . 同步 : 一起合作完成海報
2 . 互斥 : 筆記同時只能借給一個人,其餘就只能等待
Thread and Runnable
public class actor extends Thread{
public void run() {
System.out.println(getName() + " 開始演出 ~!");
for(int i=1; i<11; i++){
System.out.println(getName()+" 表演中 "+i +"次 !");
if(i %5 == 0){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
System.out.println(getName() + " 演出結束 !");
}
public static void main(String []arg0){
Thread actor_1 = new actor();
actor_1.setName("Mr.Thread");
actor_1.start();
Thread actor_2 = new Thread(new actors(), "Ms.Runnable");
actor_2.start();
}
}
class actors implements Runnable{
public void run() {
System.out.println(Thread.currentThread().getName() + " 開始演出 ~!");
for(int i=1; i<11; i++){
System.out.println(Thread.currentThread().getName()+" 表演中 "+i +"次 !");
if(i %5 == 0){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
System.out.println(Thread.currentThread().getName() + " 演出結束 !");
}
}
Output :
Mr.Thread 開始演出 ~!
Mr.Thread 表演中 1次 !
Mr.Thread 表演中 2次 !
Mr.Thread 表演中 3次 !
Mr.Thread 表演中 4次 !
Mr.Thread 表演中 5次 !
Ms.Runnable 開始演出 ~!
Ms.Runnable 表演中 1次 !
Ms.Runnable 表演中 2次 !
Ms.Runnable 表演中 3次 !
Ms.Runnable 表演中 4次 !
Ms.Runnable 表演中 5次 !
Mr.Thread 表演中 6次 !
Mr.Thread 表演中 7次 !
Mr.Thread 表演中 8次 !
Mr.Thread 表演中 9次 !
Mr.Thread 表演中 10次 !
Ms.Runnable 表演中 6次 !
Ms.Runnable 表演中 7次 !
Ms.Runnable 表演中 8次 !
Ms.Runnable 表演中 9次 !
Ms.Runnable 表演中 10次 !
Mr.Thread 演出結束 !
Ms.Runnable 演出結束 !
2015年2月8日 星期日
Arduino-步進馬達+A4988步進馬達驅動晶片
Sample :
http://www.geeetech.com/wiki/index.php/StepStick_A4988_Stepper_Driver_Module
http://nxtmarket.info/item/18857461634
Vedio :
https://www.youtube.com/watch?v=PrV-SLxIIFE
https://www.youtube.com/watch?v=lvaBb-rPepY
https://www.youtube.com/watch?v=xEcgYMPkykA
利用PWM腳位控制、9110模組控制
http://www.geeetech.com/wiki/index.php/StepStick_A4988_Stepper_Driver_Module
http://nxtmarket.info/item/18857461634
Vedio :
https://www.youtube.com/watch?v=PrV-SLxIIFE
https://www.youtube.com/watch?v=lvaBb-rPepY
https://www.youtube.com/watch?v=xEcgYMPkykA
利用PWM腳位控制、9110模組控制
int dirPin = 8;
int stepperPin = 7;
void setup()
{
pinMode(dirPin, OUTPUT);
pinMode(stepperPin, OUTPUT);
}
void step(boolean dir,int steps)
{
digitalWrite(dirPin,dir);
delay(50);
for(int i=0;i<steps;i++){
digitalWrite(stepperPin, HIGH);
delayMicroseconds(800);
digitalWrite(stepperPin, LOW);
delayMicroseconds(800);
}
}
void loop()
{
step(true,1600);
delay(500);
step(false,1600*5);
delay(500);
}
void setup(){
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop(){
int i = 50;
//順
digitalWrite(4,HIGH);
delay(i);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
delay(i);
digitalWrite(5,LOW);
/*
//逆
digitalWrite(6,HIGH);
delay(i);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(i);
digitalWrite(7,LOW);
*/
}
2015年2月7日 星期六
Arduino-紅外線 發送/接收 證明實驗
這幾天測試紅外線一直遇到讓人無奈的事
挑選紅外線LED記得要慎選( 記得一定要問元件規格!!! )
水藍色紅外線LED有可能是發射也有可能是接收!
但深色( 不透光 )的紅外線接收器很大的機率就是接收器了
要慎選!!!
要慎選!!!
要慎選!!!
因為紅外線的波長人類的肉眼是無法分析的,所以一定要有一個測試方法
但光一個儀器動輒就是幾張小朋友
今天我們就以簡單的電路來實測紅外線 發射( 發送 ) / 接收 電路
電路圖如下 :
注意 :
1 . 串接LED前一定要接電阻,避免直接讓元件燒毀。
2 . 發送 / 接收 的紅外線LED腳位是不一樣的。
未收到紅外線訊號( 燈亮 ) :
收到紅外線訊號 ( 熄滅 ) :
實驗結果 :
紅外線接收器屬於被動元件
若接收到紅外線,則元件產生變化,讓電路導通;反之,則無法導通。
歡迎轉載,請註明出處。
挑選紅外線LED記得要慎選( 記得一定要問元件規格!!! )
水藍色紅外線LED有可能是發射也有可能是接收!
但深色( 不透光 )的紅外線接收器很大的機率就是接收器了
要慎選!!!
要慎選!!!
要慎選!!!
因為紅外線的波長人類的肉眼是無法分析的,所以一定要有一個測試方法
但光一個儀器動輒就是幾張小朋友
今天我們就以簡單的電路來實測紅外線 發射( 發送 ) / 接收 電路
電路圖如下 :
注意 :
1 . 串接LED前一定要接電阻,避免直接讓元件燒毀。
2 . 發送 / 接收 的紅外線LED腳位是不一樣的。
未收到紅外線訊號( 燈亮 ) :
收到紅外線訊號 ( 熄滅 ) :
實驗結果 :
紅外線接收器屬於被動元件
若接收到紅外線,則元件產生變化,讓電路導通;反之,則無法導通。
歡迎轉載,請註明出處。
訂閱:
文章 (Atom)