1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT

38 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 1,7 MB

Cấu trúc

  • PHẦN I

  • THỰC HÀNH

  • 1. GIỚI THIỆU

    • 1.1 Giới thiệu về công ty

    • 1.2 Nhiệm vụ được giao thực tập

    • 1.3 Thời gian và lịch trình thực tập

  • 2. NỘI DUNG THỰC TẬP

    • 2.1 Nội dung 1: Lập trình C/C++

    • 2.2 Nội dung 2: Tập thao tác code trên Keil C, Visual Studio Code

    • 2.3 Nội dung 3: Học quản lý project bằng Source Tree

    • 2.4 Nội dung 4: Viết code theo chuẩn

      • Enum

      • Global public variable

    • Indentation

    • White spaces

    • Consistent line folding

    • Control structures

    • 2.5 Nội dung 5: Lập trình GPIO, PWM, ADC, INTERRUPTS, UART, I2C, SPI

    • 2.6 Nội dung 6: Lập trình firmware

    • Quy tắc viết file header bao gồm các hàm interface:

    • Quy tắc đặt tên các struct, các enum, con trỏ hàm

    • Viết device driver đa dụng

    • Làm project:

  • 3. TỔNG KẾT CÔNG VIỆC THỰC TẬP

    • 3.1 Kết quả công việc thực tập

    • 3.2 Kinh nghiệm học được sau khi thực tập

  • 4. TÀI LIỆU THAM KHẢO

  • 5. PHỤ LỤC

  • PHẦN II

  • LÝ THUYẾT

  • TÌM HIỂU VỀ CÁC CẢM BIẾN NHIỆT ĐỘ

  • A. GIỚI THIỆU

    • 5.1 Tổng quan

    • 5.2 Nhiệm vụ đề tài

  • B. LÝ THUYẾT

  • C. THIẾT KẾ VÀ THỰC HIỆN BẰNG PHẦN MỀM

  • D. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

  • 1. Kết luận

  • 2. Tài liệu tham khảo

Nội dung

BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOTLỜI CẢM ƠN Tám tuần thực tập ngắn ngủi là cơ hội cho em tổng hợp và hệ thống hóa lại những kiến thức đã học, đồng thời kết hợp với thực tế để nâng cao kiến thức chuyên môn. Tuy chỉ có tám tuần thực tập, nhưng qua quá trình thực tập, em đã được mở rộng tầm nhìn và tiếp thu rất nhiều kiến thức thực tế. Từ đó em nhận thấy, việc cọ sát thực tế là vô cùng quan trọng – nó giúp sinh viên xây dựng nền tảng lý thuyết được học ở trường vững chắc hơn. Trong quá trình thực tập, từ chỗ còn bở ngỡ cho đến thiếu kinh nghiệm, em đã gặp phải rất nhiều khó khăn nhưng với sự giúp đỡ tận tình của quý thầy cô khoa điện – điện tử và sự nhiệt tình của các cô chú, anh chị trong cty FIOT đã giúp em có được những kinh nghiệm quý báu để hoàn thành tốt kì thực tập này cũng như viết lên bài báo cáo cuối kỳ. Em xin chân thành cám ơn. Lời cám ơn đầu tiên em xin gửi đến ban lãnh đạo cùng các phòng ban, các cô chú, anh chị trong cty FIOT – đơn vị đã tiếp nhận và nhiệt tình tạo mọi điều kiện thuận lợi cho em tiếp cận thực tế và nắm bắt quy trình công nghệ. Em cũng xin gửi lời cám ơn chân thành đến Ban giám hiệu trường Đại học Bách Khoa TP.HCM, quý thầy cô khoa điện – điện tử đã tận tâm giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý báu cho em. Đặc biệt, em xin cán ơn thầy Hồ Trung Mỹ , người đã tận tình hướng dẫn em hoàn thành bài báo cáo này. Vì thời gian và kiến thức còn hạn hẹp nên bài báo cáo không thể tránh khỏi những thiếu sót, rất mong sự góp ý của công ty, quý thầy cô và các bạn, để em rút kinh nghiệm và hoàn thành tốt hơn. Em xin chân thành cám ơnTp. Hồ Chí Minh, ngày 28 tháng 8 năm 2019 . Sinh viên thực hiện PHẦN ITHỰC HÀNH MỤC LỤC1.GIỚI THIỆU31.1Giới thiệu về công ty31.2Nhiệm vụ được giao thực tập41.3Thời gian và lịch trình thực tập42.NỘI DUNG THỰC TẬP42.1Nội dung 142.2Nội dung 26 2.3Nội dung 362.4Nội dung 472.5Nội dung 582.6Nội dung 6113.TỔNG KẾT CÔNG VIỆC THỰC TẬP123.1Kết quả công việc thực tập123.2Kinh nghiệm học được sau khi thực tập124.TÀI LIỆU THAM KHẢO135.PHỤ LỤC13

