Có thể bạn đang hay đã từng cảm thấy rất khó để tự bản thân mình tạo ra các hệ thống nhúng/ IoTs. Nếu bạn là một kỹ sư phần mềm thì bạn cần phải bổ sung thêm các kiến thức về kỹ thuật điện tử và ngược lại nếu bạn là một kỹ sư điện tử thì bạn cần các kiến thức về thiết kế phần mềm. Nếu bạn có điều kiện phối hợp làm việc chặt chẽ với một thành viên khác, mỗi người một thế mạnh thì mọi việc sẽ trở nên đơn giản hơn.
Bên cạnh các kiến thức chuyên môn về thiết kế phần cứng, thiết kế phần mềm, nếu bạn chưa từng trải qua một chu kỳ phát triển thiết bị nhúng/IoT nào thì có thể bạn sẽ nản trong quá trình thực hiện, Nếu nắm rõ quy trình, bạn tối ưu thời gian hơn, lường trước và giảm thiểu được các rủi ro trong quá trình thực hiện. Bài viết này phù hợp cho các bạn sinh viên hay những bạn đam mê chế tạo các thiết bị mẫu thử, hệ thống nhúng/ IoT ở mức độ đơn giản phục vụ cho đề tài nghiên cứu, đồ án hoặc demo ý tưởng sáng tạo…vv..
Ideal Project Schedule – O’Reilly Making Embedded Systems
Một sản phẩm hay mẫu thử sẽ được bắt đầu từ ý tưởng, từ nhu cầu thị trường. Thiết kế phần cứng, phần mềm của sản phẩm sẽ phụ thuộc vào các yếu tố như tính năng, chi phí và thời gian hoàn thiện. Giai đoạn thiết kế – thi công phần cứng và phần mềm bao gồm các việc liên quan đến chuyên môn phần cứng và các việc liên quan đến chuyên môn phần mềm và cả những việc cần phối hợp cả hai. Các công việc này thường diễn ra theo một kế hoạch, trình tự phổ biến như sau:
Bước 1: Lựa chọn linh kiện và kit phát triển
- Nhóm phần cứng sẽ đọc qua các tài liệu “Datasheet” và “Reference Design” để lựa chọn các linh kiện cho dự án. Bước này nhóm phần cứng có thể cần sự tư vấn, phối hợp từ nhóm phần mềm. Để thực hiện tốt bước này cả hai nhóm cần có kĩ năng đọc datasheet, mình đã chia sẻ một vài ý tại tại đây và tại đây.
- Các bộ kit phát triển (development kit) cho những phần rủi ro của dự án, thông thường là vi điều khiển và những module ngoại vi mà mình chưa có kinh nghiệm làm việc trước đó sẽ được mua tại thời điểm này.
Bước 2: Thiết kế sơ đồ nguyên lý mạch, làm việc với Devkit
- Nhóm phần cứng thiết kế sơ đồ nguyên lý mạch (schematic). Tại bước này, nhóm phần cứng có thể tống vài tuần hoặc thậm chí vài tháng để tạo ra bản vẽ sơ đồ nguyên lý, nhưng phần lớn thời gian là dùng để đọc qua các tài liệu datasheet để tìm được linh kiện phù hợp cho sản phẩm, với các yêu cầu như mức giá phù hợp, kích thước vật lý chính xác, phạm vi nhiệt độ hoạt động phù hợp…vv.
- Nhóm phần mềm thiết lập môi trường làm việc (IDE hoặc Compiler và Debugger và các tool hỗ trợ), làm việc với kit phát triển để thử nghiệm với phần rủi ro.
- Nhóm phần mềm và nhóm phần cứng cùng kiểm tra lại sơ đồ nguyên lý (thường được xuất ra dưới dạng file PDF). Để bước này được thực hiện tốt thì nhóm phần mềm cần có kĩ năng đọc sơ đồ nguyên lý. Nội dung này mình sẽ thực hiện một bài viết và chia sẻ đến các bạn sau.
Sau khi hoàn thành sơ đồ nguyên lý và các bộ phận rủi ro cũng được xác nhận là khả thi nhờ vào các dev kit thì chúng ta chuyển sang bước 2.
Bước 3: Layout mạch, thi công phần cứng và chuẩn bị kiểm tra
- Nhóm phần cứng sẽ gửi bảng layout của mình để tạo thành các bảng mạch in và sau đó các linh kiện sẽ được gắn với với board mạch sử dụng công nghệ SMT để tạo thành các kit phần cứng cho dự án. Bước này này cũng có thể được thực hiện thủ công qua các công đoạn như ủi mạch in, rửa mạch, hàn linh kiện thủ công, Để có thể làm thủ công, nhóm phần cứng cần có thêm kĩ năng hàn linh kiện này và phải tỉ mỉ, kiên nhẫn, nhất là đối với các linh kiện dán có kích thước nhỏ được bố trí sát nhau.
- Nhóm phần mềm tạo ra các project để chuẩn bị kiểm tra hoạt động của phần cứng, kiểm tra giao tiếp, điều khiển các khối ngoại vi của dự án. Các bài kiểm tra phần cứng không chỉ giúp cho quá trình phát triển phần mềm trơn tru hơn và phát hiện sớm các vấn đề, các sai sót cần hiệu chỉnh. Tại bước này, team phần mềm có thể trao đổi với team phần cứng để xác định những bộ phận rủi ro và cần ưu tiên phát triển các bài kiểm tra trước.
Bước 4: Kiểm tra kit phần cứng dự án
- Sau khi các kit phần cứng dự án được hoàn thiện thì nhóm phần cứng cần bật nguồn và kiểm tra để đảm bảo không có các vấn đề về nguồn tại các khối của kit, các mức logic hay giá trị điện áp mặc định tại 1 số điểm là đúng với thiết kế. Sau đó kit sẽ được chuyển sang cho nhóm phần mềm.
- Nhóm phần mềm tiến hành kiểm tra phần cứng bằng các project đã được c huẩn bị sẵn tại bước 3. Các vấn đề được tìm thấy trong quá trình kiểm tra cần được thảo luận và làm rõ với nhóm phần cứng.
Bước 5: Phát triển phần mềm, hoàn thiện mẫu thử
- Nhóm phần mềm sẽ tiến hành code hoàn thiện cho dự án.
- Nhóm phần cứng hoàn thiện thiết kế mẫu thử
Trên là 5 bước thiết kế – thi công phần cứng và phần mềm để tạo thiết bị mẫu thử (prototype) hệ thống nhúng, IoT. Có thể thấy, tại mỗi bước, trong cùng một khoản thời gian thì cả nhóm phần cứng và nhóm phần mềm đều có công việc riêng để thực hiện. Và để có thể phối hợp tốt với nhau trong quá trình làm việc thì mình chia sẻ thêm một số kinh nghiệm sau:
- Đừng ngại đặt câu hỏi và yêu cầu thảo luận/ hỗ trợ lẫn nhau để làm rõ vấn đề.
- Đừng ngại nếu ai đó chỉ ra lỗi của mình trong quá trình phát triển sản phầm mà hãy cảm thấy biết ơn vì đó sẽ là những kinh nghiệm, bài học quý báu cho các bạn, quan trọng hơn là lỗi này sẽ không xuất hiện khi khách hàng sử dụng sản phẩm.
- Khi bạn gặp vấn đề hãy cố gắn khoanh vùng lỗi và bắt đầu kiểm tra từ những phần nhỏ nhất, làm từng bước nhỏ nhất có thể.
- Và cuối cùng, các bạn đừng quên bổ sung thêm cho mình các kiến thức và kĩ năng để phục vụ cho công việc như
- Đọc tài liệu Datasheet,
- Đọc sơ đồ nguyên lý Schematic,
- Đọc hướng dẫn sử dụng User Manual
- Đọc tập lệnh, code mẫu
- Kỹ năng debug
- Kỹ năng kiểm thử phần cứng, phần mềm.
- …
Chúc các bạn thành công!
Thuong Nguyen