Làm thế nào để tạo máy tính dựa trên Arduino?
Lập dự án bằng cách sử dụng Arduino Uno như một bảng vi điều khiển thực sự thú vị nếu bạn đang làm việc trên các dự án Nhúng. Nếu bạn muốn tạo một máy tính đơn giản có thể thực hiện tất cả các phép toán số học cơ bản như cộng, trừ, nhân và chia, bạn có thể tạo ra nó ngay bây giờ nếu bạn có bí quyết với bảng Arduino. Vì vậy, trong dự án này, chúng tôi sẽ sử dụng Arduino Uno để tạo một máy tính đơn giản. Chúng tôi sẽ tích hợp Bàn phím 4 × 4 để gửi đầu vào và màn hình LCD 16 × 2 để xem đầu ra của các hoạt động của chúng tôi.
Vì vậy, như bây giờ chúng ta đã biết tóm tắt cơ bản về dự án của mình mà cuối cùng chúng ta muốn đạt được điều gì, chúng ta hãy tiếp tục và bắt đầu thu thập thêm thông tin để bắt đầu làm việc với dự án này.
Làm thế nào để tạo một máy tính đơn giản trên Arduino?
Bước 1: Thu thập các thành phần
Trước khi bắt đầu bất kỳ dự án nào, bước đầu tiên là lập một danh sách đầy đủ tất cả các thành phần sẽ được sử dụng trong dự án. Đây là một cách tiếp cận hoàn hảo vì nó tiết kiệm rất nhiều thời gian và giúp chúng tôi không bị mắc kẹt ở giữa dự án. Vì vậy, danh sách đầy đủ của tất cả các thành phần dễ dàng có sẵn trên thị trường, được đưa ra dưới đây:
Bước 2: Làm việc
Vì bây giờ chúng ta có tất cả các thành phần mà chúng ta sẽ sử dụng trong dự án này, chúng ta hãy bắt đầu làm việc với dự án này. Chúng tôi sẽ sử dụng Arduino Uno làm bảng vi điều khiển. Một đoạn mã sẽ được viết và ghi trên bảng này, mã này sẽ cho bảng biết những thao tác cần thực hiện và cách thức thực hiện. Bàn phím 4 × 4 sẽ được sử dụng để nhập dữ liệu số sẽ được tính trong máy tính. Bộ vi điều khiển sẽ thực hiện tất cả các phép toán số học và sau đó gửi kết quả đến 16 × 2 LCD.
Trước khi kết nối phần cứng, tốt hơn là mô phỏng và kiểm tra mã và các kết nối mạch trên phần mềm máy tính. Chúng tôi sẽ sử dụng Proteusvì mục đích này. Sau khi kiểm tra mạch và xác nhận rằng nó hoạt động hoàn toàn tốt trên phần mềm, chúng tôi sẽ chuyển sang phần cứng.
Bước 3: Mô phỏng mạch
Trước khi thực hiện dự án này trên phần cứng, chúng tôi sẽ mô phỏng nó trên Proteus trước để kiểm tra xem mã có hoạt động tốt hay không. Nếu bạn chưa làm việc trên Proteus trước đây, không có gì phải lo lắng. Để mô phỏng mạch trên phần mềm, thực hiện các bước sau.
- Nếu bạn chưa cài đặt phần mềm này trên máy tính của mình, hãy nhấp vào đây để tải xuống.
- Sau khi phần mềm được cài đặt, hãy mở phần mềm và tạo một dự án mới bằng cách nhấp vào ISIS cái nút.
- Proteus ban đầu không có thư viện Arduino. Chúng tôi sẽ phải bao gồm nó. Thư viện Arduino cho proteus được đính kèm cùng với mã trong liên kết dưới đây. Sao chép các tệp và dán chúng vào C: \ ProgramData \ Labcenter Electronics \ Proteus 8 Professional \ LIBRARY.
- Một giản đồ mới vừa được mở. Bấm vào Pđể mở menu thành phần.
- Một hộp sẽ xuất hiện chứa thanh tìm kiếm ở góc trên cùng bên trái. Tìm kiếm thành phần mà bạn cần sử dụng trong dự án.
- Sau khi chọn tất cả các thành phần, bạn sẽ thấy một danh sách đầy đủ ở phía bên trái của màn hình.
- Lập sơ đồ mạch điện như hình dưới đây.
- Bây giờ, hãy mở tệp Arduino được cung cấp bên dưới. Trong menu Sketch, nhấp vào Xuất nhị phân đã biên dịch. Điều này sẽ tạo ra một tệp .hex sẽ được sử dụng trong mô phỏng Arduino trong Proteus.
- Đây là hai tệp sẽ được tạo. Chúng tôi sẽ sử dụng cái đầu tiên trong mô phỏng của chúng tôi.
- Bây giờ khi tệp HEX được tạo, hãy mở proteus và nhấp đúp vào bảng vi điều khiển. Một hộp sẽ xuất hiện để chỉnh sửa thành phần. Tải lên tệp hex ở đó.
Khi mã được tải lên thành công ở đây, bạn có thể kiểm tra máy tính bằng cách thực hiện một số phép toán số học và xác nhận kết quả.
Bước 4: Lắp ráp mạch
Vì mạch được mô phỏng và mã hoạt động hoàn toàn tốt trên đó. Hãy để chúng tôi đi trước một bước và lắp ráp tất cả các thành phần lại với nhau trên Veroboard để tạo ra sản phẩm cuối cùng. Thực hiện các bước sau để thực hiện tất cả các kết nối trong mạch.
- Có tổng cộng 8 chân trên bàn phím 4 × 4 có tên là A, B, C, D, 1, 2, 3 và 4. Đảm bảo rằng bạn kết nối chân A, B. C và D với chân0, pin1, pin2 và pin3 của bảng Arduino Uno và chân 1, 2, 3 và 4 của bàn phím tương ứng với pin4, pin5, pin6 và pin7 của bảng Arduino Uno.
- Bây giờ Kết nối chân D4, D5, D6 và D7 của màn hình LCD 16 × 2 với chân 10, chân11, chân12 và chân 13 của bảng Arduino tương ứng.
- Bây giờ kết nối RE và Echân của màn hình LCD tương ứng với chân 8 và chân9 của bảng Arduino.
- Rút gọn VSS, VEE và RW chân của màn hình LCD và kết nối chúng với mặt đất của Arduino Uno.
- Bật nguồn cho màn hình LCD bằng cách kết nối VDD chân của màn hình LCD vào 5V của Arduino UNO.
Bước 5: Bắt đầu với Arduino
Arduino IDE là một phần mềm mà bạn có thể viết, gỡ lỗi và biên dịch mã sẽ chạy trên vi điều khiển Arduino. Mã này sẽ được tải lên vi điều khiển thông qua IDE này. NẾU bạn chưa có kinh nghiệm trước đây với phần mềm này, không có gì phải lo lắng vì toàn bộ quy trình để sử dụng phần mềm này được đưa ra dưới đây.
- Nếu bạn chưa cài đặt phần mềm, hãy nhấp vào đây để tải xuống phần mềm.
- Kết nối bảng Arduino của bạn với PC và mở Bảng điều khiển. Bấm vào Phần cứng và Âm thanh.Bây giờ mở Thiết bị và Máy in và tìm cổng mà bo mạch của bạn được kết nối. Cổng này khác nhau trên các máy tính khác nhau.
- Bây giờ hãy mở Arduino IDE. Từ Công cụ, đặt bảng Arduino thành Arduino / Genuino UNO.
- Từ cùng một menu Công cụ, hãy đặt số cổng. Số cổng này phải giống chính xác với số cổng đã được quan sát trước đó trong bảng điều khiển.
- Bây giờ, để sử dụng bàn phím 4 × 4 và màn hình LCD 16 × 2 với Arduino IDE, chúng ta cần nhập các thư viện đặc biệt cho phép chúng ta ghi mã trên Arduino Uno và sử dụng nó. hai thư viện này được đính kèm trong liên kết dưới đây. Để bao gồm thư viện, goto Phác thảo> Bao gồm Thư viện> Thêm Thư viện ZIP. Một hộp sẽ xuất hiện. Tìm thư mục ZIP trên máy tính của bạn và nhấp vào OK để bao gồm các thư mục. Thư viện này được đính kèm cùng với mã trong liên kết bên dưới.
- Tải xuống mã được đính kèm bên dưới và sao chép nó vào IDE của bạn. Để tải mã lên, hãy nhấp vào nút tải lên.
Để tải xuống mã, bấm vào đây.
Bước 6: Tìm hiểu Quy tắc
Mã được nhận xét rất tốt. Tuy nhiên, để bạn dễ dàng, nó được giải thích dưới đây.
1. Khi bắt đầu, các tệp tiêu đề được viết để bao gồm các thư viện để bàn phím và màn hình LCD có thể được giao tiếp với bảng Arduino Uno.
#include// Bao gồm tệp Header cho LCD #include // Bao gồm tệp Header cho Bàn phím
2. Sau đó, hai biến được khai báo để giữ số hàng và số cột của bàn phím. Sơ đồ bàn phím cho chúng ta biết về chuỗi các phím có trong bàn phím.
const byte ROWS = 4; // Bốn hàng của bàn phím const byte COLS = 4; // Ba cột của bàn phím // Xác định các phím Biểu đồ ký tự [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', ' 6 ',' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}};
3. Sau đó, nó được chỉ định hàng và cột nào của bàn phím được kết nối với chân nào của Arduino. Sau khi hoàn tất, một bàn phím có thể được tạo bằng cách ánh xạ tất cả các chân của nó.
byte rowPins [ROWS] = {0, 1, 2, 3}; // Kết nối bàn phím ROW0, ROW1, ROW2 và ROW3 với các chân Arduino 0,1,2,3 tương ứng. byte colPins [COLS] = {4, 5, 6, 7}; // Kết nối bàn phím COL0, COL1 và COL2 tương ứng với các chân Arduino 4,5,67 này. Keypad kpd = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS); // Tạo bàn phím
4. Sau đó, chúng tôi cho biết chân nào của màn hình LCD được kết nối với chân nào của Arduino.
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Các chân mà LCD được kết nối LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Tạo màn hình LCD
5. Sau đó, một số biến được khởi tạo để giữ các giá trị của phép tính và thực hiện các hoạt động trong thời gian chạy.
dài Num1, Num2, Number; phím char, hành động; kết quả boolean = false;
6. void setup () là một chức năng chỉ chạy một lần khi mạch được cấp nguồn. Trong chức năng này, chúng tôi khai báo chân nào của bảng Arduino sẽ được sử dụng để lấy đầu vào và chân nào sẽ được sử dụng để gửi đầu ra. Tốc độ truyền cũng được thiết lập trong chức năng này, về cơ bản là tốc độ truyền thông tin bằng bit trên giây.
void setup () {Serial.begin (9600); lcd.begin (16, 2); // Chúng tôi đang sử dụng màn hình LCD 16 * 2 lcd.print ("Máy tính"); // Hiển thị thông báo giới thiệu lcd.setCursor (0, 1); // đặt con trỏ về cột 0, dòng 1 delay (1000); // Chờ 1 giây lcd.clear (); // xóa màn hình LCD}
7. Tính toán ()là một chức năng sẽ được sử dụng để phát hiện dấu hiệu được nhấn trên bàn phím. trên cơ sở ký hiệu được nhấn, nó sẽ quyết định thực hiện phép toán số học nào.
void CalculResult () {if (action == '+') // nếu nhấn dấu + Number = Num1 + Num2; // thêm cả hai số if (action == '-') // nhấn dấu if - Number = Num1-Num2; // trừ cả hai số if (action == '*') // if nhấn dấu * Number = Num1 * Num2; // nhân cả hai số if (action == '/') // if / dấu được nhấn Number = Num1 / Num2; // chia cả hai số}
8. DisplayResult ()là một chức năng được sử dụng để hiển thị kết quả trên màn hình LCD. Trước hết, nó đặt con trỏ ở vị trí ban đầu và in số đầu tiên. Sau đó, nó hiển thị toán tử logic và sau đó là số thứ hai. Sau khi in dấu “=”, nó sẽ hiển thị câu trả lời trên màn hình LCD.
void DisplayResult () {lcd.setCursor (0, 0); // đặt con trỏ ở cột 0, dòng 1 lcd.print (Num1); // in số đầu tiên ra màn hình lcd.print (action); // in dấu đã nhấn ra màn hình lcd.print (Num2); // in số thứ 2 ra màn hình if (result == true) // Hiển thị kết quả {lcd.print ("="); // in dấu = ra màn hình lcd.print (Number); // in câu trả lời ra màn hình}}
9. DetectButtons ()là một chức năng được sử dụng để phát hiện nút nào được nhấn. nó cũng sẽ phát hiện nếu nút được nhấn hai lần. Chức năng này sẽ trả về một số sẽ được nhấn trên bàn phím.
void DetectButtons () {lcd.clear (); // Sau đó làm sạch nó if (key == '*') // Nếu nút hủy được nhấn {Serial.println ("Nút Hủy"); // in ra comment Number = Num1 = Num2 = 0; kết quả = sai; } if (key == '1') // Nếu Nút 1 được nhấn {Serial.println ("Nút 1"); if (Số == 0) Số = 1; else Số = (Số * 10) + 1; // Được nhấn 2 lần} if (key == '4') // Nếu Nút 4 được nhấn {Serial.println ("Nút 4"); if (Số == 0) Số = 4; else Số = (Số * 10) + 4; // Được nhấn 2 lần} if (key == '7') // Nếu Nút 7 được nhấn {Serial.println ("Nút 7"); if (Số == 0) Số = 7; else Số = (Số * 10) + 7; // Được nhấn hai lần} if (key == '0') // Nếu Nút 0 được nhấn {Serial.println ("Nút 0"); if (Số == 0) Số = 0; else Số = (Số * 10) + 0; // Được nhấn 2 lần} if (key == '2') // Nút 2 được nhấn {Serial.println ("Nút 2"); if (Số == 0) Số = 2; else Số = (Số * 10) + 2; // Được nhấn hai lần} if (key == '5') // Nút 5 được nhấn {Serial.println ("Nút 5"); if (Số == 0) Số = 5; else Số = (Số * 10) + 5; // Được nhấn hai lần} if (key == '8') // Nút 8 được nhấn {Serial.println ("Nút 8"); if (Số == 0) Số = 8; else Số = (Số * 10) + 8; // Được nhấn hai lần} if (key == '#') // Nút # được nhấn {Serial.println ("Nút bằng"); Num2 = Số; kết quả = true; } if (key == '3') // Nút 3 được ép {Serial.println ("Nút 3"); if (Số == 0) Số = 3; else Số = (Số * 10) + 3; // Được nhấn hai lần} if (key == '6') // Nút 6 được nhấn {Serial.println ("Nút 6"); if (Số == 0) Số = 6; else Số = (Số * 10) + 6; // Được nhấn 2 lần} if (key == '9') // Nút 09 được nhấn {Serial.println ("Nút 9"); if (Số == 0) Số = 9; else Số = (Số * 10) + 9; // Được nhấn hai lần} if (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Phát hiện các nút trên cột 4 {Num1 = Number; Số = 0; if (key == 'A') {Serial.println ("Phép cộng"); hành động = '+'; } if (key == 'B') {Serial.println ("Phép trừ"); hành động = '-'; } if (key == 'C') {Serial.println ("Phép nhân"); hành động = '*'; } if (key == 'D') {Serial.println ("Devesion"); hành động = '/'; } delay (100); }}
10. void loop ()là một hàm sẽ chạy đi chạy lại trong một vòng lặp. Hàm này được sử dụng để gọi tất cả các hàm khác sẽ được sử dụng để thực hiện tất cả các hoạt động. Các chức năng đó đã được giải thích ở trên.
void loop () {key = kpd.getKey (); // lưu trữ giá trị phím được nhấn trong một char if (key! = NO_KEY) DetectButtons (); // gọi hàm if (result == true) CalculResult (); // gọi hàm DisplayResult (); // gọi hàm}
Bước 7: Kiểm tra
Bây giờ, khi chúng ta đã kết nối tất cả các thành phần với nhau và tải lên mã trong bộ vi điều khiển, hãy kiểm tra máy tính xem nó có hoạt động tốt hay không. Để kiểm tra máy tính, hãy bấm bất kỳ phím số nào. Sau đó bấm Avà sau đó nhấn lại bất kỳ phím số nào. Khi bạn đã thực hiện việc này, màn hình LCD sẽ hiển thị việc cộng cả hai số.
Đây là toàn bộ quy trình để tạo và kiểm tra một máy tính sử dụng Arduino. Giờ đây, bạn có thể tận hưởng việc tự tạo máy tính dựa trên Arduino tại nhà.