Hãy để ý tưởng của bạn bay bổng cùng Arduino

Arduino một hệ thống nhúng được tích hợp nhiều tính năng, bạn hãy tìm hiểu và làm cho những ý tưởng của bạn bay bổng cùng với Arduino

Tuesday, June 21, 2016

Tự học AutoCAD ngày 2

Trong bài học này chúng ta sẽ cùng nhau tìm hiểu một số lệnh vẽ cơ bản
1.      Lệnh Line vẽ đường thẳng đã được học trong ngày trước
2.      Lệnh Cirle vẽ đường tròn
Để vẽ đường tròn trong AutoCAD chúng ta sử dụng lệnh Circle để thực hiện chúng ta làm như sau:
Từ Menu bar
Từ dòng nhắc Command
Từ biểu tượng
Draw /Circle/…
C enter
Có 6 phương pháp vẽ đường tròn
Phương pháp 1: Vẽ đường tròn khi biết tâm và bán kính
Bước 1: Từ dòng nhắc command nhập C enter
Dòng Command line xuất hiện như sau:
Ý nghĩa: chọn tâm của đường tròn,
Bước 2: nhấp tâm ở vị trí bất kỳ hoặc tọa độ cho sẵn, dòng nhắc command tiếp tục hiện ra như sau:
Mặc định là nhập bán kính
Bước 3: nhập số đo của bán kính, enter kết thúc lệnh
Ví dụ: vẽ đường tròn bán kính r=20
C enter
Nhấp chọn tâm ở vị trí bất kỳ
20 enter
Phương pháp 2: vẽ đường tròn khi biết đường kính
Tương tự như cách 1
Ở bước 2 nếu ta biết đường kính sẽ nhập lệnh D enter, sau đó nhập số đo
Bước 1: nhập C enter
Bước 2: chọn tâm bằng cách nhấp chuột ở vị trí bất kỳ hoặc tọa độ cho sẵn, dòng nhắc Command xuất hiện như sau:
Bước 3: Nhập D enter
Bước 4: nhập số đo đường kính
Enter kết thúc lệnh
Ví dụ: vẽ đường tròn đường kính 40
C enter
Nhấp chọn tâm
D enter
Nhập 40
Enter kết thúc lệnh
Phương pháp 3: phương pháp vẽ đường tròn qua 3 điểm
Bước 1: nhập C enter
Bước 2: nhập 3P enter
Bước 3: lần lượt nhấp chuột qua 3 điểm
Specific first point on circle: nhập điểm thứ nhất trên đường tròn
Specific second point on circle: nhập điểm thứ 2 trên đường tròn
Specific third point on circle: nhập điểm thứ 3 trên đường tròn
3p: ở đây có ý nghĩa là 3 điểm ( three points)
Ví dụ: vẽ đường tròn đi qua ba điểm ABC là 3 đỉnh của tam giác ABC bất kỳ
Vẽ tam giác ABC bất kỳ
Nhập: c enter
Nhập: 3p enter
Nhấp chuột qua 3 điểm ABC có sẵn
Phương pháp 4: vẽ đường tròn đi qua 2 điểm
Bước 1: nhập c enter
Bước 2: nhập 2p
Bước 3: nhấp vào 2 điểm đã cho
Ví dụ: vẽ đường tròn đi qua 2 điểm A,B là cho trước
Nhập C enter
Nhập 2p
Nhấp chuột qua 2 điểm A và B

Phương pháp 5: vẽ đường tròn biết đường tròn tiếp xúc với 2 đường và bán kính
Bước 1: nhập C enter
Bước 2: nhập ttr enter
Bước 3: nhấp vào 2 đường thẳng cần cho tiếp xúc
Bước 4 nhập bán kính enter
Phương pháp 6: vẽ đường tròn biết đường tròn tiếp xúc với 3 cạnh của một tam giác
Bước 1: nhập c enter
Bước 2: nhập 3p enter
Bước 3 nhập “tan” enter, nhấp vào cạnh thứ nhất
Nhập “tan” enter, nhấp vào cạnh thứ 2

