Bắt đầu học lập trình nhúng như thế nào?

Dạ em chào các anh, hiện tại em đang muốn theo Embedded System nhưng trên trường em không có cái ngành này, nó chỉ có bên tự động hóa của khoa điện mà em lại bên CNTT nên em lên đây nhờ vả các anh tư vấn cho em những bước đầu tiên( tài liệu căn bản, nơi học … ), mong được các anh giúp đỡ, em cảm ơn rất nhiều :smile:

5 Likes

Học cái này có phải thật sự giỏi mới sống đc ko nhỉ , mình thấy nhiều người bảo ngành này nó vậy , cũng định theo mà sợ ko theo đc , mà học nhúng cũng phải có nền điện tử vững nữa , mình thấy làm theo mạch đt nhiều

1 Like

Anh ơi anh còn ít thông tin nào không bày cho em với

1 Like

@Duong_Act Hỏi anh này nè bạn , Anh cho e hỏi là nhúng thì kiến thức điện tử có cần thực sự giỏi mới nên theo ko ạ , nhất là nhúng mà làm cả mạch điện đó ạ

1 Like

Bạn lên trang codientu.org sẽ rất hữu ích cho chuyên ngành này

Mình nghĩ là bạn nên bắt đầu từ những cái đơn giản nhất. Làm 1 cái gì đó hay ho có liên quan đến vi điều khiển và cảm biến. Lúc khởi đầu có thể bạn xây dựng dựa trên những bo mạch có sẵn như arduino chẳng hạn. Sau đó trình cao hơn có thể tự làm mạch, code trực tiếp trên vi điều khiển. Bạn có thể tham khảo các project trên trang này http://arduino.vn/.

1 Like

Thực sự giỏi thì cần rồi. Nhưng mà ở mức nào thôi. Bởi vì nhúng nó cũng rất rộng, có lĩnh vực cần hiểu biết về điện tử rất khủng nhưng có phần thì chỉ cần bình thường thôi. Ví dụ :

Lập trình vi điều khiển : Cần biết layout mạch điện tử, phân tích, xây dựng được mạch điện tử, phải đọc được datasheet của chip (dễ thôi), biết lập trình C. Arduino (AVR) là phần nhỏ trong bọn này. Ngoài ra còn có PIC, 8051, MSP,ARM…
Lập trình FPGA,CPLD…: Phần này là kết nối các khối logic thành một con chip nên cần hiểu biết rất sâu về logic, kỹ thuật số, chức năng các khối logic, phép toán và phép biến đổi logic. Đây có lẽ là phần khó nuốt nhất trong lập trình nhúng. Phần này có mấy con chip FPGA như Cylone II, Cylone III…
Lập trình máy tính nhúng : Mình không biết gọi là gì nên gọi vậy. Đây là phần cần hiểu biết về điện tử ít nhất. Bởi vì phần cứng thường có sẵn rồi. Sẽ đổ một cái OS nho nhỏ lên và nó che đi gần hết phần điện tử rồi. Phần mình là viết ứng dung từ các APIs do OS cung cấp. Điển hình cái này là mấy cái router, wifi, modem, Rasberry Pi…

14 Likes

Câu trả lời rất hay ạ. không biết anh học ngàh nào :grinning:

1 Like

FPGA là thiết kế vi mạch mà, liên quan gì nhúng

Chà nhiều thông tin quá, em cảm ơn các anh đã giúp đỡ rất nhiều cho em, qua đây em cũng xin các anh cho em ít thông tin để bước vào nó, nếu có tài liệu hoặc tựa sách nào đó nói về tổng quan thì hay qua ạ

1 Like

Bạn tìm hiểu thêm đi. Nó là nhúng.
Thiết kế vi mạch là thiết kế cấu tạo một con IC để từ bản thiết kế này chế tạo ra những con IC thực tế (chế tạo từ cát và các chat bán dẫn khác).
FPGA là một con chip tích hợp nhiều cổng có thể lập trình. Nó có thể dung để mô phỏng một thiết kế của một IC trước khi sản xuất thử. Nhưng đa phần nó dùng luôn FPGA để tạo ra một con chip riêng nếu số lượng yêu cầu ít không có mục đích sản xuất đại trà để thương mại.

3 Likes

Dạ dạ em cảm ơn anh nhiều, để em tìm hiểu thêm

Đầu tiên bạn sẽ học ngôn ngữ C.
Học các từ khóa (int, unsigned, define, include, void…).
Học các cấu trúc (if-else, while, for,…);
Sau khi đã thuộc thuộc thì có thể chọn 1 con chip và làm thử (PIC hoặc AVR, STM32F10x- đề nghị PIC16F887 hoặc ATMEGA32 vì nó dễ). Bài đầu tiên sẽ là LED_BLINK (làm cho 1 cái đèn led nhấp nháy). Cũng đơn giản thôi nên không cần căng thẳng quá :smiley:

9 Likes

Dạ :smile: em cảm ơn anh nhiều

1 Like

Bạn có thể tự học. Có nhiều khoá chất lượng dạy online từ các trường đại học hàng đầu thế giới trên 3 nguồn, đó là edX, Coursera và Udacity.

Có một khoá gần như là bắt buộc là

  1. Embedded Systems của University of Texas trên edX. Tiếp theo mình sẽ liệt kê vài khoá rất đáng để tự học (và mình cũng đang theo).

  2. Real-time Bluetooth Networks trên edX

  3. Intro to Operating System trên Udacity

  4. Control of Mobile Robot trên Coursera

Ngoài ra bạn cần vào trang tuyển dụng của Itviec và vietnamworks với từ khoá là: embedded để biết thêm về các yêu cầu của họ để tự học từ các nguồn tài liệu tiếng Anh.

4 Likes

Bước đầu vui vui có thể làm cái này chơi. Hồi trước mình làm với chip PIC16F877A của microchip (mua 80K 1 con).

5 Likes

Thì biết là vậy. Tôi đồng ý FPGA là một con chịp nhúng, nhưng người ta không lập trình cho nó mà là dùng nó để mô phỏng một con chip được mô tả bằng ngôn ngữ verilog, vhdl. Nhưng chủ thớt đang hỏi Embeded system programming, là lập trình vi điều khiển, máy tính nhúng thôi. Còn FPGA là IC design rồi. Thiết kế vi mạch không gọi là lập trình, và VHDL, verilog không phải là ngôn ngữ lập trình, mà là “ngôn ngữ mô tả phần cứng” (Hardware description language không phải programming language). IC design là thiết kế chip (bằng ngôn ngữ mô tả), Embedded là lập trình cho chip (bằng c, c++)

4 Likes

Chà có vẻ hấp dẫn, để em kiếm trên google thế nào, em cảm ơn anh nhiều

Làm led ma trận này, khi lập trình hiệu ứng phải lập trình cho từng con lead hả bác :slight_smile:

Không !
Người ta tạo ra 1 ma trận dữ liệu m x n trên. Rồi sau đó dung thuật toán xử lý ma trận dữ liệu này (dịch trái, phải, xoay…).
Rồi sau đó đẩy ma trận dữ lieu này ra các IC ghi dịch 74HC595 qua giao thức SPI để hiển thị ra led.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?