GIỚI THIỆU

Giới thiệu về công ty

Fiot Co., Ltd là một công ty hệ thống nhúng hàng đầu tại Việt Nam, chuyên cung cấp giải pháp toàn diện trong phát triển sản phẩm điện tử Công ty đảm nhận mọi giai đoạn từ ý tưởng ban đầu, thiết kế nguyên mẫu cho đến sản xuất quy mô công nghiệp, đảm bảo chất lượng và hiệu quả trong từng sản phẩm.

Fiot chuyên phát triển các giải pháp và sản phẩm IoT toàn diện, bao gồm phần cứng, firmware, phần mềm và dịch vụ đám mây Công ty luôn cập nhật công nghệ mới nhất vào các giải pháp IoT, kết hợp tận dụng Big Data và Machine Learning để nâng cao độ thông minh, hiệu suất và độ chính xác của các sản phẩm và hệ thống mà Fiot phát triển.

- Định hướng phát triển và hoạt động chính của cty:

 Fiot cung cấp các dịch vụ thiết kế và phát triển tiên tiến cho Internet of Things

(IoT) và thị trường thiết bị chăm sóc sức khỏe di động.

 Vận hành và quản lý các hệ thống nhúng.

 Phát triển ứng dụng đa nền tảng web và mobile.

Fiot có 5 năm kinh nghiệm cung cấp giải pháp IoT và phát triển nhúng cho khách hàng toàn cầu, chủ yếu tại Châu Âu và Hoa Kỳ Đối tượng khách hàng của công ty bao gồm các nhà sản xuất thiết bị, nhà mạng, công ty khởi nghiệp, cũng như các bệnh viện và phòng khám công nghệ cao.

Nhiệm vụ được giao thực tập

Tại cty, chúng em được training các kiến thức đã học ở trường lẫn các kiến thức mới nhất mà các doanh nghiệp nước ngoài đang áp dụng.

 Nội dung 1: Đọc tài liệu về lập trình C/C++, tìm hiểu cấu trúc bộ nhớ

 Nội dung 2: Thực hành code trên Keil C, CUBE MX, Visual Studio Code

 Nội dung 3: Học cách quản lý project bằng Source Tree

 Nội dung 4: Học cách code theo tiêu chuẩn của công ty

 Nội dung 5: Lập trình căn bản về GPIO, ADC, PWM, TIMER, UART, SPI, I2C,

 Nội dung 6: Lập trình firmware, device driver

Thời gian và lịch trình thực tập

 Thời gian thực tập: 2 tháng (từ ngày 5/8/2019 đến ngày 23/9/2019)

Lịch trình thực tập được chia thành 8 tuần với các nội dung cụ thể: Tuần 1, học bổ sung kiến thức về C/C++ và luyện tập thao tác code để dễ đọc, dễ debug Tuần 2, tìm hiểu và lập trình về các ngoại vi như ADC, PWM, TIMER, và chống rung nút nhấn dựa trên ngắt ngoài Tuần 3, thực hành giao tiếp với UART và SPI thông qua việc sử dụng RFID quét thẻ từ Tuần 4, nghiên cứu về lập trình hệ điều hành thời gian thực (RTOS) Trong các tuần 5, 6, 7, thực hiện dự án theo yêu cầu của công ty Cuối cùng, tuần 8 sẽ tổng kết dự án.