Nhập “tan” nhấp vào cạnh thứ 3

Monday, June 20, 2016

Tự học AutoCAD ngày 1

Trong bài này chúng ta sử dụng các lệnh Line và phương pháp truy bắt điểm bằng phương pháp tọa độ Đề các và phương pháp tọa độ cực
Lệnh Line và phương pháp truy bắt điểm
-      Cách thực hiện lệnh Line
Từ Menu bar
Từ dòng nhắc Command
Từ biểu tượng
Draw/Line

Line, L

-  
       Hệ trục tọa độ Đề các 
            


     Phương pháp vẽ theo tọa độ đề các
Từ dòng Command nhập Line
Sau đó nhập tọa độ (x, y) của từng điểm
Ví dụ: điểm A có tọa độ (30;50). Điểm B có tọa độ (-30;50) để vẽ đường thẳng AB ta thực hiện như sau:
·        Tọa độ tuyệt đối

           Command: Line/ L
           Specific first point:  30,50

           Specific next point or (Undo): -30,50
·        Tọa độ tương đối

Command: Line/ L
Specific first point:  30,50
Specific next point or (Undo): @-60,0

Phương pháp vẽ theo tọa độ cực
Để nhập tọa độ cực ta làm như sau:
Nhấn shift @ nhập khoảng cách, nhấn shift< nhập góc ta được hình vẽ cần thiết
Ví dụ: muốn vẽ đường thẳng có kích thước 40, nghiêng góc 45độ ta làm như sau:
Command: Line/L
nhấp điểm bất kỳ trên màn hình
Nhấn shift@ nhập kích thước, nhấn shift< nhập góc nghiêng
Sử dụng lệnh Line, phương pháp tọa độ Đề các và phương pháp tọa độ cực để hoàn thành các bài tập dưới đây:

Wednesday, February 11, 2015

Thiết kế đèn ngủ tự động tắt mở với cảm biến ánh sang- quang trở (Photoresistor)

Hôm nay tôi sẽ hướng dẫn các bạn điều khiển đèn ngủ với cảm biến ánh sáng sử dụng Arduino!

Chắc hẳn nhà các bạn đều sử dụng cái đèn ngủ tự động bật - tắt, buổi tối thì tự động sáng lên và buổi sáng thì tự động tắt đi.

Có nhiều cách để làm các mạch điều khiển bóng đèn tự động tắt mở như này, trong chuyên mục Cùng chơi-Sáng tạo cùng Arduino, Tôi xin giới thiệu đến các bạn cách sử dụng Cảm biến ánh sang để thiết kể đèn tự động tắt mở.

