Hiển thị các bài đăng có nhãn Điện Tử. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Điện Tử. Hiển thị tất cả bài đăng

Thứ Năm, 10 tháng 1, 2019

Kĩ sư lập trình nhúng,Cần gì và học gì???

Giới thiệu về lập trình nhúng

Hiện nay, tại Việt Nam, có khá ít các trường đại học đào tạo lập trình nhúng. Nhưng nguồn nhân lực cho ngành này rất nhiều và đang thiếu hụt. Hay nói cách khác lập trình nhúng đang là một trong những ngành hot nhất hiện nay. Bằng chứng là Học viện kĩ thuật mật mã – một trong những trường đại học lớn nhất nước đào tạo các chuyên gia bảo mật và an toàn thông tin, đã mở thêm ngành lập trình nhúng tuyển sinh học viên. Lập trình nhúng là một ngành rất rộng, dể dễ hiểu, chúng ta chia lập trình nhúng thành 2 hướng như sau:

1. Embedded software: 
Đi theo hướng này, các bạn chủ yếu làm việc về phần mềm, nghĩa là bạn sẽ code, còn code những gì thì bạn xem phần sau. Có rất nhiều trường đại học dạy về hướng này như: Khoa Học Tự Nhiên, Bách Khoa, FPT,… Và nó nằm trong các nhóm ngành công nghệ thông tin. Đi theo hướng này bạn có thể không biết về phần cứng (kiến thức điện tử) vẫn được. Nhưng lời khuyên là bạn nên biết một ít sẽ rất tốt.

2. Embedded hardware: 
Bạn sẽ được làm việc trên phần cứng, bạn sẽ là chuyên gia thiết kế PCB (printed circuit board ). Đây là một ngành trong nhóm ngành điện tử truyền thông.
Nếu bạn đã theo lập trình nhúng, bạn cần học gì?

Không giống như các ngành khác: Ví dụ như Android, Web Deverloper,… ban đầu bạn sẽ cảm thấy rất dễ, nhưng con đường phía sau bạn sẽ vô cùng gian nan nếu muốn trở thành chuyên gia (expert). Còn đối với lập trình nhúng, những thứ bạn phải học ban đầu là vô cùng gian nan, vô cùng khó khăn, vô cùng nhiều, khi bạn đạt được rồi, tương lai bạn sẽ dễ dàng hơn.

Những điều bạn cần học sẽ được liệt kê bên dưới:
1. Lập trình C: bạn cần học C đến mức chuyên gia, đây là ngôn ngữ quan trọng bật nhất trong lập trình nhúng.
2. Tiếng anh: ít nhất bạn phải đọc được tài liệu chuyên ngành kĩ thuật, nhất là datasheet.
3. Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý (software thì cần một chút mảng này), ADC, TIMER, INTERRUPT, vv.
4. Các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG,… (nâng cao: SATA, PCIE, USB, CAN, MOST).
5. Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
6. Cấu trúc dữ liệu và giải thuật: nghe cái tên thôi bạn đủ hiểu, là chuyên gia phần cứng, bạn cũng phải code, đã code thì phải có giải thuật!
7. Memory: NOR, NAND, SRAM, DRAM, vv.
7. Hệ điều hành thời gian thực (Real time OS).

Trên đây là những kiến thức chung bắt buộc một kĩ sự lập trình nhúng phải có. Chúng ta sẽ đi sâu hơn về các kiến thức phải có của Embedded software và Embedded hardware.

Embedded software
Ngoài những kiến thức trên, bạn cần phải có:
1. Lập trình ứng dụng (application): C++, Java.
2. Lập trình device driver (dùng ngôn ngữ C).
3. Lập trình Android, lập trình web (basic).
4. Scrip: Perl, Python, đặt biệt là Shell script trên linux.
5. Cấu trúc dữ liệu và giải thuật cực tốt.
6. Xây dựng môi trường (build environments): Makefile, Cmake.

Embedded hardware
1. Thiết kế PCB: Allegro hay Antium.
2. Design schematic: bạn cần có kiến thức điện tử thật tốt để làm việc này.
3. Test board: sau khi đã thiết kế xong, bạn cần phải biết test board.
4. Review, đánh giá và lựa chọn linh kiện cho dự án sao cho tối ưu.
5. Sử dụng các loại dụng cụ máy đo.
6. Kĩ năng hàn mạch, sửa mạch (nếu bạn là Freelancer).

