[KINECT CONTROLS] Pulse Width Modulation - Điều khiển “sóng” để tạo nên sự khác biệt --- ###### 📋 Content: [TOC] --- ## Điện và sóng Chắc hẳn chúng ta đã không còn quá xa lạ với khái niệm và hình ảnh của sóng vì chúng xuất hiện ở khắp mọi nơi xung quanh và những đồ vật thường ngày mà ta sử dụng. Nhưng có thể một vài người chưa biết: **tín hiệu điện** cũng là một dạng ***“sóng”***. ![](https://hackmd.io/_uploads/SJ68ibt3n.png) <sup>*(Nguồn: Nasa)*</sup> Khi những tín hiệu điện được thể hiện trên biểu đồ, chúng sẽ tạo thành những đường nhấp nhô giống những cơn sóng 🌊 Hai hình ảnh trên biểu diễn 2 loại tín hiệu điện chính nhất bên trong các hệ thống điện tử: - Tín hiệu ***Analog***(bên trái) - Tín hiệu ***Digital*** hay ***Sóng Vuông*** (bên phải). ## Ứng dụng của PWM trong Robot ### PWM là gì ? **PWM**, hay ***Pulse Width Modulation*** là một kỹ thuật điều khiển giúp chúng ta có thể chuyển tín hiệu Digital sang Analog. Quan sát tín hiệu Digital ta có thể thấy rằng chúng chỉ có 2 trạng thái duy nhất là ***On - Off*** hay ***1 - 0*** hay ***5V - 0V***,... còn các tín hiệu Analog là những đường cong mềm mại và ta có thể tùy chỉnh biên độ hay điện áp ở bất kì giá trị nào mà ta muốn. Vậy nên, bằng cách điều chỉnh thời gian mà tín hiệu Digital ở trạng thái ***5V - 1 - “On”*** so với thời gian mà tín hiệu ở trạng thái ***0V - 0 - “Off”***, ta có thể điều chỉnh được điện áp đầu ra của tín hiệu Analog. ![](https://hackmd.io/_uploads/HkNM4ft22.png) <sup>(Nguồn: Mathworks)</sup> Quan sát hình trên, ta thấy rằng ở những vị trí mà điện áp ***Analog (Average Output)*** có giá trị cao, tín hiệu ***PWM (PWM Output)*** sẽ có độ rộng lớn hay “dày”, và những nơi điện áp Analog thấp, tín hiệu PWM sẽ có bề rộng bé hơn hay “mỏng” hơn. ### Tại sao PWM lại quan trọng đối với robot và các hệ thống IoT? Các thiết bị điện và linh kiện điện tử hoạt động theo các tín analog mà chúng nhận được. Điện áp càng mạnh thì các linh kiện sẽ hoạt động nhanh hơn hoặc mạnh hơn hoặc công suất lớn hơn. Điện áp yếu đi thì các linh kiện sẽ hoạt động chậm hơn hoặc yếu hơn. Để dễ hiểu hơn, ta có thể xem qua một số ví dụ như sau: ● Điều khiển độ sáng của LED ![](https://hackmd.io/_uploads/B1g96-Fhn.png) <sup>(Nguồn: Hack Sterio Amazon)</sup> ● Điều khiển động cơ Servo ![](https://hackmd.io/_uploads/ryz4lGYh2.png) <sup>(Nguồn: internet)</sup> ● Điều khiển bánh xe omni-direction ![](https://hackmd.io/_uploads/H1Y4xMF3h.png) <sup>(Nguồn: Internet)</sup> Do vậy, việc điều khiển các tín hiệu ***analog*** này sẽ có tác động to lớn đến độ chính xác và độ hiệu quả khi hệ thống IoT hoặc Robot làm việc. Tuy nhiên không phải lúc nào chúng ta cũng có những linh kiện và phương thức kết nối có khả năng cho ra tín hiệu ***Analog***, đó là lúc phương án ***PWM*** phát huy tác dụng. ### Kinect Controls sử dụng PWM như thế nào? Đối với các “tín đồ” yêu thích điện tử và công nghệ, các bạn hẳn đã hiểu nguyên lí hoạt động của một chiếc motor nhưng ở đây chúng mình sẽ không đào quá sâu vào vấn đề ấy. Nguyên lý chính để một chiếc motor hoạt động đó là liên tục bật / tắt dòng điện đi qua các dây dẫn. Dựa trên những kiến thức cơ bản ở trên, ***BotBrainiacs*** đã ứng dụng ***PWM*** để liên tục điều chỉnh tốc độ quay của 4 cánh quạt nhằm giữ trạng thái cân bằng của chiếc drone và bay theo hướng mà người dùng mong muốn. ![](https://hackmd.io/_uploads/BJzuEGYn3.png) <sup>(Nguồn: research gate)</sup> Hình ảnh trên biểu diễn tốc độ quay của cánh quạt drone trong từng trường hợp di chuyển cụ thể. Tùy theo hướng mà chúng ta muốn drone di chuyển (các mũi tên ở trung tâm drone), ***PWM*** sẽ được sử dụng để điều chỉnh tốc độ quay cánh quạt thành tốc độ nhanh (màu đỏ) hoặc tốc độ chậm (màu xanh lá). ## Kết luận Như vậy, ***PWM*** không chỉ là một khía cạnh thú vị trong robot học mà còn là một công cụ mạnh mẽ giúp chúng ta tạo ra các dự án độc đáo và sáng tạo. Với khả năng điều chỉnh độ rộng xung và tần số, chúng ta có thể thực hiện các chuyển động chính xác theo mong muốn.