Trước khi đi vào bài học chúng ta hãy tìm hiểu sơ lược về cảm biến ánh sáng hay quang trở (các bạn có thể theo link sau để lấy tài liệu về quang trở (:

Quang trở (Light Dependent Resistors) Điện trở phụ thuộc vào ánh sáng: là một loại cảm biến ánh sáng đơn giản, nguyên tắc hoạt động dựa vào hiện tượng quang điện trong.
Nguyên lý làm việc của quang điện trở là khi ánh sáng chiếu vào chất bán dẫn (có thể là Cadmium sulfide – CdS, Cadmium selenide – CdSe) làm phát sinh các điện tử tự do, tức sự dẫn điện tăng lên và làm giảm điện trở của chất bán dẫn. Các đặc tính điện và độ nhạy của quang điện trở tùy thuộc vào vật liệu chế tạo.
Khi ánh sáng kích thích chiếu vào LDR thì nội trở của LDR sẽ giảm xuống , tiến về 0 ôm( mạch kín).
Nhưng khi ánh sáng kích thích ngừng thì nội trở tăng đến vô cùng(hở mạch).
Ứng dụng trong mạch điện : Chuyển mạch (switch sytems).
Trên đây là hình ảnh mô phỏng hoạt động của LDR khi chiếu ánh sáng vào quang trở.

Bây giờ các bạn đã hiểu cơ bản về cảm biến ánh sáng (quang trở)
Chúng ta hãy cùng đi vào lập trình Arduino với cảm biến ánh sáng để điều khiển tắt mở đèn, sau này khi hiểu về cảm biến ánh sáng các bạn ứng dụng để làm đèn ngủ tự động tắt mở với một bộ điều khiển đơn giản như: sử đụng transistor, hay ic để điều khiển.

Để thực hiện bài học này chúng ta cần:
1. Arduino board
2. Quang trở
3. Bảng cắm
4. Dây cắm
5. Điện trở

Sơ đồ ráp mạch

Code
int potpin=0; //Định nghĩa chân quang trở chân 0
int ledpin=11;//Chân Led chân 11
int val=0;// giá trị ban đầu
void setup()
{
pinMode(ledpin,OUTPUT);//Định nghĩa chân xuất tín hiệu
Serial.begin(9600);
}
void loop()
{
val=analogRead(potpin);
Serial.println(val);
analogWrite(ledpin,val);
delay(10); 
}

Chúc các bạn thành công

Saturday, February 7, 2015

Lập trình Arduino điều khiển LED bảy đoạn

Trong bài học này, tôi sẽ hướng dẫn các bạn cách điều khiển LED 7 đoạn với mạch điều khiển Arduino.
Trước khi vào lập trình, chúng ta hãy cùng đi vào tìm hiểu cấu trúc của LED 7 đoạn.

Thực ra cấu trúc của LED 7 đoạn gồm 8 LED đơn, nhìn lên hình trên chắc các bạn cũng thấy gồm có 7 đoạn và một dấu chấm nhỏ, mỗi đoạn và dấu chấm nhỏ đó là một LED đơn.

Với việc sử dụng LED 7 đoạn chúng ta có thể sử dụng để hiển thị các số, các chữ cái anphabet và nhiều kiểu ký tự khác nhau.

Như trên hình các bạn đã thấy, một LED 7 đoạn đơn gồm 10 chân đó là các chân: a, b, c, d, e, f, g, 2 chân chung và chân dấu chấm tròn.

LED 7 đoạn gồm 2 loại đó là dương chung và âm chung.
Trong bài học này chúng ta sẽ viết chương trình và tải vào Arduino để hiển thị các số từ 0-9.

Để thực hiện bài học này chúng ta cần chuẩn bị các linh kiện sau:
- 1 LED 7 đoạn loại cathode chung ( âm chung)
- 1 board Arduino ( ở đây tôi sử dụng Arduino Uno)
- 8 điện trở 270 Ohm
- Các dây nối

8 điện trở 270Ohm được gắn với 8 chân xuất tín hiệu của Arduino và kết nối với với 8 đoạn. Chúng có tác dụng giới hạn dòng qua mỗi LED, để không làm cháy LED.

Để hiểu được chương trình làm việc như thế nào đầu tiên chúng ta hãy xem làm sao để LED 7 đoạn hiển thị.
LED Display Segment

Để LED hiển thị chúng ta phải làm cho 8 LED đơn như ở trên hiển thị, ví dụ ở đây 8 LED ở đây là các led mang kí tự a, b, c, d, e, f, g và một dấu chấm ở chân cuối.
Bây giờ chúng ta thử suy nghĩ nếu chúng ta muốn hiển thị số 0 chúng ta phải làm thế nào?
Nhìn vào hình LED hiển thị ở đầu bài chúng ta thấy:
Để hiển thị số 0 thì chúng ta phải làm cho các LED đơn a, b, c, d, e, f phải sáng lên, dấu chấm và g phải tắt đi. Như vậy để tạo số 0 chúng ta phải thể hiện mã code hệ nhị phân (binary) là B111111100.
Tương tự đối với số 1 thì có những cái LED nào sáng?
Các bạn có thể viết được mã làm xuất hiện số 1 được không?
Đó là: B01100000.
Tương tự đối với các số 2. 3, 4, 5, 6, 7, 9.
Để dễ hiểu hơn tôi xin đưa ra một bảng sau để các bạn dò. Lưu ý: sáng là 1, tắt là 0.
Số thập phân
Số nhị phân
a
b
c
d
e
f
g
DP(demical point)
0
B11111100
1
1
1
1
1
1
0
0
1
B01100000
0
1
1
0
0
0
0
0
2
B11011010
1
1
0
1
1
0
1
0
3
B11110010
1
1
1
1
0
0
1
0
4
B01100110
0
1
1
0
0
1
1
0
5
B10110110
1
0
1
1
0
1
1
0
6
B10111110
1
0
1
1
1
1
1
0
7
B11100000
1
1
1
0
0
0
0
0
8
B11111110
1
1
1
1
1
1
1
0
9
B11100110
1
1
1
0
1
1
1
0
Bây giờ chúng ta đã biết những con số hiển thị như thế nào khi điều khiển LED. Công việc tiếp theo chúng ta cần làm là kết nối LED 7 đoạn với Arduino.
Hình trên hiển thị các chân của LED 7 đoạn loại Cathode chung ( âm chung ).

Sơ đồ nối dây
7-segment to arduino wiring diagram
Cách kết nối các chân cũng rất đơn giản các bạn nhìn trên hình có thể tự làm được.
Bảng dưới đây thể hiện các chân kết nối
Chân LED 7 đoạn
Chân kết nối với Arduino
a
2
b
3
c
4
d
5
e
6
f
7
g
8
DP
9
Công tiếp theo là viết Code


Code

// Khai báo chânconst int G = 8;  // G= Arduino chân 8
const int F = 7;  // F= Arduino chân  7
const int A = 2;  // A = Arduino chân 2
const int B = 3;  // B = Arduino chân 3
const int E = 6;  // E = Arduino chân 6
const int D = 5;  // D = Arduino chân 5
const int C = 4;  // C = Arduino chân 4
const int dp = 9; // dp = Arduino chân 9

const int second = 1000; // thiết lập với mili giây, 1000 milliseconds = 1 second

const int digit = 10;   // Số ký tự hiển thị
10 digits (0 - 9)
const int segment = 7;  // Số thanh hiển thị trong LED (7) 

// Định nghĩa những thanh( led đơn) sáng 
byte digseg[digit][segment] =  { 
                                           { 1,1,1,1,1,1,0 },  // = 0
                                           { 0,1,1,0,0,0,0 },  // = 1
                                           { 1,1,0,1,1,0,1 },  // = 2
                                           { 1,1,1,1,0,0,1 },  // = 3
                                           { 0,1,1,0,0,1,1 },  // = 4
                                           { 1,0,1,1,0,1,1 },  // = 5
                                           { 1,0,1,1,1,1,1 },  // = 6
                                           { 1,1,1,0,0,0,0 },  // = 7
                                           { 1,1,1,1,1,1,1 },  // = 8
                                           { 1,1,1,1,0,1,1 }   // = 9
                                         };

void setup() {                
  // Định nghĩa chân xuất tín hiệu OUTPUT
  pinMode(A, OUTPUT);   
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(dp, OUTPUT);
  
  // Tắt dấu chấm
  digitalWrite(dp, LOW); 
}

// Loop through all 7 LED segments starting with pin 2    
void writeDigit(byte digit) 
{
  byte pin = 2; 
  byte seg;

  for (seg = 0; seg < 7; seg++) 
  {
    digitalWrite(pin, digseg[digit][seg]);
    pin++;
  }
}

void loop() 
{
  byte digit;
  
  for (digit=0; digit < 10; digit++) 
  {
   writeDigit(digit); 
   delay(second); 
  }
  delay(4*second);
}