Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:vlad.radulescu2901:viorel_cosmin.cucu [2026/05/23 22:06]
viorel_cosmin.cucu
pm:prj2026:vlad.radulescu2901:viorel_cosmin.cucu [2026/05/23 22:37] (current)
viorel_cosmin.cucu
Line 129: Line 129:
   * **IDE:** PlatformIO (VS Code)   * **IDE:** PlatformIO (VS Code)
   * **Language:​** C++ (Arduino framework)   * **Language:​** C++ (Arduino framework)
-  * **Libraries Motivation:** I wrote almost all the code from scratch using direct register manipulation for Timers ​and PWMThis ensures maximum speed and non-blocking ​execution. The only external ​library ​used is ''​LiquidCrystal_I2C''​because writing a custom I2C software driver for the LCD would be redundant ​when a highly optimized standard library already exists.+  * **AI Assistance:** I used Claude Opus AI to assist with writing ​the code, structuring the non-blocking logic, ​and debugging hardware timer issues. 
 +  * **Libraries Motivation:​** 
 +    * ''<​Arduino.h>'':​ The core framework library. I used it for essential built-in functions like ''​millis()''​ (crucial for my non-blocking ​state machines), ''​pulseIn()''​ (to safely read ultrasonic sensors with a strict timeout), and basic GPIO control (''​pinMode'',​ ''​digitalWrite'',​ ''​analogRead''​). 
 +    * ''<​Wire.h>'': ​The standard I2C library. Used to abstract the low-level TWI (Two-Wire Interface) hardware registers of the ATmega328P, providing robust communication with I2C devices. 
 +    * ''​<LiquidCrystal_I2C.h>''​: An external library that relies on ''<​Wire.h>''​. It handles the complex data formatting required by the PCF8574 I2C expander attached to the 1602 LCD. I chose to use this library ​because writing a custom I2C LCD driver from scratch ​would be redundant ​and reinventing the wheel, allowing me to easily display custom animated characters. Everything else (like PWM and Timers) was implemented using direct register manipulation.
  
 ==== Justification of Laboratory Functionalities ==== ==== Justification of Laboratory Functionalities ====
pm/prj2026/vlad.radulescu2901/viorel_cosmin.cucu.txt · Last modified: 2026/05/23 22:37 by viorel_cosmin.cucu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0