Giới thiệu đề tài
Đặt vấn đề
Hiện nay, nhu cầu sử dụng điện để đáp ứng sự phát triển của nền kinh tế và phục vụ đời sống ngày càng tăng. Để giảm thiểu các sự cố của các thiết bị điện cũng như góp phần giảm thiểu những thiệt hại lớn về kinh tế do mất điện gây ra, việc kiểm tra thường xuyên các thiết bị đường dây và trạm biến áp (TBA) nhằm phát hiện nguy cơ sớm nhất có thể để lên kế hoạch bảo trì là vô cùng quan trọng Sự an toàn và hoạt động ổn định của các thiết bị trạm biến áp là yêu cầu thiết yếu của hệ thống điện hiện đại và lưới điện thông minh.
Vì vậy yêu cầu đặt ra cần có những phương pháp giám sát hiệu quả hơn quá trình vận hành cũng như bảo vệ các thiết bị trong TBA Phần lớn các TBA hiện nay đều vận hành theo kiểu truyền thống, được điều khiển thông qua các tủ bảng, sử dụng khóa điều khiển Chức năng giám sát trạm từ các trung tâm điều độ cũng chỉ được thực hiện thông qua hệ thống thu thập thông tin xa (RTU).
Với sự phát triển của các giải pháp tích hợp và tự động hóa TBA, các TBA không người trực (KNT) hiện nay có khả năng thu thập, xử lý và lưu trữ một lượng thông tin lớn với mức độ chính xác cao Đáp ứng bài toán tối ưu hóa cho hệ thống điện, đồng thời hướng đến phát triển hệ thống lưới điện thông minh Mọi hoạt động đóng cắt, vận hành lưới, giám sát quá trình hoạt động, thu thập dữ liệu của trạm đều được giám sát qua hệ thống Camera và điều khiển từ xa thông qua hệ thống điều hành SCADA từ Trung tâm điều khiển.
Tuy nhiên, các màn hình HMI (Human Machine Interface) của các trung tâm điều khiển từ xa cũng chỉ thể hiện trạng thái logic đóng cắt của thiết bị mà không thể hiện được trạng thái vật lý hay tình trạng thực của thiết bị, mà theo quy trình quy phạm bắt buộc phải có.
Ngoài ra, việc theo dõi thực tế tình trạng thiết bị cũng rất cần thiết để phục vụ công tác bảo trì, đảm bảo an toàn vận hành lâu dài của hệ thống Các TBA đã được tự động hóa nhưng vẫn phải đảm bảo số lượng công nhân trực vận hành chỉ để theo dõi thiết bị và trạng thái thiết bị theo như quy trình quy định Mặc dù đã lắp đặt Camera,nhưng các Camera này cũng chỉ giúp giám sát tình trạng chung của trạm, giám sát an ninh tránh sự đột nhập từ bên ngoài và chưa có khả năng giám sát chi tiết tình trạng từng thiết bị Để giám sát tổng thể toàn bộ TBA cũng như các thiết bị cần thiết quan sát (dao cách ly, máy biến áp, máy cắt và các thông số đo lường ngoài trời cũng như nhiệt độ của các thiết bị này) thì cần phải lắp đặt thêm nhiều Camera Việc lắp nhiềuCamera này sẽ gây khó khăn cho vị trí lắp đặt, chi phí đầu tư, bảo dưỡng cũng như đường truyền (hình ảnh) về trung tâm giám sát.
Mục tiêu nghiên cứu
Nghiên cứu chế tạo Robot có thể tự động di chuyển trong khuôn viên trạm biến áp để thay thế con người, thu thập và xử lý hình ảnh, thông tin thông qua các cảm biến về trạng thái các dao cách ly, máy cắt, đồng hồ nhiệt độ dầu MBA, đồng hồ nhiệt độ cuộn cao áp MBA, đồng hồ nhiệt độ cuộn trung áp MBA, từ các góc độ khác nhau để lưu vào thẻ nhớ và truyền về trung tâm điều khiển Có khả năng tự động di chuyển về chỗ sạc khi hết nguồn.
Lựa chọn phương án thiết kế
Phương án thiết kế là robot 4 bánh với nguồn ắc quy 12V 40Ah
Các cảm biến được lắp đặt tại các vị trí cần thiết để robot nhận biết được.
Camera gắn trên robot phải điều chỉnh xoay được các hướng để lấy được các góc chụp cần thiết cho việc thu thập ảnh.
Bộ phận xoay và nghiêng chắc chắn (PTU) được thiết kế cho các ứng dụng có độ rung cao.
Hệ thống camera quan sát, camera hồng ngoại phát hiện các điểm nóng và dị thường nhiệt.
Hệ thống đo tốc độ bằng encoder
Hệ thống điều hướng bằng la bàn điện tử
Khả năng tránh vật cản.
Cho phép điều chỉnh bằng tay.
Rô bôt sau khi hoàn thành giám sát hoặc pin yếu sẽ tự động quay về trạm sạc.
Các tiêu chuẩn an toàn trong việc lắp đặt thiết bị tại TBA
Căn cứ vào tiêu chuẩn về đảm bảo an toàn trong TBA có cấp điện áp 110kV đối với thiết bị lắp đặt trong trạm Hệ thống đường ray dẫn hướng phải đảm bảo các yêu cầu sau:
Vị trí lắp đặt ray dẫn hướng không được chiếm vị trí của đường giao thông nội bộ trong TBA để tuân thủ tiêu chuẩn về phòng cháy chữa cháy.
Tiêu chuẩn về hành lang tuyến an toàn: Độ cao của robot không được vượt quá độ cao 2,2 mét cho phép.
Robot và hệ thống dẫn hướng phải có cấu tạo gọn nhẹ, vững chắc Đã được thử nghiệm an toàn trước khi đưa vào vận hành.
Sơ đồ thuật toán
2.1 Danh sách các thiết bị, linh kiện:
Tên thiết bị, linh kiện
Bộ truy cập Wifi không dây
Cảm biến tiệm cận sơn Bảo Bảo Lộc Lộc
Module la bàn LSM303DLH
Bánh xe Ắc quy 12V 40Ah
Bảng 2.1 Bảng danh sách các thiết bị b) Máy vi tính Mini PC Z83 II - Intel Z8350
Nhóm thiết kế đã sử dụng 02 máy vi tính cho việc điều khiển và thu thập dữ liệu. Một máy tính đặt trong robot di chuyển và một máy tính đặt cố định trong nhà điều hành của TBA.
Với máy tính đặt trên Robot, yêu cầu kích thước phải nhỏ gọn, tốc độ xử lý nhanh, điện năng tiêu thụ thấp và có đủ các cổng giao tiếp cần thiết cho các thiết bị ngoại vi Các cổng giao tiếp với các thiết bị ngoại vi phải có như sau:
Công suất tiêu thụ tối đa: 12V / 1.5A
Nghiên cứu thiết kế đường dẫn và phần cứng robot
Lập trình vi điều khiển
2.3.1 Lập trình truyền động động cơ a) Danh sách các thiết bị:
Module L298 Động cơ giảm tốc
Arduino Nano b) Nguyên lý hoạt động:
- 2 chân cấp nguồn trực tiếp đến động cơ:12V power, 5V power Nhóm cấp nguồn 9-12V ở chân nguồn 12V Bên cạnh đó có jumper 5V, ta chỉ cần cấp nguồn 12V vô ở 12V power là có 5V ở 5V power, từ đó cấp cho Arduino
Chân GND: GND của nguồn cấp cho Động cơ và Arduino Nano
4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298 Đây là các chân nhận tín hiệu điều khiển.
- 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của L298 Các chân này sẽ được nối với động cơ.
- Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong L298 Nếu ở mức logic “1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động.
* Điều khiển chiều quay với L298:
Khi ENA = 0: Động cơ không quay với mọi đầu vào
INT1 = 1; INT2 = 0: động cơ quay thuân.
INT1 = 0; INT2 = 1: động cơ quay nghịch.
INT1 = INT2: động cơ dừng ngay tức thì.
(tương tự với các chân ENB, INT3, INT4). c) Sơ đồ đấu dây thiết bị: const byte RX1 = A1; const byte TX1 = A2;
String LM = ""; bool stringComplete = false; long last = 0;
// Khai bao bien luu gia tri int CT = 300; int CG = 200; int CP = 500; void setup() {
Serial.begin(9600); while(!Serial); mySerial1.begin(9600); while (!mySerial1); pinMode(3, OUTPUT); pinMode(4,
OUTPUT); pinMode(CBT, INPUT); pinMode(CBG,
INPUT); analogWrite(5, 255); analogWrite(6, 255); void loop() {
} doline(); void Read_UART1 (){ while (mySerial1.available())
(char)mySerial1.read(); inputString += inChar; if (inChar == '\n'){ stringComplete = true;
Serial.print("Data nhận Uno1:
} void Read_UART2 (){ while (mySerial1.available())
(char)mySerial1.read(); inputString += inChar; if (inChar == '\n'){ stringComplete = true;
Serial.print("Data nhận Uno1:
LM = inputString; inputString = ""; stringComplete = false;
// Trái if (inputString.indexOf("LEFTOFF") >=
//Pha Mi if (inputString.indexOf("RIGHTOFF") >=
//ThẳM ng if (inputString.indexOf("UPOFF") >=
/Lui if (inputString.indexOf("DOWNOFF") >=
/Dò line if (inputString.indexOf("LINEMODEOFF") >=
// Trái if (inputString.indexOf("LEFTOFF") >=
//Pha Mi if (inputString.indexOf("RIGHTOFF") >=
/Lui if (inputString.indexOf("DOWNOFF") >=
/Dò line if (inputString.indexOf("LINEMODEOFF") >=
} int KC1() { unsigned long tg; digitalWrite(TRIG1, 1); delayMicroseconds(5); digitalWrite(TRIG1, 0); // tao xung 5us tg = pulseIn(ECHO1, 1); int kc = tg / 29.412 / 2; if (kc != 0) {
} return X1; void doline() { if (digitalRead(CBT)==0 && digitalRead(CBG)==1 && digitalRead
// den trang trang if (digitalRead(CBT)==1 && digitalRead(CBG)==0 && digitalRead
// trang trang den if (digitalRead(CBT)==0 && digitalRead(CBG)==0 && digitalRead
2.3.2 Lập trình điều khiển Robot từ xa thông qua Wifi a) Danh sách các thiết bị:
Arduino Nano b) Nguyên lý hoạt động:
Vì trong đề tài cần phải điều khiển cả động cơ giảm tốc di chuyển Robot và cả cánh tay Robot nên cần phải sử dụng thư viện SoftwareSerial để khai báo các chân
RX, TX ảo nhằm tăng số lượng chân RX, TX để giao tiếp giữa Arduino và ESP8266.
Sử dụng phương thức truyền nối tiếp với 2 chân: RX – chân nhận dữ liệu; TX – chân truyền dữ liệu
Hình 2.1 Giao tiếp UART trên Arduino
Trước khi thiết bị UART có thể gửi dữ liệu, thiết bị truyền chuyển đổi byte dữ liệu thành bit Sau khi chuyển đổi dữ liệu thành các bit, thiết bị UART sẽ chia chúng thành các gói để truyền Mỗi gói chứa một bit bắt đầu, một khung dữ liệu, bit chẵn lẻ và các bit dừng Hình dưới là một gói dữ liệu mẫu.
Sau khi chuẩn bị gói tin, mạch UART sẽ gửi nó ra ngoài qua chân TX.
Thiết bị UART nhận sẽ kiểm tra gói nhận được (thông qua chân RX) để tìm lỗi bằng cách tính số 1 và so sánh với giá trị của bit chẵn lẻ có trong gói Nếu không có lỗi trong quá trình truyền, nó sẽ tiến hành tách bit bắt đầu, bit dừng, bit chẵn lẻ để lấy khung dữ liệu Nó có thể cần nhận một số gói trước khi có thể xây dựng lại toàn bộ byte dữ liệu từ các khung dữ liệu Sau khi xây dựng lại byte, nó được lưu trữ trong bộ đệm UART.
Thiết bị UART nhận sử dụng bit chẵn lẻ để xác định xem có bị mất dữ liệu trong quá trình truyền hay không Mất dữ liệu trong quá trình truyền xảy ra khi một bit thay đổi trạng thái của nó trong khi truyền Các bit có thể thay đổi do khoảng cách truyền, bức xạ từ và tốc độ truyền không khớp, cùng những thứ khác. c) Sơ đồ đấu dây: d) Lập trình code cho Arduino Nano:
const byte RX1 = D0; const byte TX1 = D1;
SoftwareSerial mySerial1 = SoftwareSerial(RX1, TX1); //động cơ
SoftwareSerial mySerial2 = SoftwareSerial(RX2, TX2);// động cơ servo
Serial define BLYNK_TEMPLATE_ID "TMPLYSBSkt6v" define BLYNK_DEVICE_NAME "ROBOTĐK" define BLYNK_AUTH_TOKEN "TtwX9hGtAA8i2tQLX8iBDd4d-
PFvUScb" include include
char auth[] = "TtwX9hGtAA8i2tQLX8iBDd4d-
PFvUScb"; char ssid[] = "TP-LINK"; char pass[] =
"AAAFAAAFAA"; int button; int goc;
String LINEMODEINPUT = ""; long last = 0; void setup(){
Serial.begin(9600); while(!Serial); mySerial1.begin(9600); while (!mySerial1); mySerial2.begin(9600);
Blynk.begin(auth, ssid, pass); last = millis(); void loop()
//GocINPUT = GocINPUT + MaNhan; mySerial2.print(GocINPUT); mySerial2.flush();
MaNhan; mySerial2.print(GocINPUT); mySerial2.flush();
Serial.print("Góc Pha Mi: ");
MaNhan; mySerial2.print(GocINPUT); mySerial2.flush();
} button = param.asInt(); if (button == 1){
Serial.println(LINEMODEINPUT); mySerial1.print(LINEMODEINPUT); mySerial1.flush();
Serial.println(LINEMODEINPUT); mySerial1.print(LINEMODEINPUT); mySerial1.flush();
BLYNK_WRITE(V0){ button = param.asInt(); if (button == 1){
Serial.println(RIGHTINPUT); mySerial1.print(RIGHTINPUT); mySerial1.flush();
Serial.println(RIGHTINPUT); mySerial1.print(RIGHTINPUT); mySerial1.flush();
} button = param.asInt(); if (button == 1){
Serial.println(LEFTINPUT); mySerial1.print(LEFTINPUT); mySerial1.flush();
Serial.println(LEFTINPUT); mySerial1.print(LEFTINPUT); mySerial1.flush();
BLYNK_WRITE(V2){ button = param.asInt(); if (button == 1){
Serial.println(UPINPUT); mySerial1.print(UPINPUT);
Serial.println(UPINPUT); mySerial1.print(UPINPUT); mySerial1.flush();
} button = param.asInt(); if (button == 1){
Serial.println(DOWNINPUT); mySerial1.print(DOWNINPUT); mySerial1.flush();
Serial.println(DOWNINPUT); mySerial1.print(DOWNINPUT); mySerial1.flush();
2.3.3 Điều khiển camera giám sát Để đảm bảo có thể giám sát trạm biến áp từ xa Đề xuất phương án giám sát bằng camera qua ESP32 cam kết hợp với chương trình xử lý ảnh. a) Danh sách các thiết bị
ESP32 CAM b) Nguyên lí hoạt động
Sử dụng phương thức truyền nối tiếp với 2 chân: RX – chân nhận dữ liệu; TX – chân truyền dữ liệu theo giao thức UART.
Bên trong Camera sẽ có một mắt thu hình ảnh Bên trong mắt thu là cảm biến ảnh,cảm biến này sẽ thu lượng ánh sáng về cho mắt thu và đường ánh sáng thu được là tín hiệu tương tự khi về camera sẽ được xử lí thành tín hiệu điện Từ đó, vi điều khiển sẽ xử lí thành các bit ảnh Từ các bit ảnh này được ghép thành một hình ảnh Khi tiến hành chạy video là từ những bức ảnh được ghép bởi những bit ảnh mà ghép lại với nhau theo tốc độ khung hình thì ra được thành video. c) Lập trình code
# include "esp_camera.h" include define CAMERA_MODEL_AI_THINKER include "camera_pins.h" const char* ssid = "Gol."; const char* password = "22060808"; void startCameraServer(); void setup() {
Serial.println(); camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2;
} else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1;
# if defined(CAMERA_MODEL_ESP_EYE) pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); endif
// camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err); return;
} sensor_t * s = esp_camera_sensor_get(); if (s->id.PID == OV3660_PID) { s->set_vflip(s, 1);//flip it back s->set_brightness(s, 1);//up the blightness just a bit s->set_saturation(s, -2);//lower the saturation
#if defined(CAMERA_MODEL_M5STACK_WIDE) s->set_vflip(s, 1);
WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500);
Serial.println("WiFi connected"); startCameraServer();
Serial.print("Camera Ready! Use 'http://");
2.3.4 Thiết kế giám sát, cảnh báo năng lượng khi mức pin thấp Để đảm bảo hoạt động của robot ngoài môi trường đươc đảm bảo, robot có chức năng thông báo, quay về trạm sạc khi mức năng lượng thấp Đề xuất phương án giám sát năng lượng, cần đo được điện áp của nguồn pin, đưa thông tin cho vi điều khiển trung tâm để thực hiện giám sát năng lượng.
Phương án đo mức pin: sử dụng mạch cầu phân áp, giá trị đo dưới dạng tín hiệu điện áp đưa vào chân đọc analog của vi điều khiển trung tâm. a) Tính toán
Bộ ADC của adruino mặc định xử lý 12 bit, tức là có giá trị từ 0- 1023 tương ứng với giá trị điện áp 0-3.3V.
Vcc = 3.7x3 = 11.1V Điện áp ra lớn nhất tại A0 là VA0 = 3.3V Ta có công thức điện áp:
R1+R2 Chọn R2=1k Ω => R1=2.36k Ω Chọn trở 2k2 Ω. b) Lập trình code int volRead = A0; int giaTriDo; float volOut; float volIn; void setup() { pinMode(volRead, INPUT);
} void loop() { giaTriDo = analogRead(volRead); volOut = (giaTriDo*3.3)/1024.0; volIn = float(volOut/float(1000.0/3200.0));