2020年10月27日 星期二

[Web]Part-1-Ch1-2

1.新增如下結構
2.在css資料夾裡新增下面兩個檔案
3.編輯index.html

<!DOCTYPE html>
<html lang="zh-Hant-TW">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>

<body>
</body>

</html>

效果


4.編輯index.html
<!DOCTYPE html>
<html lang="zh-Hant-TW">
<head>
<meta charset="UTF-8">
<title>Test</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
</head>

<body>
<header class="header">
</header>
<div class="wrapper">
<main class="main">
</main>
<div class="sidemenu">
</div>
</div>
<footer class="footer">
</footer>
</body>

</html>

5. index.html
<!DOCTYPE html>
<html lang="zh-Hant-TW">
<head>
<meta charset="UTF-8">
<title>Test</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
</head>

<body>
<header class="header">
</header>
<div class="wrapper clearfix">
<main class="main">
</main>
<div class="sidemenu">
</div>
</div>
<footer class="footer">
</footer>
</body>

</html>

6. style.css

.header{
width: 100%;
}
.wrapper{
width: 970px;
margin: 30px auto 40px;
}

.main{
display: block;
float: left;
width: 660px;
}

.sidemenu{
float: right;
width: 275px;
}

.footer{
width: 100%;
}

.header, .main, .sidemenu, .footer{
border: 1px solid #aaa;
background-color:#ccc;
}
.header, .footer{
height: 100px;
}
.main, .sidemenu{
height: 500px;
}



.clearfix::after{
content: '';
display: block;
clear: both;
background-color:lightgreen;
}

=============
注意:
.clearfix::after{
content: '';   <---''是兩個單引號而非一個"雙引號
display: block;
clear: both;
background-color:lightgreen;
}
=============







2020年2月15日 星期六

[IBM Rational Rhapsody]試用版技術支援處



echnical Support Information
Trial Support
When you download and install Rational Software Development Platform trial products from the web, or install Rational trial products from the IBM developerWorks Software Evaluation Kits (SEKs), you are automatically entitled to trial support from Rational at no charge during the evaluation period.
Trial Resources
IBM Rational has collected these resources to help you setup, configure, and use the trial product software:
Ready to purchase? Have additional questions? Please contact your local Rational sales office for assistance.

[IBM Rational Rhapsody]資料搜尋


1.官方支援網站
https://www.ibm.com/support/knowledgecenter/zh-tw/SSB2MU/rhapsody_family_welcome.html



2.下載試用
https://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper/

2019年3月7日 星期四

[Arduino]步進馬達實驗


好久沒來寫一下心得了

今天難得比較早下班,火速看一下別人的文章,

並且操作這個作業

以下為新北中山國中創客社群的文章來源為此

寫得很棒!!

28BYJ-48 步進馬達


1.外觀與尺寸
28BYJ-48 步進馬達有兩種規格 5V 與 12V ,尺寸大小都相同,但扭矩12V比5V稍大
通常可以由如下兩種驅動器ULN2003驅動(驅動器也同時支援5V與12V)

        

尺寸與規格表(尺寸可供3D列印設計時採用)


關於更詳細的測試請參閱   5V與12V的比較



3.內部齒輪比
(1) Adafruit gear train
(2)RioRand gear train
(3)一般版

       #1  teeth: 9     #2 In:32 Out:11     #3 In:22 Out:9       #4 In:27 Out:8              #5 In:24 

減速比 64:1       (輸入圈數:輸出圈數)    


由上可知,若馬達步進角 5.625度 再乘以減速比得到輸出的解析度:
每步旋轉 5.625 x 1/64 = 0.087890625 度
若要轉一圈,需要  360/0.087890625 = 4096步


4.線路布置
28BYJ-48 步進馬達屬於四相五線步進馬達,
四相代表四組線圈 五線代表接出五條線

5.驅動法方為三種,每一種各有其優點與缺點,詳述如下

(1)一相激磁(優點:省電 缺點:轉矩小、轉速慢)
一相激磁驅動法,一圈需要2048步

int t= 10;

void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}

void loop() {
digitalWrite(8,1);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,1);
digitalWrite(10,0);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(10,1);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,1);
delay(t);

}

這是我的作業阿~~~很弱




(2)二相激磁 (優點:轉矩大 缺點:轉速慢、耗電)
二相激磁驅動法,一圈需要2048步

