Lập trình,lắp đặt cho mạch đo cƣờng độ sáng với arduino

Một phần của tài liệu Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh (Trang 26)

Khi moduel cảm biến rung đƣợc kích hoạt,khi đó sẽ có sự thay đổi điện áp đầu vào của Ic393.Ic này nhận biết có sự thay đổi nó sẽ đƣa ra một tín hiệu thấp để báo hiệu sự rung động.

Hình 3.3 Mạch đo cƣờng độ sáng với arduino *code lập trình

int OutPin = A0; // Lƣu chân ra của cảm biến

void setup() {

//Đối với một chân analog bạn không cần pinMode

Serial.begin(9600);//Mở cổng Serial ở mức 9600

pinMode (7, INPUT_PULLUP); pinMode (13, OUTPUT);

}

void loop() {

int value = analogRead(OutPin); // Ta sẽ đọc giá trị hiệu điện thế của cảm biến

. // Giá trị đƣợc số hóa thành 1 số nguyên có giá trị

// trong khoảng từ 0 đến 1023

Serial.println(value);//Xuất ra serial Monitor

20

Hinh 3.4 Kết quả Hiển thị đo cƣờng độ sáng từ arduino 3.3. Lắp đặt mạch kết nối bluetooth HC05 với arduino.

Moduel HC-05 sử dụng tập lệnh AT để thực hiện giao tiếp với các thiết bị khác.Ta thực hiện phƣơng tiện giao tiếp với arduino thông qua 2 chân Tx Và Rx,chỉ đơn giản nhƣ thế. Chỉ kết nối chân Tx với chân Rx và chân Rx với Tx của arudino là có thể giao tiếp đƣợc giữa arduino và moduel bluetooth HC-05.

21 Sau khi kết nối thành công với thiết bị bluetooth khác, thì đèn trên moduel bluetooth HC05 sẽ nhấp nháy chậm cho thấy kết nối Serial đã đƣợc thiết lập.

3.4. Lắp đặc đo điện áp accu

Để đo đƣợc điện áp accu thì ta sử dụng cầu phân áp.Mục đích lấy đƣợc điện áp đầu vào kết nối với chân analog input của arduino với điện áp quy định DC 0-5V.

Trong các khối nguồn thƣờng dùng cầu phân áp 2 điệt trở nên viêc tính áp sẽ nhanh hơn :

Hình 3.6 Mạch kết nối đo điện áp accu với arduino.

I= Vcc / (R1 + R2)

Vout1 là điện áp đo đƣợc tại 2 đầu điện trở R2: Vout1 = I x R2

22 Code lập trình

// Chương trình như sau:

voidsetup() {

// Đặt kết nối cho Arduino 9600 bits trên giây:

Serial.begin(9600);

}

// Vòng lặp chính, làm cho chương trình chạy liên tục:

voidloop() {

// Đọc tín hiệu analog từ chân A0:

int sensorValue = analogRead(A0); // Chuyển đổi tín hiệu đọc được:

float voltage = 11*sensorValue * (5.0 / 1023.0);// Tỷ lệ điện áp đầu vào 36V sau khi

phân áp vào arduino

// Xuất ra ngoài màn hình:

Serial.println(voltage);

Kết quả hiển thị :

Hình 3.7 Kết quả hiển thị điện áp accu.

23

3.5. Lập trình,lắp đặt cho mạch hall với aruidno

Hình 3.8 Mạch kết đo tín hiệu xung của hall với arduino.

Trên thực tế cảm biến hall có tới 5 chân, trong đó có 2 chân có thể xuất tín hiệu xung để chúng ta tính toán chiều quay thuận và ngƣợc của động cơ, và một chân xuât tín hiệu I/O. dƣới đây là động cơ xe điện đã đƣợc tích hợp sẵn cảm biến Hall.

24 *Code mẫu lập trình

#define PIN_DO 2

volatile unsignedint pulses; float rpm;

unsignedlong timeOld;

#define HOLES_DISC 2 void counter() { pulses++; } void setup() { Serial.begin(9600); pinMode(PIN_DO, INPUT_PULLUP); pulses = 0; timeOld = 0;

attachInterrupt(digitalPinToInterrupt(PIN_DO), counter, FALLING); } void loop() { if (millis() - timeOld >= 1000) { detachInterrupt(digitalPinToInterrupt(PIN_DO)); rpm = (pulses * 60) / (HOLES_DISC); Serial.println(rpm); timeOld = millis(); pulses = 0;

attachInterrupt(digitalPinToInterrupt(PIN_DO), counter, FALLING); }

25 Kết quả đo tốc độ động cơ cân bằng khi động cơ hoạt động ở chế độ thông thƣờng.

Hình 3.9 Kết quả hiển thị số quay quay động cơ cân bằng (rpm)

3.6. Lập trình,lắp đặt cho mạch đo cƣờng độ dòng điện với arduino

*Đo dòng điện DC

Khi đo DC phải mắc tải nối tiếp Ip+ và Ip- đúng chiều, dòng điện đi từ Ip+ đến Ip- để Vout ra mức điện thế 2.5 - 5V tƣơng ứng dòng 0 - 5A, nếu mắc ngƣợc Vout sẽ ra điện thế 2.5V đến 0V tƣơng ứng với 0A đến -5A.

Cấp nguồn 5v cho module khi chƣa có dòng Ip (chƣa có tải mắc nối tiếp với domino), thì Vout=2.5v. Khi dòng Ip( dòng của tải) bằng 5A thì Vout=5v, Vout sẽ tuyến tính với dòng Ip , trong khoản 2.5V đến 5V tƣơng ứng với dòng 0 đến 5A.

Để kiểm tra dùng đồng hồ VOM thang đo DC đo Vout. *Đo dòng điện AC

Khi đo dòng điện AC, do dòng điện AC không có chiều nên không cần quan tâm chiều.

Cấp nguồn 5v cho module khi chƣa có dòng Ip (chƣa có tải mắc nối tiếp với domino), thì Vout=2.5v. khi có dòng xoay chiều Ip(dòng AC) do dòng xoay chiều độ lớn thay đổi liên tục theo hàm sin, nên điện thế Vout sẽ là điện thế xoay chiều hình sin có độ lớn tuyến tính

26 với dòng điện AC , 0 đến 5V(thế xoay chiều xoay chiều) tƣơng ứng với -5A đến 5A (dòng xoay chiều).

Để kiểm tra dùng đồng hồ VOM thang đo AC đo Vout.

Hình 3.10 Lắp đặt cho mạch đo cƣờng độ dòng điện với arduino Code lập trình

const int analogIn = A2;

int mVperAmp = 100; // use 100 for 20A Module and 66 for 30A Module int ACSoffset = 2500;

void setup(){ Serial.begin(9600); }

void loop(){

int RawValue = analogRead(analogIn);

float Voltage = (RawValue / 1024.0) * 5000; // Gets you mV float Amps = ((Voltage - ACSoffset) / mVperAmp);

Serial.print("Raw Value = " ); // shows pre-scaled value Serial.print(RawValue);

27 Serial.print("\t mV = "); // shows the voltage measured

Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point

Serial.print("\t Amps = "); // shows the voltage measured

Serial.println(Amps,0); // the '3' after voltage allows you to display 3 digits after decimal point

delay(2500);

Hiển thị kết quả đo dòng:

28

Chƣơng 4. LẬP TRÌNH ANDROID MIT APP INVENTOR 2 4.1. Giới thiệu về Mit App Inventor

MIT App Inventor là một chƣơng trình của trƣờng MIT (Massachusetts Institute of Technology) cho phép bạn tạo ứng dụng Android chỉ với công việc kéo thả. Do đó bạn không cần biết gì về kiến thức lập trình. Phiên bản mới nhất hiện nay là MIT App Inventor 2

Hình 4.1 Sơ đồ nguyên truyền phiên bản mới nhất hiện nay là MIT App Inventor 2

Dựa trên ý tƣởng “những gì bạn thấy là những gì bạn có” (WYSIWYG - What you see is what you get), App Inventor giúp dễ dàng tiếp cận và xây dựng ứng dụng Android. Với giao diện trực quan, dễ hiểu, cho phép truy cập đến các chức năng của điện thoại kể cả GPS, đây là công cụ giúp cho bộ sƣu tập ứng dụng của Android ngày càng dồi dào và phong phú.

Ƣu điểm:

+ Không cần biết nhiều về code + Chỉ có động tác kéo thả đơn giản + Trực quan, dễ hiểu

29 + Hỗ trợ đủ các tập lệnh cảm biến (sensor), cơ sở dữ liệu (database), kết nối (bluetooth) – dành cho những bạn theo IoT, nghĩa là bạn có thể điều khiển nhƣ các thiết bị điện trong nhà chỉ với điện thoại Android.

+ Hỗ trợ các kết nối mạng xã hội, google maps….

Nhƣợc điểm:

+ Nặng, chạy chậm nếu nhƣ có quá nhiều code do chƣơng trình phát sinh thêm nhiều code thừa không cần thiết trong quá trình build sang file cài APK.

+ Không tối ƣu hoá code đƣợc.

+ Mỗi screen (Activity) hoạt động độc lập với nhau, chỉ có thể truyền 1 biến duy nhất sang screen kế tiếp. Nghĩa là không có biến toàn cục cho toàn bộ screen.

4.2. Giới thiệu lập trình khối

Để sử dụng đƣợc App inventor, ta phải truy cập vào địa chỉ ai2.appinventor.mit.edu

sau đó tiến hành đăng nhập tài khoản Google của bạn để mở rộng trang quản lý.

30 Để tạo một Project mới ta chọn Start New Project và đặt tên cho project đó

Hình 4.3 Giao diện Start New Project

Giao diện thiết kế Project hiện ra rất đơn giản. Bên trái là các control bao

gồm: User Interface, Media, Sensor, Social,… để sử dụng các bạn chỉ cần click chuột và kéo thả vào Screen. Ở giữa là Screen mô phỏng màn hình ứng dụng của chúng ta, bên phải

là cửa sổ quản lí các Component, Media, và Property cho từng Control.Trong App

Inventor có hai chế độ làm việc: designer và block.

4.2.1. Chế Độ Designer: chế độ dành cho thiết kế, tạo giao diện bên ngoài.

31 Giao diện của thể chia ra thành 4 thành phần chính:

+ 1: Palette: Chứa các đối tƣợng để thiết kế ứng dụng.

+ 2:Properties: Chứa các thuộc tính của đối tƣợng đang đƣợc chọn.

+ 3:Screen Viewer: Nơi cho phép thiết kế screen cho ứng dụng của mình bằng cách kéo thả các đối tƣợng vào.

+ 4: Nơi bạn quản lý screen (màn hình) và chế độ thiết kế / khối lệnh.

4. 2.1.1. palette: là nơi chứa các đối tƣợng của App Inventor và đƣợc chia làm 9 nhóm.

User inteface (Giao diện ngƣời dùng)

Hình 4.5 Giao diện User inteface (Giao diện ngƣời dùng)

Bảng 4.1 Nhóm những đối tƣợng dùng để thiết kế giao diện cho screen mà ngƣời dùng nhìn thấy đƣợc.

Nút lệnh thực hiện công việc nào đó Cho phép bạn nhập vào văn bản Tạo danh sách lựa chọn

32 Hộp thoại chọn thời gian

Hộp thoại đánh dấu check

Nhãn để hiển thị nội dung văn bản

Danh sách chọn, cũng tƣơng tự nhƣ Listview Thanh trƣợt

Hộp nhập mật khẩu, mật khẩu sẽ chỉ hiện dấu * khi nhập

Tạo hộp thoại cảnh báo, nhắc nhở Hiển thị hình ảnh

Hiển thi trang web

Hiển thị danh sách dạng menu sổ xuống  Layout (Bố cục)

33 Tại mục này chứa các giải pháp giúp bạn sắp xếp các đối tƣợng theo một bố cục nhất định:

Bảng 4.2 Nhóm lệnh sắp xếp các đối tƣợng theo một bố cục.

Sắp xếp đối tƣợng theo dạng bảng

Sắp xếp đối tƣợng theo chiều dọc

Sắp xếp đối tƣợng theo chiều ngang

Media (Phƣơng tiện truyền thông)

34 Mục này giúp bạn có thể làm việc liên quan đến đa phƣơng tiện nhƣ âm thanh, video, máy ảnh, ghi âm, ...

Bảng 4.3:Nhóm lệnh liên quan đến đa phƣơng tiện nhƣ âm thanh, video, máy ảnh, ghi âm.

Có thể chơi âm thanh vào điều khiển rung điện thoại

Chơi các tập tin âm thanh Phát âm một văn bản

Dịch ngôn ngữ, đƣợc cung cấp bởi Yandex Chơi tệp video

Quay phim Chụp ảnh

Chuyển đổi lời nói thành văn bản Chọn ảnh từ thƣ viện ảnh trong máy

35  Drawing and Animation (Vẽ và chuyển động)

Hình 4.8 Giao diện Drawing and Animation (Vẽ và chuyển động)

Tại đây giúp bạn tạo ra những chuyển động hay tƣơng tác:

Bảng 4.4: Nhóm lệnh tạo ra những chuyển động hay tƣơng tác.

Nơi cho phép Imagesprite có thể di chuyển trên nó

Đƣợc đặt trên Canvas, có thể chạm và kéo, ...

Hình quả bóng, đƣợc đặt trên Canvas

Sensors (Cảm biến)

36

Bảng 4.5: Nhóm này giúp bạn tiếp cận đƣợc những cảm biến nhƣ định vị, quét mã QR, ...

Thông tin về thời gian và đồng hồ hệ thống Tính năng quét mã QR qua camera

Vị trí và định vị địa điểm Định hƣớng trong không gian Công nghệ giao tiếp gần NFC

Cảm biến gia tốc, độ nghiêng, rung lắc Cảm biến tiệm cận gần xa

Social (Giao tiếp - Xã hội)

37

Bảng 4.6 Nhóm Các đối tƣợng này giúp bạn thao tác về liên lạc, giao tiếp và mạng xã hội.

Hộp văn bản cho phép nhập địa chỉ email Văn bản tin nhắn

Hộp thoại chọn số điện thoại Gọi điện thoại

Chia sẻ dữ liệu giữa hai máy đã cài ứng dụng Giao tiếp với mạng xã hội Twitter

Chọn một liên hệ trong danh bạ

Storage (Lƣu trữ)

38

Bảng 4.7 Nhóm chức năng này giúp bạn lƣu trữ thông tin, dữ liệu, ... theo nhiều cách khác nhau.

Liên kết với Google Fusion Tables. Cho phép bạn lƣu trữ, truy vấn và chia sẻ bảng dữ liệu.

Cho phép bạn lƣu trữ trên tập tin trên bộ nhớ điện thoại

Giúp giao tiếp với web server, lƣu trữ và truy vấn dữ liệu

Lƣu trữ và truy vấn dữ liệu ngay trong ứng dụng

Connectivity (Kết nối)

39

Bảng 4.8 Nhóm giúp bạn hoàn toàn có thể dùng chúng để kết nối bluetooth, giao thức web, ...

Bluetooth khách (theo mô hình khách - chủ) Bluetooth chủ (theo mô hình khách - chủ)

Cung cấp các chức năng HTTP GET, POST, PUT, ... Có thể chạy một "activity" thông qua phƣơng thức StartActivity

LEGO® MINDSTORMS®

Ngôn ngữ dễ nhất để làm việc với Mindstorm là ngôn ngữ đi kèm với bản NXT (và bán riêng với bản Education) là LEGO MINDSTORMS NXT SOFTWARE 2.1, đƣợc xây dựng từ LABVIEW, một ngôn ngữ lập trình Rô bốt khá phổ biến.

Hình 4.13 Giao diện LEGO® MINDSTORMS®

App Inventor cũng cung cấp cho bạn những đối tƣợng có thể làm việc với Lego Mindstorm nhƣ sau:

40

Bảng 4.9 Nhóm giúp cho bạn những đối tƣợng có thể làm việc với Lego Mindstorm.

4. 2.1.2. Thành phần - thuộc tính.

Ứng với mỗi thảnh phần, có những thuộc tính nhất định.

Hình 4.14 Giao diện Thành phần - thuộc tính

Gửi lệnh trực tiếp đến NXT Cảm biến màu sắc trên robot Cảm biến ánh sáng trên robot Âm thanh trên robot

Cảm biến siêu âm trên robot Cảm biến chạm trên robot

41

4. 2.1.3. Screen viewer

Screen view cho phép bạn kéo thả những đối tƣợng vào để thiết kế giao diện. Tại đây có những thành phần có thể thấy đƣợc (Visible component) và thành phần không thể nhìn thấy đƣợc (Non-visible component).

4. 2.1.4. Quản lý

a. Screen (màn hình)

Tại đây, hiện màn hình hiện tại, thêm màn hình mới và xóa màn hình hiện tại.

b. Chế độ làm việc

Chế độ làm việc có hai chế độ:

Designer: Dành cho nhà thiết kế

Blocks:Dạng khối lệnh

42

4.2.2. Chế Độ Blocks: chế độ làm việc với các khối lệnh xử lý bên trong chƣơng trình.

Lệnh tích hợp sẵn

Hình 4.15 Giao diện Lệnh tích hợp sẵn

Những nhóm lệnh tích hợp sẵn (Build-in) gồm những nhóm nhƣ sau:

1. Control là nhóm lệnh liên quan đến các câu lệnh điều kiện, điều khiển, vòng

lặp,...

2. Logic là những nhóm giá trị liên quan đến logic nhƣ true, false, phủ định, các

phép so sánh, ...

3. Math là nhóm lệnh, giá trị liên quan đến tính toán, con số, ...

4. Text là nhóm lệnh những câu lệnh xử lý và làm việc với chuổi, xâu ký tự, ...

5. Lists là nhóm lệnh làm việc với danh sách

6. Colors là nhóm lệnh làm việc với màu sắc

7. Variables là nhóm giúp bạn tạo, khai thác và xử lý các biến (toàn cục hoặc địa

phƣơng)

43

Creen

Hình 4.16 Giao diện Lệnh Creen

Screen hiển thị danh sách những đối tƣợng mà bạn đã kéo thả trên màn hình hiện tại. Với mỗi đối tƣợng nhƣ vậy sẽ có những câu lệnh nhất định để tƣơng tác với nó.

Any component

Hình 4.17 Giao diện Lệnh Any component

Any Component(Bất kỳ thành phần nào) là bạn có thể quy định các câu lệnh cho nhóm đối tƣợng theo một thành phần nào đó.

Ví dụ, chúng ta đặt câu lệnh cho Any Image thì bất kỳ đối tƣợng Image nào cũng có chung câu lệnh nhƣ vậy. Những câu lệnh này mang tính chung nhất, không riêng lẻ.

44

Vùng làm việc

Hình 4.18 Giao diện vùng làm việc

Vùng làm việc của Blocks có thể chia thành 4 phần nhƣ sau:

1: Vùng chứa những khối lệnh đề xuất từ một đối tƣợng mà bạn đã chọn

từ Blocks, bạn có thể kéo thả những khối lệnh này vào vùng làm việc thật sự để trở thành lệnh cho ứng dụng thực thi.

2: Những khối lệnh đã đƣợc kéo ra từ những khối lệnh đề xuất. Ứng dụng sẽ thực

thi những khối lệnh này.

3: Backpack:Giúp bạn sao chép và dán các khối lệnh đến màn hình khác hoặc

project khác.

4: Thùng rác: Để xóa những khối lệnh, bạn chỉ cần kéo thả chúng vào thùng rác

này.

Pop-up Menu

Pop-up menu bạn có thể hiểu là những cửa sổ bật lên, lúc bạn chọn vào một đối tƣợng nào đó hoặc chuột phải vào vùng trống.

45

Dành cho đối tƣợng

Với những khối lệnh bạn đã kéo ra vùng làm việc thì khi bạn chuột phải vào nó sẽ hiện lên một menu chứa những đề xuất cho bạn lựa chọn:

Disable Block / Enable Block

Một phần của tài liệu Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh (Trang 26)

Tải bản đầy đủ (PDF)

(88 trang)