Trên đây là những kiến thức đã được tổng hợp, chắc chắn sẽ còn những thiếu sót, bạn đọc hãy bổ sung.
Mặc dù chúng tôi phân ra những kiến thức của 2 hướng như trên, nhưng trong thực tế, khi bạn là Embedded hardware thì không có nghĩa bạn không biết gì về Embedded software hay ngược lại. Bạn cần phải kiển trì rèn luyện tích lụy kiến thức từng ngày, nhất là đang ở trên giảng đường đại học. Bạn không được có suy nghĩ về việc ra trường sẽ được đào tạo những thứ này. Không đâu, học sẽ cho bạn tự học tự tìm hiểu là chính, vì vậy không có lý do gì mà ngay từ bây giờ bạn không học.
Internet of thing (IoT) và bảo mật trên các thiết bị IoT



Đây là gì thì mời các bạn tìm hiểu trên google!
Hiện nay IoT là xu hướng phát triển cực mạnh và nhanh, bạn không thể lạc hậu được, vì vậy bạn phải trang bị cho mình những kiến thức sau:
1. Networking: đây là kiến thức bạn bắt buộc phải biết khi làm IoT như: IP, TCP/IP protocol, Wifi, Bluetooth, Cellurla, Zigbee, RF, vv.
2. Webserver: bạn cần phải biết cách thức hoạt động của Webserver và cách “ra lệnh” cho phần cứng là việc từ internet (CGI, Java, Javascript, vv), và bạn cần biết lập trình web và andoid ở mức cơ bản.
3. Cloud: Cloud rất quan trọng trong trong việc quản lý, điều khiển thiết bị từ xa.
Một số giao thức: HTTP, CoAP, Lighweight M2M, …
4. Bảo mật trên các thiết bị IoT: hiện tại các thiết bị IoT đang bị tấn công rất nhiều, vì vậy là một kĩ sư IoT, bạn phải có trách nhiệm làm cho thiết bị của bạn được bảo mật hơn. Phần này có thể do IT đảm nhận.


Embedded linux




Hiện nay, với sức mạnh của vi điều khiên thì chúng ta không thể đáp ứng được nhu cầu trong các hệ thống nhúng. Embedded linux là một giải pháp, đây có thể gọi là một máy tính nhúng, sức mạnh sẽ vượt trội hơn rất nhiều so với các vi điều khiển. Được sử dụng trong các hệ thống nhúng lớn hơn.

Quá trình học Embedded linux như sau:
1. Học về hệ điều hành linux: nói cách khác là cài thêm một hệ điều hành linux mà bạn thích rồi vọc.
2. Học command line và shell script trên linux.
3. Học về cách boot hệ thống, load firmware, cách debug sửa và vá lỗi.
4. Bạn cần phải biết cách build một hệ thống nhúng, cách tốt nhất là thực hành build hệ điều hành thường xuyên trên một board ví dụ như Raspberry Pi.
5. Viết device driver để giao tiếp với các ngoại vi.
6. Phát triển ứng dụng (application).


Sau khi đọc tới đây, bạn đã hình dung được những gì mình cần phải học và phải làm trong tương lai chưa?
Đây là toàn bộ kiến thức chúng tôi tổng hợp được. Bạn nào có kinh nghiệm trong ngành này thì hãy cho ý kiến bằng cách comment vào dưới hay liên lạc qua mail hoặc facebook.
Rất mong được sự quan tâm và chia sẽ từ các bạn.

Thứ Năm, 2 tháng 11, 2017

Kĩ thuật điều khiển động cơ điện-Mạch cầu H

Xin chào các bạn,điều khiển động cơ luôn là một đề tài hấp dẫn và được ứng dụng vô cùng rộng rãi trong đời sống đến nhà máy,thiết bị hiện đại: Vũ khí quốc phòng,vệ tinh...vv