int t= 5;

void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}

void loop() {
digitalWrite(8,1);
digitalWrite(9,1);
digitalWrite(10,0);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,1);
digitalWrite(10,1);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(10,1);
digitalWrite(11,1);
delay(t);

digitalWrite(8,1);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,1);
delay(t);

}

依然是弱弱的作業,我的t設定為10,轉速看不出來差別


或者是直接使用內建的函式庫
#include <Stepper.h>

const int stepsPerRevolution = 2048;  
// change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 4, 6, 7, 5);
/*
pin腳接法
IN1=4
IN2=6
IN3=7
IN4=5
*/

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(5);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}


(3)一二相激磁(優點:精度提升2倍,可高轉速)

一二相激磁驅動法,一圈需要4096步

int t= 1;

void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}

void loop() {
digitalWrite(8,1);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,0);
delay(t);

digitalWrite(8,1);
digitalWrite(9,1);
digitalWrite(10,0);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,1);
digitalWrite(10,0);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,1);
digitalWrite(10,1);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(10,1);
digitalWrite(11,0);
delay(t);

digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(10,1);
digitalWrite(11,1);
delay(t);

digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,1);
delay(t);

digitalWrite(8,1);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,1);
delay(t);

}

弱弱作業來也




或者是

int t= 1000;
boolean a[]={1,1,0,0,0,0,0,1};
boolean b[]={0,1,1,1,0,0,0,0};
boolean c[]={0,0,0,1,1,1,0,0};
boolean d[]={0,0,0,0,0,1,1,1};

void setup() {
Serial.begin(115200);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}

void loop() {

for(int i=0; i<8 ; i++){
digitalWrite(8,a[i]);
digitalWrite(9,b[i]);
digitalWrite(10,c[i]);
digitalWrite(11,d[i]);
delayMicroseconds(t);
Serial.println(i);

}

}

2018年6月8日 星期五

[Arduino]Timer中斷


本文引用自
https://www.arduino.cn/thread-12445-1-1.html


// 控制 LED 亮滅, 每秒閃爍 5 次: 亮 0.1 秒滅 0.1 秒 ...
// Prescaler 用 64
volatile int ggyy = 1;  // 使用這當 Flag 給  ISR 使用 !
int ledPin =13;
/// For Prescaler == 64
///  1 秒 / (16 000 000 / 64) = 1/250000 =  0.000004 sec / per cycle
/// 0.1 sec / 0.000004 sec -1 = 25000 -1 = 24999
const int myTOP = 24999;  // 0.1 sec when Prescaler == 64
///// Interrupt Service Routine for TIMER1 CTC on OCR1A as TOP
/// 注意以下名稱是有意義的, 不可亂改 !
ISR(TIMER1_COMPA_vect)
{
  digitalWrite(ledPin, ggyy);  // ggyy 是 0 或 1
  ggyy = 1 - ggyy; //  給下次進入  ISR 用
}
void setup( ) {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW); // turn Off the LED
  cli();  // 禁止中斷
  TCCR1A = 0;
  TCCR1B = 0;
  TCCR1B |= (1<<WGM12);  // CTC mode; Clear Timer on Compare
  /// CS12, CS11, and CS10 這三個 bit 都是 1 表示使用 External clock
  // ? TCCR1B |= (1<<CS11);  // External clock ???
  // ? External clock source on T1 pin. Clock on rising edge ?
  // CS12 與 CS10 都是 1 表示 Prescaler 為 1024
  // TCCR1B |= (1<<CS10) | (1<<CS12);  // Prescaler == 1024
  TCCR1B |= (1<<CS10) | (1<<CS11);  // Prescaler == 64
  /////////
  OCR1A = myTOP;  // TOP count for CTC, 與 prescaler 有關
  TCNT1=0;  // counter 歸零
  TIMSK1 |= (1 << OCIE1A);  // enable CTC for TIMER1_COMPA_vect
  sei();  // 允許中斷
}
void loop() {
  //... 做其他事
  // if( ggyy == 1) ...
}
////////

[Sensor]MPU92/65

MPU92/65是很久以前買的感測器 基本上有加速度計、陀螺儀、電子羅盤、溫度計 以下是該電子商城的介紹 https://www.factoryforward.com/product/gy-87-mpu-9265-3-axis-9-dof-attitude-gyro-magnet...