SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 1
MỤC LỤC
LU 2
PHN I: GII THIU V CÔNG TY TNHH CXT 3
5
1. 5
1.1 5
1.2 7
1.3 8
2.
9
2.1 10
2.2 11
2.3 12
2.4 15
3. Project t k b u khin PID s trên nu khit
chiu có kt ni v 16
3.1 Phân tích yêu cu công vit ra. 16
3.2 18
3.3 21
30
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 2
LU
Ngoài kin thc v lý thuyt thì nhng k m trong thc hành
luôn là mt yu t quyn s a mi k
y thc tp k thut là mt k thc tp rt quan tri vi sinh viên k
thut. Nó giúp cho sinh viên có nhiu tri nghim và nhng d nh ngh nghip
Xut phát t thc t, nhing yu v k trong khâu
thc hành, Ti hc Bách khoa Hà Ni nói chung và vii
c tp k thut môn hc bt bui vi sinh viên. Vi s
v và vt cht ct là s ng dn
nhit tình ca thc nhng kinh nghim quý báu
nht t thc tp này. Qua mt thi gian mc thc
hành v cách hàn linh kic hc và nghiên cu
v u khin PIC 24 ct project nh
cng c nhng kin thc hc va qua t k b u khin
PID s trên nu khit chiu có kt ni v
Trong bn báo cáo này, em s dng nhiu thông tin ca công ty CXT cung
cp, các ngung kin thc trong
quá trình thc tk thc tp k thuu tiên, nên s có nhng thiu sót.
Em hi vng bn báo cáo s nói lên nhng kin thc trong k
thc tp va qua. Cui cùng, em xin gi li cn thy Lê Công
ng thi i thng dn nhit tình
cho em trong thi gian thc tp v
hai bn cùng lp Nguyn Mnh Hùnc tp và
làm vic trong thi gian thc tp.
Sinh viên thc hin:
Đinh Văn Hòa
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 3
PHN I: GII THIU V CÔNG TY TNHH CXT
Tòa nhà VP3 Hoàng Mai
Email:
Website: www.cxt.vn
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 4
-GMS/GPRS/3G.
Giá
+ Kh
+ Khách hàng
+ cGMC-.
+ cMGI-
.
+ cCAI- .
+ cHFR-.
+ cMotor-
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 5
1. Hàn linh kiện điện tử.
1.1 Hàn linh kiện xuyên lỗ (IMD).
Hàn linh ki nào thì chng mt ln cm m u bit.
V m bo mi hàn chc chn v mt vt lý, tính
dn và c tính thm m ca mi hàn.
K sinh ra là có th có ngay mà bu t nhng bài
hc v lòng và kinh nghim thc hành. n mt mi
hàn ch cn dính chân linh kin vi bn m
th mà nhiu khi chúng ta phi tr i khái ca
chính mình. Mt mi hàn ti có th làm cho mt bn mch hay l h
thng b tiêu tan trong ch làm mt thn hàng tun
ci k khi khc phc s c nu xy ra. y, k thut hàn linh
kin là rt quan trng. Nói v c mt k
thut hàn linh kin tc li, nó rt d n tâm chú ý ti nó và
thc hành mn. Qua mt tháng thc hành hàn mc s ch
bo trc tip ca th ng kin thc tìm kim
c trên Internet, s em xin gii thiu k thut hàn linh kin lên bn
mch in. K thut m trên internet, có s b sung và sp xp li
theo kinh nghim cá nhân.
a) Hàn linh kiện.
Bước 1: Làm sch bn mc khi hàn linh kin.
c khi hàn linh kin chúng ta phi làm sch bn mc bit tm
m bo mi hàn dính thic vi t l din tích b mt cao. Công vic
này rt quan tr i vi nhng bn mc ph thi làm
sch các nt hàn bng chúng ta có th dùng mt cc cao su bào mòn hoc
mt vt li.
Bước 2: V u m c khi hàn.
Chùi su m hàn bng tm xp thc mi lc khi hàn.
Chú ý: M c s dng nhii m hàn súng. Lý do
u m ng nhn và nh v li cm m
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 6
nhàng và tin l t nht là dùng m hàn que có kh u chnh
nhi u m hàn.
Bước 3: Tráng thiu m hàn.
Dùng nha thông và mt bát thi u m c mi ln hàn.
thic bám dính quá nhiu u m hàn.
Bước 4: Cm linh kin vào l hàn.
B gp chân linh kin va theo khong cách ca 2 l hàn (vn tr). Cm
linh kin vào l hàn. B nghiêng chân linh kin phía bên m linh kin
bám vào bn mng hp linh kin b c
b nghiêng chân linh ki bn vt lý cho linh kin
trong quá trình s dng.
Bước 5: Bm (ct) chân linh kin.
ng hay thc hin khâu bm chân linh kin sau khi hàn vì làm theo
cách này d > tránh vic linh kii mch in khi bm chân. Thc
i cho bn mch in. Theo khuyn ngh, vic bm chân
linh ki u này s giúp cho chúng ta
không nhng có mi hc nhng ri ro do s
làm hng ca bn mch in.
b) Loại bỏ mối hàn
Hàn nhm, hng là chuyng trong lúc làm mch. Vic loi b
m i b m ng.
Cách 1: ng hút thic
+ ng.
+ Làm chy mi hàn.
+ ng hút ht thic.
ng vì hút không sch mi hàn.
Cách 2: Dùng ng hút thic.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 7
+ Chun b ng hút, nhn cn hút v v trí hãm.
+ Dùng m hàn làm chy mi hàn.
+ ng hút li gn mi hàn, gii phóng cn hút=> xong.
1.2 Hàn linh kiện dán (SMD).
cho
. Kích
c linh kic gim xung khá nhiu và có th gn linh kin lên trên c
hai mt ca PCB làm cho công ngh SMD tr lên thông d
gn linh kin b linh kin.
ng, mi linh kic c nh trên b mt mch in bng mt din
tích ph chì rt nh, và mt kia ca tm PCB linh ki c c nh
bng mt chc vt lý ca bo mch
gi khin cho bo mch tr nên nh g
n ca công ngh làm mch in PCB và linh kin dán SMD
càng tr nên thông dng t nghiên c án vi các bn sinh viên, nhng
nhóm nghiên cu ti nhng công ty phát trin sn phm.
này.
Bước 1: V sinh chân linh kin, s dng nha thông hoc m hàn ra sch pad
tp trung nhi quá 3 giây tránh
làm bong mch.
Bước 2: nh v trí, hàn ch c nh linh kin. Thêm thic sau
t nhanh m ly thic ra, nu các chân b dính, quay li thêm thic,
nh ly thic ra.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 8
Bước 3: V sinh mch bng dung dch Axeton và kim tra li mi hàn.
Chú ý: i vi linh kin IC dán nhiu chân ta s dng nha thông và m hàn.
tránh làm hng IC do m hàn tip xúc lâu vi chân linh kin ta cn có thao
tác nhanh và d m bo mng
linh kin thì nhi cho m hàn nê mc 400-500
o
C. Khác vi hàn linh
kic l, hàn linh kin dán chúng ta nên cho thic va phi, không quá nhiu
m
1.3 Một số kết quả đạt được.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 9
2. Học tập và nghiên cứu dòng PIC 24 qua kit phát triển “explorer 16
development board”.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 10
2.1 Giới thiệu tổng quát về bo mạch.
PIC Explorer 16 là board thc tp cho phép sinh viên làm quen vi lp
u khi thit k các h thng t n phc
tp. Các thành phn trên board Pic Explorer 16 bao gm:
1. u khin PIC24FJ128GA010
2. Cng cm 9V cung cn th ngõ vào +3.3V và +5V cho board
3. LED báo hiu ngun
4. Cng cm RS232
5. B cm bin nhit
6. Cng kt ni USB
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 11
7. Khe cm In-Circuit Debugger (ICD)
8. Nút gt chn la phn cng
9. LCD (2 dòng, 16 ct)
10. Khe c kt ni LCD màu
11. Nút nh reset hoc dành cho ng dng
12. B ngõ vào analog
13. 8 LEDs báo hiu dành cho ng dng
14. B gii mã gip 74HCT4053
15. EEPROM ni tip
16. Thch anh 8 MHz và Real-Time Calendar/ Clock (RTCC) 32.768 KHz
17. Vùng m rng cho các ng dng
18. Socket cm vào PCI
19. Giao tip vi PIC Kit 2 Programmer
20. Giao tip JTAG
2.2 Giới thiệu về công cụ lập trình PIC.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 12
a) Giới thiệu công cụ MPLAB IDE
MPLAB IDE là gói công c ca hãng Microchip cung cng cho
i lp trình xây dch, debug và np mã
trình xung board có s dng PIC. Trong quá trình hc t
dng phiên bn MPLAB IDE 8.30.
b) Giới thiệu công cụ MPLAB C Compiler (mplabc30) cho PIC24
biên dch và liên kt bng ngôn ng
C cho các dòng PIC 24. ng phát trin MPLAB
IDE. Trong quá trình hc t s dng phiên bn 3.10.
2.3 Các bước lập trình PIC.
a) Tạo project trên MPLAB IDE
Bước 1. Khng MPLAB
Bước 2. Menu Project Project Wizard Next
Bước 3. Chn PIC24FJ128GA010 trong hp thoi Device Next
Bước 4. La chn Microchip C30 Toolsuite và tr ng dn ti các thành
phng mc cài MPLAB C Compiler for PIC24 MCUs) Next
Bc
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 13
Bước 5. La chn ng dn cNext
Bước 6. Add file liên kt (p24FJ128GA010.gld)
Tr ti file p24FJ128GA010.gld (C\mplabc30\v3.10\support\PIC24F\gld)
Add Next.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 14
Bước 7. Finish
Bước 8. Menu Fileây d u vnh dng
.c
b. Build project
c 1. Add mã ngun vào project: Menu View Project click chut phi
vào project tr ti file ch
c 2. Menu Project Build All hoc phím Buil all trên Task Bar.
c. Nạp chương trình xuống PIC.
Có rt nhiu công c h tr cho vic nch
np). c công ty CXT h tr công c MPLAB ICD 2 LE ca hãng
Microchip nên em s dng mch np này nch.
Qui định bắt buộc khi sử dụng MPLAB ICD 2 LE: Khi np mch phi
làm theo trình t: C Cm MPLAB ICD 2 LE
vào board mch vi mt hin th MPLAB ICD 2 LE quay vào socket cm PIC
Cp ngun t adapter.
Bước 1. La chn công c:
MPLAB ICD 2
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 15
Bước 2. Kt ni thit b: Menu Programmer Connect (Board phc cp
nguc khi kt ni).
Bước 3. Nng board: Menu Programmer Program.
Bước 4. Kim tra kt qu: Ngt kt ni gia board thc tp và MPLAB ICD 2
LE và kim tra kt qu
2.4 Các module học được của dòng PIC 24 trên bo mạch.
TC1047A
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 16
3. Project “Thiết kế bộ điều khiển PID số trên nền PIC điều khiển động cơ
một chiều có kết nối với máy tính”.
ài
toán thit k u khit chin và quen thuc
u khin t ng. Có th thit k u khing
t chiu theo nhi: dùng PLC & bin tn t công
sut, vi u khiMi
u có mc u khic t u
khin phát trin sâu rng và ngày càng ng dng nhit thit k b
u khi i ng công nghi h c nhng kin
thc nhnh v u khin trong kì thc tc s ch dn ca thy Lê
tài
.
Tn dng phn cng sn có (PIC 24FJ128GA010 vi các module PWM,
u khit chiu nên chúng em không cn phi thit k v mt
phn cng. Công vic phi làm còn l
Đinh Văn Hòa: Tìm hiu và lp trình C# thit k giao di u khi
truyn nhn d liu giu khin và máy tính.
Vũ Mạnh Hùng: Tìm hiu và thit k thut toán PID s trên nn PIC
24FJ128GA010.
Nguyễn Mạnh Hùng: Tìm hiu và lp trình các module PWM, Timer, UART
u khin.
Và sau đây em xin được báo cáo công việc và kết quả của mình.
3.1 Phân tích yêu cầu công việc đặt ra.
có mt giao din trc quan, d u khii dùng,
chúng ta cn xây dng mt phn mm giao din trên máy tính có th giao tip
c giu khin. Chúng ta s thc hin vit giao din bng
ng lp trình C#, vic to ra mt giao di h
tr
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 17
i s dng nhng modun ng ph bin giúp cho công vic lp
trình tr nên nh t nhiu. Vic to giao din ch là la chn nhng
ng sp xp vào mt Form cùng vi vic thit lp các thông s và lp
trình cho chúng.
Yêu cu công vic:
+ Thu nhn d lii dung nhp vào (Thông s cng Com, các thông s
ca b u khin PID, vn tt, chi
+ Truyn d liu theo khung xu u khin qua c u
khin x lý, thc hin thuu khin.
+ Nhn d liu vn tc t u khin v và cho hin th trên giao din.
+ Thc hiu khio chit giá tr t cho
vn tc.
+ M rng them các modun v th d liu tin cho vic
quan sát và x lý say này.
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 18
3.2 Giới thiệu giao diện và cách sử dụng.
a) Thiết lập cổng Com
và Com3).
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 19
b) Cài đặt thông số cho bộ điều khiển và động cơ
+ Kp, Ki, Kdcác Kp, Ki, Kd
+ Vset (vòng/ph)
-5000 (vòng/phút).
ch
c) Bảng điều khiển động cơ
b)
b)
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 20
ng trình.
d) Lưu trữ dữ liệu và vẽ đồ thị
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 21
3.3 Mã nguồn cho giao diện.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// cơ sở dữ liệu
using System.Data.OleDb;
// cho cổng COM
using System.IO;
using System.IO.Ports;
using System.Xml;
namespace project
{
public partial class frm_main : Form
{
SerialPort P = new SerialPort(); // khai báo 1 object mới
string InputData = string.Empty; // khai báo string buff dùng cho hiển thị dữ
liệu sau này
delegate void SetTextCallback(string text); //khai báo delegate SetTextCallback
với tham số string
// khai báo các biến toàn cục
// 1 quay phai, 2 quay trai, 0 dừng
byte quay;
string luu_quay;
public frm_main()
{
InitializeComponent();
// cài đặt các thông số cho COM
// Mảng string port để chứa tất cả các cổng COM đang có trên máy
string[] ports = SerialPort.GetPortNames();
// Thêm toàn bộ các COM đã tìm được vào combox Com
cbo_com.Items.AddRange(ports); // Sử dụng AddRange thay vì dùng foreach
P.ReadTimeout = 1000;
// Khai báo hàm delegate bằng phương thức DataReceived của Object SerialPort;
// Cái này khi có sự kiện nhận dữ liệu sẽ nhảy đến phương thức DataReceive
P.DataReceived += new SerialDataReceivedEventHandler(DataReceive);
// Cài đặt cho BaudRate
string[] BaudRate = { "1200", "2400", "4800", "9600",
"19200","38400", "57600", "115200" };
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 22
cbo_baudrate.Items.AddRange(BaudRate);
// Cài đặt cho DataBits
string[] Databits = { "6", "7", "8" };
cbo_data.Items.AddRange(Databits);
//Cho Parity
string[] Parity = { "None", "Odd", "Even" };
cbo_parity.Items.AddRange(Parity);
//Cho Stop bit
string[] stopbit = { "1", "1.5", "2" };
cbo_stopbit.Items.AddRange(stopbit);
}
// Hàm này được sự kiện nhận dử liệu gọi đến. Mục đích để hiển thị thôi
private void DataReceive(object obj, SerialDataReceivedEventArgs e)
{
InputData = P.ReadExisting();
if (InputData != String.Empty)
{
SetText(InputData); // Chính vì vậy phải sử dụng ủy quyền tại đây.
Gọi delegate đã khai báo trước đó.
}
}
private void SetText(string text)
{
if (this.txt_v.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText); // khởi tạo 1
delegate mới gọi đến SetText
this.Invoke(d, new object[] { text });
}
else this.txt_v.Text = text;
}
private void frm_main_Load(object sender, EventArgs e)
{
cbo_baudrate.SelectedIndex = 3; // 9600
cbo_data.SelectedIndex = 2; // 8
cbo_parity.SelectedIndex = 0; // None
cbo_stopbit.SelectedIndex = 0; // 1
// Hiện thị Status
status.Text = "Chọn 1 cổng COM để kết nối.";
// hiện thị dữ liệu đã lưu lên lsv
hienthi();
// thông báo động cơ đang dừng qua radian buttum
rad_dung.Checked = true;
}
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 23
private void cbo_com_SelectedIndexChanged(object sender, EventArgs e)
{
if (P.IsOpen)
{
P.Close(); // Nếu đang mở Port thì phải đóng lại
}
P.PortName = cbo_com.SelectedItem.ToString(); // Gán PortName bằng COM đã
chọn
}
private void cbo_baudrate_SelectedIndexChanged(object sender, EventArgs e)
{
if (P.IsOpen)
{
P.Close();
}
P.BaudRate = Convert.ToInt32(cbo_baudrate.Text);
}
private void cbo_data_SelectedIndexChanged(object sender, EventArgs e)
{
if (P.IsOpen)
{
P.Close();
}
P.DataBits = Convert.ToInt32(cbo_data.Text);
}
private void cbo_parity_SelectedIndexChanged(object sender, EventArgs e)
{
if (P.IsOpen)
{
P.Close();
}
switch (cbo_parity.SelectedItem.ToString())
{
case "Odd":
P.Parity = Parity.Odd;
break;
case "None":
P.Parity = Parity.None;
break;
case "Even":
P.Parity = Parity.Even;
break;
}
}
private void cbo_stopbit_SelectedIndexChanged(object sender, EventArgs e)
{
if (P.IsOpen)
{
P.Close();
}
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 24
switch (cbo_stopbit.SelectedItem.ToString())
{
case "1":
P.StopBits = StopBits.One;
break;
case "1.5":
P.StopBits = StopBits.OnePointFive;
break;
case "2":
P.StopBits = StopBits.Two;
break;
}
}
private void btn_ketnoi_Click(object sender, EventArgs e)
{
try
{
P.Open();
btn_ngat.Enabled = true;
btn_ketnoi.Enabled = false;
// Hiện thị Status
status.Text = "Đang kết nối với cổng " + cbo_com.SelectedItem.ToString();
}
catch (Exception ex)
{
MessageBox.Show("Không kết nối được.", "Thử lại", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
private void btn_ngat_Click(object sender, EventArgs e)
{
P.Close();
btn_ketnoi.Enabled = true;
btn_ngat.Enabled = false;
// Hiện thị Status
status.Text = "Đã Ngắt Kết Nối";
}
private void btn_start_Click(object sender, EventArgs e)
{
//kiểm tra dữ liệu nhập
if (txt_kp.Text == "" || txt_ki.Text == "" || txt_kd.Text == "" ||
txt_vset.Text == "")
{
MessageBox.Show("Bạn phải nhập đầy đủ thông số!");
return;
}
else
{
try { float.Parse(txt_kp.Text); float.Parse(txt_ki.Text);
float.Parse(txt_kd.Text); int.Parse(txt_vset.Text); }
catch { MessageBox.Show("Nhập sai thông số!"); return; }
SVTH: Đinh Văn Hòa – KSTN – ĐKTĐ – K55 Page 25
}
if (int.Parse(txt_vset.Text) < 0 || int.Parse(txt_vset.Text) > 5000)
{
MessageBox.Show("Tốc độ động cơ phải nằm trong dải 0 -> 5000 vòng/ph !");
return;
}
if (rad_trai.Checked ==false && rad_dung.Checked == false && rad_phai.Checked
== false)
{
MessageBox.Show("Bạn phải chọn chiều quay động cơ!");
return;
}
// truyền dữ liệu đến cổng COM
if (P.IsOpen)
{
P.Write(txt_kp.Text +" ");
P.Write(txt_ki.Text +" ");
P.Write(txt_kd.Text + " ");
P.Write(txt_vset.Text + " ");
P.Write(quay.ToString() + " ");
}
else MessageBox.Show("COM chưa mở.", "Thông báo",MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
private void btn_stop_Click(object sender, EventArgs e)
{
DialogResult tb_dung;
tb_dung = MessageBox.Show("bạn có muốn dừng động cơ?", "thông báo",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (tb_dung == DialogResult.Cancel) return;
if (rad_dung.Checked == true)
{
MessageBox.Show("Động cơ đang dừng!");
return;
}
quay = 0;
if (P.IsOpen)
{
P.Write("0" + " ");
P.Write("0" + " ");
P.Write("0" + " ");
P.Write("0" + " ");
P.Write(quay.ToString() + " ");
}