Tuy nhiên nhiều bạn chỉ hiểu cách điều khiển động cơ mà không hiểu tường tận nguyên tắc hoạt động cũng như nguyên tắc bảo vệ nó (Đây là cái quan trọng nhất mà mỗi một kĩ sư phải nắm rõ)
Hôm nay mình xin trình bày chi tiết nhất về động cơ:

  • Thứ 1. Động cơ là gì? Cấu tạo ra sao? Các bạn tự tìm hiểu
  • Thứ 2. Tìm hiểu về "Hiện tượng cảm ứng điện từ"
  • Thứ 3. Nguyên tắc bảo vệ động cơ.
Hiện tượng cảm ứng điện từ:
Khái niệm: 
Dòng điện cảm ứng trong một mạch điện kín phải có chiều sao cho từ trường mà nó sinh ra chống lại sự biến thiên của từ thông qua mạch.Đó là quy tắc xác định chiều của dòng điện cảm ứng và được gọi là định luật Lenz.

Mạch trên là mạch cầu H dùng để điều khiển động cơ:
4 Transitor trên dùng để đóng ngắt theo cặp: Cho phép đảo chiều động cơ.
4 con diode trên có tác dụng gì:
- Ban đầu: Khi cho động cơ chạy,sẽ không có dòng đi qua 4 con diode kia.
- Khi tắt động cơ: Động cơ sẽ chuyển chức năng trở thành một máy phát. Áp ở máy phát lúc này lớn hơn nguồn cấp (12V) nên sẽ đi qua 2 con diode trên cùng trở về nguồn,tránh đi qua 2 con Transitor sẽ làm hỏng nó.Ta gọi là trả năng lượng về nguồn.
Các bạn có thể thay diode bằng Led sẽ thấy lúc tắt động cơ,2 bóng led sẽ lóe sáng.

Theo như sơ đồ trên, ta có A và B là 2 cực điều khiển được mắc nối tiếp với 2 điện trở hạn dòng, Tùy vào loại transistor bạn đang dùng mà trị số điện trở này khác nhau. Phải đảm bảo rằng dòng điện qua cực Base của các transistor không quá lớn để làm hỏng chúng. Trung bình thì dùng điện trở 1k Ohm.


A ở mức LOW và B ở mức HIGH:
Ở phía A, transistor Q1 mở, Q3 đóng. Ở phía B, transistor Q2 đóng, Q 4 mở. Dó đó, dòng điện trong mạch có thể chạy từ nguồn 12V đến Q1, qua động cơ đến Q4 để về GND. Lúc này, động cơ quay theo chiều thuận. Bạn để ý các cực (+) và (-) của động cơ là sẽ thấy.

A ở mức HIGH và B ở mức LOW:
Ở phía A, transistor Q1 đóng, Q3 mở. Ở phía B, transistor Q2 mở, Q 4 đóng. Dó đó, dòng điện trong mạch có thể chạy từ nguồn 12V đến Q2, qua động cơ đến Q3 để về GND. Lúc này, động cơ quay theo chiều ngược.

A và B cùng ở mức LOW:
Khi đó, transistor Q1 và Q2 mở nhưng Q3 và Q4 đóng. Dòng điện không có đường về được GND do đó không có dòng điện qua động cơ - động cơ không hoạt động.

A và B cùng ở mức HIGH:
Khi đó, transistor Q1 và Q2 đóng nhưng Q3 và Q4 mở. Dòng điện không thể chạy từ nguồn 12V ra do đó không có dòng điện qua động cơ - động cơ không hoạt động.

Như vậy, để dừng động cơ, điện áp ở 2 cực điều khiển phải bằng nhau.

Bảo vệ động cơ xoay chiều như thế nào:
Với động cơ DC thì hầu như không cần thiết,do điện áp thấp cũng như sự ảnh hưởng nhỏ đến hệ thống.Sau đây mình xin giới thiệu về động cơ AC:
Động cơ điện thường có các bảo vệ như quá tải-quá nhiệt, ngắn mạch, mất pha, bảo vệ "không".
Trong các sự cố ( về điện) nguy hiểm nhất là ngắn mạch nên các động cơ đều phải có bảo vệ ngắn mạch.thường sử dụng aptomat hoặc cầu chì (dùng trong mạch điều khiển) để bv ngắn mạch.
- BV quá tải-quá nhiệt bằng rơ le nhiệt
- BV mất pha có thể dùng rơ le bảo vệ mất pha hoặc dùng rơ le trung gian.
- BV " không" có thể dùng các nút ấn hoàn nguyên hoặc tiếp điểm của rơ le, contactor.
Ngoài bảo vệ ngắn mạch, các loại bảo vệ khác tùy trường hợp có thể có hoặc không.
ngoài ra, ở các động cơ điện dùng trong hệ thống làm hàng ( cẩu , tời,...) thường có phanh cơ khí để bảo vệ trong trường hợp mất điện đột ngột.