NỘI DUNG THỰC TẬP

Nội dung 1

- Đọc hiểu về các kiểu dữ liệu cơ sở:

 Kiểu số nguyên không dấu và có dấu: char, int, short, long

 Kiểu số thực: float, double

 Kiểu luận lý (bool): true, false

 Kiểu ký tự (char): 256 mã ASCII

- Các loại biến const, static, volatile, extern, global, …

- Toán tử và mức độ ưu tiên toán tử: +, -, *, /, ++, , ^, &,…

- Các câu lệnh điều kiện và rẽ nhánh, vòng lặp

- Mảng 1 chiều, 2 chiều, con trỏ 1 chiều, con trỏ 2 chiều, con trỏ hàm, chuỗi ký tự

- Quản lý bộ nhớ, cấp phát bộ nhớ động, điều chỉnh kích thước vùng nhớ stack, heap,

Ngoài ra em còn được training thêm về các giải thuật lập trình như cây nhị phân, tìm kiếm, tìm kiếm tuyến tính, bubble sort, insertion sort, …

Nội dung 2

Để tạo dự án trên CUBEMX của STM, bạn cần ánh xạ các chân ngoại vi với chức năng cần sử dụng và điều chỉnh xung clock Sau đó, hãy tạo ra tập lệnh và mã nguồn trên Keil C hoặc Visual Studio Code.

Tập sử dụng chức năng debug và simulator của Keil C để sửa lỗi

Lập trình trên Visual studio code, cài thêm các tiện ích GitLen để kết hợp với công cụ SoureTree.

Hình 2: Giao diện VISUAL STUDIO CODE

Nội dung 3

Đây là phần mềm quản lý source code được các developer sử dụng nhiều nhất trên thế giới vì nó miễn phí và dễ dùng.

Tạo Repository trên GitLab sau đó Clone về máy.

Rẽ nhánh cho từng chức năng của project ví dụ như Wifi, nút nhấn, để dễ kiểm soát lỗi

Nội dung 4

Sau đây là một số tiêu chuẩn:

 Enum name is written in lowercase_with_underscore, following by _enum

 Enum's item is written in UPPERCASE_WITH_UNDERSCORE

Global public variable must have prefix g_

 Lines longer than 110 columns should be avoided.

 Two spaces for each indentation should be used Tabs are not allowed.

 Unary operators shall never be separated from their operands with space.

 Binary operators except comma (“,”) should be written with a space between them and their operand.

When parameter lists or enumerators exceed a single line, it's essential to break the line after each element, placing each one on a separate line for clarity For example, in a function declaration like `void a_long_function_name(parameter_type_t *param1, parameter_type_t *param2, int param3);`, each parameter should be listed individually on its own line to enhance readability.

When a conditional expression becomes complex and long, it should be broken up so that each expression is placed on a separate line.

In programming, brackets are unnecessary when each branch of the if statement consists of a single statement For example, the code snippet demonstrates this with an if condition checking if the state is not equal to zero, followed by a while loop that sets or clears a value based on the condition.

 Brackets are not required if the body of while, for structures contain only 1 statement. while (counter > 0) counter ;

 Do not open/close the bracket on same line with if, while, for, switch if the structure cannot fit in a single line. if (a > b)

Nội dung 5

Khi mới đầu thực tập:

- Đọc tài liệu, nghiên cứu về nguyên lý hoạt động của các ngoại vi, các thanh ghi chức năng.

- Config các cấu hình quan trọng như NVIC, CLOCK, GPIO, UART, I2C, SPI gắn vào các chân có chức năng tương ứng.

Hình 5: Lập trình trên KEIL C ARM

- Thực hành trên kit của công ty cấp.

Hình 6: Bộ kit thực tập

