螞蟻是一種非常神奇的生物,個子雖小,卻可以舉起自己體重 52 倍的東西,拖運超過自己體重1400 倍的物體。而且不只辛勤工作,更有龐大的組織能力,每天一點一滴的努力,終能構築出令人驚嘆的螞蟻宮殿。希望在學習的過程中,我們也能像螞蟻一樣,努力不懈,慢慢累積,有一天也可以建造出自己的知識王國。 蘋果公司創辦人賈伯斯曾說過: Stay hungry, stay foolish.(求知若渴,虛心若愚)。保持學習的習慣,從學習中尋找樂趣,記錄學習過程,並分享給其他的學習者~~~
2020年5月12日 星期二
2020年5月4日 星期一
最簡單的圖片裁切和縮放方式
由於Facebook, IG, Line等社群媒體的盛行,遇到圖片編修的機率非常高,要嘛太大太小需要改變尺寸,要嘛比例不對需要裁減,當然有很多影像處理軟體和線上網站可用,但是各位知道你得電腦中就有一個不用花錢,小而美的工具軟體可用嗎?
那就是微軟的小畫家。
Q. 如何開啟小畫家?
A. 它在"開始" -> "Windows附屬應用程式" -> "小畫家"
Q. 如何裁切圖片?
A. 開啟小畫家之後,按檔案->開啟舊檔 選到你要的圖片,然後選擇圖中的選取,這個時候你就可以任意選取圖中的一個方形區域,作為裁切的標的。決定裁切的區域之後按裁切,然後就完成了,記得另存新檔或存檔。
那就是微軟的小畫家。
Q. 如何開啟小畫家?
A. 它在"開始" -> "Windows附屬應用程式" -> "小畫家"
Q. 如何裁切圖片?
A. 開啟小畫家之後,按檔案->開啟舊檔 選到你要的圖片,然後選擇圖中的選取,這個時候你就可以任意選取圖中的一個方形區域,作為裁切的標的。決定裁切的區域之後按裁切,然後就完成了,記得另存新檔或存檔。
裁切前的圖片
選取你要的區域
裁切之後的圖片
Q. 如何縮放圖片?
A. 開啟小畫家之後,選取你要的圖片,然後點選"調整大小",然後就可以依照需要進行大小的調整,調整方式有兩種輸入百分比或像素,另外,系統預設是等比例縮放,如果你要長寬任意調整,就必須把"維持外觀比例"的選項取消。
"調整大小"的位置
縮放圖片時,要注意這三個選項,依需要選擇。
等比例縮小50%
非等比例縮放,會造成圖片變形,宜謹慎使用。
2020年5月1日 星期五
Arduino 循跡車程式
/**************************************************
Arduino 循跡車程式
硬體: Arduino Uno + L298N + TCRT5000 + TT減速馬達
原理是用TCRT5000感應模組(車頭左右各一個),
當感應器偵測到黑色物體時會傳回1,否則會傳回0,
據此我們可以判斷(左,右) =
(0,0)時,車子剛好在黑線這上方,所以直行,
(1,0)時,左邊已經壓線,所以要左轉,
(0,1)時,右邊已經壓線,所以要右轉,
(1,1)時,左右兩邊都已壓在黑線上,所以停止車子。
注意!!!!!
車子速度不可太快,否則一下子就會衝出線外,無法控制。
大魷魚創客工作室 2020.4.4
https://www.facebook.com/groups/806191766461206/
***************************************************/
int R_TCRT_Pin = 2; //右邊感應器連接在D2
int L_TCRT_Pin = 12; //左邊感應器連接在D12
const int IN1 = 3; //馬達控制板連接在D3, D5, D6, D9
const int IN2 = 5;
const int IN3 = 6;
const int IN4 = 9;
void setup() {
Serial.begin (9600);
pinMode(R_TCRT_Pin, INPUT); //把D2設成輸入模式
pinMode(L_TCRT_Pin, INPUT); //把D12設成輸入模式
}
void loop()
{
int R=0, L=0; //存放左,右感應器狀態的變數,預設值給定為0
byte speed = 128;
R = digitalRead(R_TCRT_Pin); //讀取右邊感應器的狀態
L = digitalRead(L_TCRT_Pin); //讀取左邊感應器的狀態
if( R==0 && L==0 ) Forward(speed); // (白,白): 車子剛好在黑線正上方,所以直行。
if( L==1 && R==0 ) Left(speed); // (黑,白): 左邊已經壓線,所以要左轉。
if( L==0 && R==1 ) Right(speed); // (白,黑): 右邊已經壓線,所以要右轉。
if( L==1 && R==1 ) Stop(); // (黑,黑): 左右兩邊都已壓在黑線上,所以停止車子。
}
void Forward(byte speed) /* 車子前進的函數 */
{ analogWrite(IN1, 0);
analogWrite(IN2, speed);
analogWrite(IN3, speed);
analogWrite(IN4, 0);
}
void Back(byte speed) /* 車子後退的函數 */
{ analogWrite(IN1, speed);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, speed);
}
void Left(byte speed) /* 車子左轉的函數 */
{ analogWrite(IN1, 0);
analogWrite(IN2,speed);
analogWrite(IN3, 0);
analogWrite(IN4, speed);
}
void Right(byte speed) /* 車子右轉的函數 */
{ analogWrite(IN1, speed);
analogWrite(IN2, 0);
analogWrite(IN3, speed);
analogWrite(IN4, 0);
}
void Stop() /* 車子停止的函數 */
{ analogWrite(IN1, 0);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}
Arduino 循跡車程式
硬體: Arduino Uno + L298N + TCRT5000 + TT減速馬達
原理是用TCRT5000感應模組(車頭左右各一個),
當感應器偵測到黑色物體時會傳回1,否則會傳回0,
據此我們可以判斷(左,右) =
(0,0)時,車子剛好在黑線這上方,所以直行,
(1,0)時,左邊已經壓線,所以要左轉,
(0,1)時,右邊已經壓線,所以要右轉,
(1,1)時,左右兩邊都已壓在黑線上,所以停止車子。
注意!!!!!
車子速度不可太快,否則一下子就會衝出線外,無法控制。
大魷魚創客工作室 2020.4.4
https://www.facebook.com/groups/806191766461206/
***************************************************/
int R_TCRT_Pin = 2; //右邊感應器連接在D2
int L_TCRT_Pin = 12; //左邊感應器連接在D12
const int IN1 = 3; //馬達控制板連接在D3, D5, D6, D9
const int IN2 = 5;
const int IN3 = 6;
const int IN4 = 9;
void setup() {
Serial.begin (9600);
pinMode(R_TCRT_Pin, INPUT); //把D2設成輸入模式
pinMode(L_TCRT_Pin, INPUT); //把D12設成輸入模式
}
void loop()
{
int R=0, L=0; //存放左,右感應器狀態的變數,預設值給定為0
byte speed = 128;
R = digitalRead(R_TCRT_Pin); //讀取右邊感應器的狀態
L = digitalRead(L_TCRT_Pin); //讀取左邊感應器的狀態
if( R==0 && L==0 ) Forward(speed); // (白,白): 車子剛好在黑線正上方,所以直行。
if( L==1 && R==0 ) Left(speed); // (黑,白): 左邊已經壓線,所以要左轉。
if( L==0 && R==1 ) Right(speed); // (白,黑): 右邊已經壓線,所以要右轉。
if( L==1 && R==1 ) Stop(); // (黑,黑): 左右兩邊都已壓在黑線上,所以停止車子。
}
void Forward(byte speed) /* 車子前進的函數 */
{ analogWrite(IN1, 0);
analogWrite(IN2, speed);
analogWrite(IN3, speed);
analogWrite(IN4, 0);
}
void Back(byte speed) /* 車子後退的函數 */
{ analogWrite(IN1, speed);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, speed);
}
void Left(byte speed) /* 車子左轉的函數 */
{ analogWrite(IN1, 0);
analogWrite(IN2,speed);
analogWrite(IN3, 0);
analogWrite(IN4, speed);
}
void Right(byte speed) /* 車子右轉的函數 */
{ analogWrite(IN1, speed);
analogWrite(IN2, 0);
analogWrite(IN3, speed);
analogWrite(IN4, 0);
}
void Stop() /* 車子停止的函數 */
{ analogWrite(IN1, 0);
analogWrite(IN2, 0);
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}
訂閱:
文章 (Atom)