Releases: platisd/smartcar_shield
Version 3.0.4
- Removed NewPing class that could potentially cause conflicts with the L293D chip enable pin, on D9
- Changed the angular velocity type from int to float for greater accuracy during measurements.
- Measurements during calibration are now 10 ms apart, instead of 50 ms.
Version 3.0.3
- Corrected pin numbers for manual PID control example, for DIT524 course convenience.
Version 3.0.2
- Example that allows the car to be steered more accurately though serial added
- Pulses per meter updated for DIT524 course's convenience
Version 3.0.1
Bug-fix for the Gyroscope::calibrate function, now allows for negative (signed integer) offset values.
Version 3.0.0
A major upgrade in the library, now allowing it to support different types of motors for steering and throttle!
Backward incompatible API Changes:
- Now the user needs to include the Servo library in the beginning of every sketch (`#include <Servo.h>)
Car::INVERTED
was changed toINVERTED
New API components:
- Car(SteeringMotor *steering, unsigned short shieldOrientation)
- Car(SteeringMotor *steering, ThrottleMotor *throttle)
- boolean cruiseControlEnabled()
Finally, there were various overall improvements, such as in Car::stop() or the interrupts related to the Odometers, are now more lightweight and not as computationally intensive.
Version 2.0.1
Bug fix: Keyword setMotorSpeed keyword now appears properly
Version 2.0.0
Version 2.0.0 introduces a new way of setting speed in non cruise control mode.
Now the range is between 0 and 100 (as well as 0 to -100), hiding implementation details from the user and decreasing the coupling between the software library and the hardware components (h-bridge and motors). The user now is not getting in touch with hardware related vocabulary, such as "PWM".
Version 2.0.0 is backwards incompatible with the previous ones, in the essence that now the speed in non-cruise control mode is set using a standard scale, from -100 to 100, so speeds set in the previous manner will produce a different behavior than they used to.
Version 1.1.2
Minor code enhancements and new example added.
Version 1.1.1
Small bug fix on how angle is set, during cruise control mode. Now it is much less jiterrish.
Release 1.1.0
Release 1.1.0 includes a getSpeed() method for the Odometer class, which is used in order to improve the PID controller, as its output is more stable than the way we used to calculate the speed before.
Particularly, many encoders are not able to give consistent readings (amount of pulses) for predetermined small amounts of time (the dt). However, it is proved that if instead of the dt we have predefined the dx, to 1 pulses (which we know how much it is), then we can calculate speed in a more reliable way. The only tradeoff is, that the ISR's are now more computationally intensive, since they need to do a division with floats.