- Được nhân viên hướng dẫn thực tập review code và debug.

Một số project đã làm:

LED CHASING là một dự án sử dụng xung PWM để điều chỉnh độ sáng của đèn, tạo ra hiệu ứng rượt đuổi khi các LED trên bảng sáng và tắt lần lượt nhau Kỹ thuật này thường kết hợp với bộ đếm thời gian để tạo ra những hiệu ứng ánh sáng sinh động và hấp dẫn.

2 để điều khiển tốc độ thay đổi độ sáng tối.

- Macro điều khiển độ sáng:

HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);

- Hàm được gọi khi timer tràn: void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

 Giao tiếp với IC DS1307: project này em dùng chuẩn giao tiếp I2C lấy hoặc ghi dữ liệu thời gian thực với IC DS1307

HAL_I2C_Master_Transmit(&hi2c1, DS1307_ADDRESS, (uint8_t*)&DS1307.I2C_buffer, 8, 100); // tham số truyền vào gồm handle của i2c, con trỏ tới ô data cần gửi, số byte cần gửi, time out

HAL_I2C_Master_Receive(&hi2c1, DS1307_ADDRESS, (uint8_t*)&DS1307.I2C_buffer, 7, 100);

- Cấu hình thêm 2 chân UART2: tốc độ baud 115200, 8 bit , k parity, non stop bit.

- Em được học cách sử dụng DMA: là kiểu ghi dữ liệu từ ngoại vi thẳng vào bộ nhớ mà không đến sự thực thi của CPU

 Giao tiếp với RFID: RFID có thể dùng cả SPI và I2C để giao tiếp, sau đây là

1 function truyền và nhận data bằng chuẩn SPI: uint8_t SPI1SendByte(uint8_t data)

{ unsigned char writeCommand[1]; unsigned char readValue[1]; writeCommand[0] = data;

HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)&writeCommand,

Nội dung 6

Quy tắc viết file header bao gồm các hàm interface:

Chỉ những hàm mà khi trong module được gọi thì mới được viết vào file header

Khai báo tất cả các biến được dùng trong phần c

Các thư viện cần dùng

Thêm vào chỉ thị tiền xử lý như #ifndef, #ifdef , các macro

Quy tắc đặt tên các struct, các enum, con trỏ hàm

Các struct đặt tên phải có đuôi” _t” VD: ds1307_return_t

Các phần tử của enum phải viết in hoa tất cả

Con trỏ hàm nên đặt tên dễ hiểu và có đủ các tham số cần thiết

Viết device driver đa dụng

In the header file, it is essential to declare function pointers with all necessary parameters For instance, the typedef for writing to the DS1307 I2C device can be defined as `typedef uint8_t (*ds1307_i2c_write_t)(uint16_t device_address, uint8_t *p_buffer, uint16_t buffer_length);`, while reading from the device can be represented as `typedef uint8_t (*ds1307_i2c_read_t)(uint16_t device_address, uint8_t *p_buffer, uint16_t buffer_length);`.

{ uint8_t address; ds1307_i2c_write_t i2c_write; // Function write data ds1307_i2c_read_t i2c_read; // Function read data

} ds1307_handle_t; extern uint32_t ds1307_read_time(ds1307_handle_t *h);

Trong file c tạo hàm có tham số là handle chỉ tới struct nêu trên

 uint32_t ds1307_read_time(ds1307_handle_t *h)

Đọc cảm biến bằng STM32F4 và gửi dữ liệu lên sever thông qua module

Kết hợp với các giao thức của team software để gửi dữ liệu lên sever

Yêu cầu: gửi dữ liệu sau mỗi 5s, có các hàm báo lỗi, hàm check sum giá trị gửi

TỔNG KẾT CÔNG VIỆC THỰC TẬP

GIỚI THIỆU

Nhiệm vụ đề tài

- Đề tài này sẽ giúp em nắm rõ nguyên lý hoạt động của các cảm biến thông dụng hiện nay.

- Qua đó giúp em hoàn thành đươc một phần luận văn trong năm học sắp tới.

