i
  1. Week 1 : Project Management
  2. Week 1 : Project Management
  3. Week 2 : Computer-aided
  4. Week 3 : Computer Controlled Cutting
  5. Week 4 : Embedded Programming
  6. Week 5 :3D Scanning and Printing
  7. Week 6 : Electronic Design
  8. Week 7 : Computer Controlled Machining
  9. Week 8 : Electronics Production
  10. Week 9 : Input Devices
  11. Week 10 : Output Devices
  12. Week 11 : Networking and Communication
  13. Week 12 : Mechanical Design and Machine Design
  14. Week 13 : Midterm Review
  15. Week 14 : Molding and Casting
  16. Week 15 : Interface and Application Programming
  17. Week 16 : System Integeration
  18. Week 17 : Wildcard Week
  19. Week 18 : Applications and Implications, Project Development
  20. Week 19 : Invention, Intellectual property and Income

Week 4 : Embedded Programming

Objectives of the Week

  • Browse through the data sheet for your microcontroller write a program for a microcontroller, and simulate its operation,
  • To interact (with local input &/or output devices) and communicate (with remote wired or wireless connections)

  • Group Assignment Contribution

    For this week, I have refered the Xiao - Seeed Studio Esp32C3 data module and I have wondered that the how the things became much compatible in the Current Generation. The datasheet provides information about the features, specifications, pinouts, and technical details of the Xiao - Seeed Studio Esp32C3.

    For More about Group Assignment

    Xiao - Seeed Studio Esp32C3 datasheet


    Seeed Studio XIAO ESP32C3 – Key Datasheet Highlights

    Comparison: Arduino Uno vs Seeed Studio XIAO ESP32C3

    Feature Arduino Uno XIAO ESP32C3
    Processor ATmega328P (8-bit AVR @ 16 MHz) ESP32-C3 (32-bit RISC-V @ 160 MHz)
    Wi-Fi/Bluetooth None Wi-Fi + BLE 5.0
    Flash Memory 32 KB 4 MB
    SRAM 2 KB 400 KB
    I/O Pins 14 Digital, 6 Analog 11 Multipurpose I/Os
    ADC Resolution 10-bit 12-bit
    USB Type USB-B USB-C
    Power Consumption Higher Very Low (Supports sleep modes)
    Form Factor Large (68.6 x 53.4 mm) Ultra-compact (21 x 17.5 mm)
    Programming Language Arduino (C++) Arduino (C++), MicroPython
    Cost & Availability Widely available, low cost Compact, modern, affordable

    Arduino Uno R3 Technical Datasheet

    Arduino Uno Pinout Diagram

    Board Specifications

    Microcontroller ATmega328P
    Operating Voltage 5V
    Input Voltage 7-12V (recommended)
    Digital I/O Pins 14 (6 provide PWM output)
    Analog Input Pins 6
    Flash Memory 32 KB (0.5 KB used by bootloader)
    SRAM 2 KB
    EEPROM 1 KB
    Clock Speed 16 MHz
    Dimensions 68.6mm × 53.4mm


    Communication Interfaces

    The Arduino Uno R3 supports the following communication interfaces:

    Interface Pins Protocol
    Serial 0 (RX), 1 (TX) UART
    I2C A4 (SDA), A5 (SCL) TWI
    SPI 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Serial Peripheral Interface


    Power Specifications

    Power Sources

    • USB connection (5V)
    • DC power jack (7-12V)
    • Vin pin (7-12V)

    Current Ratings

    • 5V pin: 500mA max
    • 3.3V pin: 50mA max
    • I/O pins: 20mA per pin (40mA max total)

    Additional Resources

    Online Electronics Simulators

    Online electronics circuit simulators are web-based tools that allow users to design, simulate, and test electronic circuits virtually—without any physical components. These platforms are especially useful for beginners, educators, and hobbyists, as they offer a low-risk environment to learn and experiment.

    Key Features

    Different Online Simulators

    Simulator Name Features Ideal For Download Link
    Tinkercad Circuits Arduino simulation, breadboard view, code editor Beginners, students TinkerCAD
    Falstad Circuit Simulator Analog and digital simulation, waveform visualization Intermediate users Falstad Circuit Simulator
    EasyEDA PCB design + simulation, schematic editor PCB designers EasyEDA
    CircuitVerse Digital logic circuit simulator Digital electronics learners CircuitVerse
    Multisim Live SPICE simulation, schematic design Engineering-level projects Multisim Live


    Introduction to TinkerCAD

    TinkerCAD is a free, easy-to-use app for 3D design, electronics, and embedded coding. It's used by designers, hobbyists, teachers, and kids, for creating simple 3D models and circuits.

    TinkerCAD Example
    Websearch for TinkerCAD

    Interface of TinkerCAD

    TinkerCAD is not just only for designing circuits, we can also use it to design 3D models and many inbuilt examples are available in the website

    TinkerCAD Example
    TinkerCAD

    TinkerCAD Example
    Differnet usage of TinkerCAD

    Let's Create a new circuit for our Assignment

    Click on the Circuits button below

    Step 1:
    TinkerCAD Example

    Navigation bar in KiCAD

    1. Clipboards
    2. Rotation of components
    3. Delete
    4. Undo
    5. Redo
    TinkerCAD Example
    Navigations


    TinkerCAD Example
    Control Bars


    TinkerCAD Example
    Components Selection Area


    TinkerCAD Example
    Various Display availability in TinkerCAD


    Step 2:
    For this Week, we are gonna work on LCD Display so Choosing 16*2 LCD display
    TinkerCAD Example
    Various Display availability in TinkerCAD

    Arduino LCD 16x2 Display Guide

    This guide explains how to display "Welcome to Fab Academy" on a 16x2 LCD using an Arduino and the Adafruit_LiquidCrystal library.

    Embedded 1
    16x2 LCD Display with Arduino

    This image shows a 16x2 LCD Display connected to an Arduino, demonstrating basic display functionalities.

    Now let's dive into to development process

    1. Hardware Requirements

    2. Wiring Instructions

    LCD Pin Arduino Pin
    VCC 5V
    GND GND
    SDA A4 (Uno) / 20 (Mega)
    SCL A5 (Uno) / 21 (Mega)

    3. Arduino Code

                #include <Adafruit_LiquidCrystal.h>
                int seconds = 0; 
            Adafruit_LiquidCrystal lcd_1(0);
        
            void setup() {
                lcd_1.begin(16, 2);
                lcd_1.print("Welcome to Fab");
                lcd_1.setCursor(0, 1);
                lcd_1.print("Academy");
                delay(2000);
                lcd_1.clear();
                }
        
            void loop() {
                lcd_1.setCursor(0, 0);
                lcd_1.print("Time (sec): ");
                lcd_1.setCursor(11, 0);
                lcd_1.print(seconds);
            
                lcd_1.setBacklight(1);
                delay(500);
                lcd_1.setBacklight(0);
                delay(500);
            
                seconds++;
            }
            

    Arduino Code Explanation – LCD with Timer

    Libraries and Variables

    #include <Adafruit_LiquidCrystal.h>
    int seconds = 0;
    Adafruit_LiquidCrystal lcd_1(0);
      

    setup() Function

    void setup() {
      lcd_1.begin(16, 2);
      lcd_1.print("Welcome to Fab");
      lcd_1.setCursor(0, 1);
      lcd_1.print("Academy");
      delay(2000);
      lcd_1.clear();
    }
      

    loop() Function

    void loop() {
      lcd_1.setCursor(0, 0);
      lcd_1.print("Time (sec): ");
      lcd_1.setCursor(11, 0);
      lcd_1.print(seconds);
    
      lcd_1.setBacklight(1);
      delay(500);
      lcd_1.setBacklight(0);
      delay(500);
    
      seconds++;
    }
      

    What This Code Does

    This Arduino code displays a welcome message ("Welcome to Fab Academy") for 2 seconds, then starts counting time in seconds. The LCD backlight blinks every 0.5 seconds to create a visual effect while the time increases.

    Learning Summary

    Finally Leaving my files here

    Arduino Uno Datasheet

    Xiao ESP32C3 Datasheet

    Source Code