Chủ Nhật, 1 tháng 10, 2017

Các phím tắt hay dùng trong Altium


Image result for altium

I. Trong vẽ mạch nguyên lý (Schematic)
- Mở thư viện : D+B
- Xoay linh kiện : Space
-

- Đặt tên tự động (Với Altium >16) : T A U
- Check lỗi : C C
- Update sang PCB : D+U
II.Trong vẽ mạch PCB
- Thiết lập luật : D R
- Ấn số 2 để xem 2D
- Ấn số 3 để xem 3D
- Hiển thị toàn bộ mạch : V F
- Đi dây : P+T
- Đổi Layer: ấn L
- TAB : Thay đổi thông số đường mạch
- Đổi góc đi dây : Shift + Space
- Q: Đổi kích thước giữa mil và mm
- Lỗi linh kiện bị xanh : T+M
- Đặt via : đang đi dây ấn số 2.
- Đo kích thước : Ctrl + M
- Chọn Layer vẽ mạch : D K
- Chọn view configtion : O D
- Chỉ mở 1 Layer,các Layer khác sẽ ẩn : Shift + S
- Đi,kéo nhiều dây cùng lúc :U M
- Sắp xếp linh kiện thẳng hàng : AL,AT,AB,AR
- G : Chỉnh chế độ lưới.
- Bo tròn chân linh kiện : T D
- Thêm chữ,String : P S
- Đổ đồng : P G

Thứ Sáu, 29 tháng 9, 2017

Module Lora RF : E32 TTL 100

Lora RF E32 TTL 100:

Image result for lora e32 ttl 100

- Module thu phát RF E32-TTL-100 3000m 433Mh SX1278 sử dụng chip SX1278 của nhà sản xuất SEMTECH mang đến hai yếu tố quan trọng là tiết kiệm năng lượng và khoảng cách phát siêu xa
 (Ultimate long range wireless solution).
- Module thu phát RF E32-TTL-100 3000m 433Mh SX1278 được tích hợp phần chuyển đổi giao tiếp SPI của SX1278 sang UART giúp việc giao tiếp và sử dụng rất dễ dàng, chỉ cần kết nối với Software của hãng để cấu hình địa chỉ, tốc độ và công suất truyền là có thể sử dụng (cần mua thêm mạch chuyển USB-UART để kết nối máy tính).
Electrical Parameter:
- Model: E32-TTL-100 RF
- IC chính: SX1278 từ SEMTECH.

- Điện áp hoạt đông: 2.3 - 5.5 VDC (The voltage higher than 5.5V is forbidden)
- Điện áp giao tiếp: TTL
- Giao tiếp UART Data bits 8, Stop bits 1, Parity none, tốc độ từ 1200 - 115200.
- Tần số: 410 - 441Mhz ( Chủ yếu ở 433MHz)
- Công suất: 20dbm (100mW)
- Khoảng cách truyền tối đa trong điều kiện lý tưởng: 3000m
- Tốc độ truyền: 0.3 - 19.2 Kbps ( mặc định 2.4 Kbps)
- 512bytes bộ đệm.
- Hỗ trợ 65536 địa chỉ cấu hình. Have 32 chanel.
- Sensitivity : -138 dBm

-Operating Temperature:-40 to 85 oC

+ Sử dụng phần mềm : RF_Setting_V3.35 của Chengdu để cấu hình thông số.


Lưu ý: Lúc cấu hình cho Module thì phải để module ở Mode 3 nhé ( M0,M1 nối qua trở 10k và đấu vs VCC)

+ Module giao tiếp với MCU thông qua giao tiếp UART nên rất dễ lập trình.
Module thu phát RF E32-TTL-100 3000m 433Mh SX1278