LÝ THUYẾT

I Sơ lược về vi điều khiển PIC 16F877a

PIC là họ vi điều khiển RISC do công ty Microchip Technology sản xuất, với dòng sản phẩm đầu tiên là PIC1650, được phát triển bởi bộ phận Microelectronics của General Instrument.

PIC, viết tắt của "Programmable Intelligent Computer" (Máy tính khả trình thông minh), là sản phẩm đầu tiên của hãng General Instrument mang tên PIC1650 Thiết bị này được sử dụng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16bit CP1600, do đó, PIC còn được gọi là "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi).

2) Ngôn ngữ lập trình cho PIC

PIC sử dụng tập lệnh RISC với các dòng PIC low-end (12 bit, ví dụ: PIC12Cxxx) và mid-range (14 bit, ví dụ: PIC16Fxxxx), bao gồm khoảng 35 lệnh Đối với các dòng PIC high-end (16 bit, ví dụ: PIC18Fxxxx), tập lệnh có khoảng 70 lệnh Tập lệnh này bao gồm các lệnh tính toán trên thanh ghi, hằng số và vị trí bộ nhớ, cũng như các lệnh điều kiện, nhảy/gọi hàm và quay trở về Ngoài ra, nó còn có các tính năng phần cứng như ngắt và chế độ tiết kiệm điện Microchip cung cấp môi trường lập trình MPLAB, bao gồm phần mềm mô phỏng và trình dịch ASM.

Hình 1: Sơ đồ khối PIC16F877a

II Sơ lược về cảm biến nhiệt độ

1) Phân loại cảm biến nhiệt

Sau đây là một số loại cảm biến được sử dụng khá rộng rãi trong đời sống hàng ngày:

– Cấu tạo: Gồm 2 chất liệu kim loại khác nhau, hàn dính một đầu.

– Nguyên lý: Nhiệt độ thay đổi cho ra sức điện động thay đổi ( mV).

– Ưu điểm: Bền, đo nhiệt độ cao.

– Thường dùng: Lò nhiệt, môi trường khắt nghiệt, đo nhiệt nhớt máy nén,… – Tầm đo: -100 D.C

Ngày đăng: 12/02/2022, 12:00

HÌNH ẢNH LIÊN QUAN

Hình 1: Cty FIOT - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 1 Cty FIOT (Trang 6)
Hình 2: Giao diện VISUAL STUDIO CODE - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 2 Giao diện VISUAL STUDIO CODE (Trang 8)
Hình 3: Source tree - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 3 Source tree (Trang 9)
Hình 4: CUBEMX - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 4 CUBEMX (Trang 12)
Hình 5: Lập trình trên KEIL C ARM - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 5 Lập trình trên KEIL C ARM (Trang 12)
Hình 7: RFID - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 7 RFID (Trang 13)
Hình 1: Sơ đồ khối PIC16F877a - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 1 Sơ đồ khối PIC16F877a (Trang 21)
Hình 3: Vỏ IC - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 3 Vỏ IC (Trang 27)
Hình 2: IC TC74 - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 2 IC TC74 (Trang 27)
Hình 6: Hướng truyền của các bus - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 6 Hướng truyền của các bus (Trang 28)
Hình 5: Sơ đồ chi tiết - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 5 Sơ đồ chi tiết (Trang 28)
Hình 10: Cảm biến DS18B20 - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 10 Cảm biến DS18B20 (Trang 31)
Hình 13: Cảm biến nhiệt độ bên trong DHT11 - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 13 Cảm biến nhiệt độ bên trong DHT11 (Trang 33)
Hình 11: Cảm biến DHT11 - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 11 Cảm biến DHT11 (Trang 33)
Hình 12: Cảm biến độ ẩm bên trong DHT11 - BÁO CÁO THỰC TẬP TỐT NGHIỆP CÔNG TY FIOT
Hình 12 Cảm biến độ ẩm bên trong DHT11 (Trang 33)

TỪ KHÓA LIÊN QUAN

w