CS12020 Identify and decode “start-recording” and “stop-recording and playback” barcode signs.

Assignment Overview

This assignment requires the use of the Arduino and Robot Shield provided by the department to develop a program enabling a robot to navigate an obstacle course. Key features include:

  • A 4 cm wide path.
  • Obstacles no larger than the robot’s storage box.
  • Barcode signs for “start recording” and “stop recording and playback,” with specified dimensions and stripe spacing (4 cm and 8 cm, respectively).

The assignment emphasizes Arduino C programming and robotics application design, with a focus on:

  • Creating data structures for sensor readings and motor commands.
  • Effective use of the setup() and loop() functions.
  • Following defensive programming principles.
  • Designing control algorithms (e.g., collision avoidance).
  • Testing programs.
  • Evaluating robot performance.
  • Providing accurate documentation.

Assignment Structure

The assignment consists of three major components:

  1. Functional Requirements (60% of marks)
  2. Testing (15% of marks)
  3. Report (25% of marks)

Functional Requirements (60%)

This section includes the following four tasks:

1. Working with Light Dependent Resistors (LDRs) – 15%

  • Measure and record values from three LDR sensors on black and white surfaces under different lighting conditions.
  • Steps:
    1. On a white surface:
      • Record 10 values with room lights on and calculate the mean.
      • Repeat in dim lighting conditions.
    2. On a black surface:
      • Repeat the above steps.
  • Present results as a graph showing the relationships between surface colors and lighting levels.

2. Line Following and Obstacle Detection – 30%

  • Tasks:
    • Follow a black line on a white background.
    • Detect obstacles, stop the robot, flash an orange LED, and resume movement when the obstacle is removed.
    • Identify and decode barcode signs for “start recording” and “stop recording and playback.”
    • During “start recording,” record movements for playback without the line after encountering the “stop recording” sign.

3. Robot States – 10%

  • Define robot states and indicate them with LEDs:
    • Orange LED flashes when an obstacle is detected.
    • Red LED remains on during recording.
    • Green LED flashes during playback and remains steady after playback completion.

4. EEPROM Usage – 5%

  • Store calibration values for sensors and actuators in EEPROM to enable portability across different robots.
  • Use the following memory map:
Byte(s) Use
0 Left servo stop value
1 Left servo offset for forward motion
2 Right servo stop value
3 Right servo offset for forward motion
4-5 Left LDR value on white
6-7 Left LDR value on black
8-9 Center LDR value on white
10-11 Center LDR value on black
12-13 Right LDR value on white
14-15 Right LDR value on black

Testing (15%)

  • Present a testing table in the report appendix summarizing the status of all hardware components.
  • Test each component (e.g., push buttons, LEDs, LDRs, IR transmitter/receiver, servos).
  • Debug using the Serial Monitor to print informative messages about test results.
  • Perform behavior tests, such as evaluating the line-following success rate over 15 trials.

Example: A button variable changes correctly, indicating a passed test (debounce functionality works as intended).

Report (25%)

  • Document all tasks, testing processes, and outcomes accurately, clearly, and concisely.
  • Include results, code snippets, and insights to evaluate the robot’s performance.

This structured approach ensures clarity and supports the efficient completion of the assignment tasks.

WhatsApp icon