Advanced Search
Search Results
108 total results found
Module 1 - Setup
For Digital Sistem Design (DSG) or Perancangan Sistem Digital (PSD) Practicum, students must have already installed between Vivado only or ModelSim + Quartus Prime
Module 1 - Introduction to Digital Circuit
Module 2 - Boolean Algebra & Basic Logic Gates
Module 3 - Karnaugh Map
Module 4 - Complex Logic Gates
Module 5 - Decoder & Encoder
Module 6 - Multiplexer & Demultiplexer
Module 7 - Arithmetic Circuit
Module 8 - Flip-Flop & Latch
Module 9 - Register & Counter
Module 2 - Dataflow Style
5.8 Advanced Project: A Multi-Sensor Data Logger
In this chapter, we will build a complete data logging application that utilizes all the core concepts we have learned: hardware interrupts for precise data acquisition, queues for safe data transfer, multiple tasks with different priorities for processing and...
PlatformIO Guide
About PlatformIO is a versatile, open-source ecosystem designed for embedded development, providing a unified platform for building, managing, and debugging firmware across a wide range of microcontroller architectures. Integrated with popular IDEs like VSCode...
4.1 Learning Objectives
After completing this module, students are expected to be able to: Understand the importance of synchronization in multi-tasking systems and the risks of race conditions. Recognize and implement basic synchronization mechanisms: Mutexes and Semaphores in Free...
4.2 Introduction: The Problem of Shared Resource Access
In multi-tasking systems, multiple tasks often need to access the same resource simultaneously, such as a global variable, a sensor interface, or a data structure. If this access is not managed properly, it can lead to data corruption, inconsistencies, or unex...
4.3 Synchronization Mechanisms in FreeRTOS
FreeRTOS provides several synchronization primitives, the most common of which are Mutexes and Semaphores. Both are built upon a basic data structure called a queue. Mutex (Mutual Exclusion) A mutex can be thought of as a "key" to a resource. A task that wan...
4.4 Common Problems in Synchronization
Deadlock A deadlock is a situation where two or more tasks are blocked forever, each waiting for a resource that is held by another task in the cycle. Example Deadlock Scenario: Task A successfully locks Mutex 1. Task B successfully locks Mutex 2. Task A no...
4.5 Prevention and Handling Strategies
Overcoming Deadlock Since detecting and recovering from a deadlock in an embedded system is very difficult, the best approach is prevention. This is done by breaking one of the four Coffman conditions. Break Circular Wait: Enforce a strict lock ordering for...
7.1 Introduction: The IoT Communication Stack
For an IoT device to be useful, it needs to communicate. This communication happens in layers, much like a conversation. You need to have connectivity, then you need a common language to request things (web communication), and sometimes a specialized shorthand...
7.2 Local Network Connectivity with Wi-Fi
Wi-Fi is a technology based on the IEEE 802.11 standards that enables wireless data exchange. The ESP32 supports common standards like 802.11b, 802.11g, and 802.11n, operating in the 2.4 GHz frequency band. ESP32 Wi-Fi Modes Station Mode (STA): The ESP32 acts...
7.3 Web Communication with HTTP/HTTPS
HTTP HTTP (Hypertext Transfer Protocol) is the foundation of data communication on the World Wide Web. It operates on a request-response model. Client (ESP32): The client make a request to the server for a resource, like a webpage or data. Server (A Web Serve...
7.4 Efficient IoT Messaging with MQTT
MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for constrained devices and unreliable networks, making it perfect for IoT. Instead of the request-response model, MQTT uses a publish/subscribe (pub/sub) model. MQTT Compo...
Introduction
Modul 10: Mesh Pembuat : YP Tujuan Pembelajaran Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu: Menjelaskan konsep, keunggulan, dan arsitektur dasar dari jaringan mesh IoT. Mengimplementasikan jaringan mesh sederhana menggunakan ESP32 dengan libr...
10.2 Example Code
Contoh Kode Root Node #include <Arduino.h> #include <painlessMesh.h> #include <WiFi.h> // --- Konfigurasi Jaringan --- #define MESH_PREFIX "jaringan_mesh_saya" // HARUS SAMA dengan semua node #define MESH_PASSWORD "password_mesh" // HARUS SAMA deng...
10.1 What is Mesh?
1. Dasar Teori 1.1 Apa itu Jaringan Mesh? Jaringan mesh adalah sebuah topologi di mana setiap perangkat (node) saling terhubung satu sama lain dan menciptakan banyak jalur untuk data. Berbeda dengan jaringan biasa yang bergantung pada satu titik pusat (sepert...
1.1 Learning Objectives
After completing this module, students are expected to be able to: Understand the difference between a General-Purpose Operating System (GPOS) and a Real-Time Operating System (RTOS) Understand the differences and benefits of Multi-Threading on a Microcontrol...
1.2 Introduction to RTOS
GPOS The types of OS we often use (Windows, Linux, Mac, Android, iOS) can be classified as GPOS, which, as the name suggests, are designed for general purposes and typically utilize a GUI or CLI as the human interaction interface. GPOS systems are designed to ...
1.3 Microcontroller Architecture
Besides the differences in the type of OS used, there are also differences in the microcontrollers used. In this IoT lab, the ESP-32 microcontroller is used, which differs from the Arduino Uno used in the Embedded Systems lab. Look at the table below for a com...
1.4 FreeRTOS
So what is FreeRTOS? [4] FreeRTOS is one of the most widely used RTOS implementations in the world of embedded systems and IoT. As its name implies, FreeRTOS is open-source and free to use. Based on the previous explanation of RTOS, FreeRTOS acts as a lightwei...
1.5 Additional References
What Is a Real-Time Operating System (RTOS)? – DigiKey Maker.io Real-Time Operating System (RTOS): Components, Types, Examples – Guru99 RTOS Fundamentals – FreeRTOS Official Documentation
1. Introduction: From Python to C
1.1 Key Differences Overview Aspect Python C Compilation Interpreted Compiled Type System Dynamic typing Static typing Memory Management Automatic Manual Syntax Style Indentation-based Brace-based Performance Slower execution Faster execution ...