-
Improving the grip of the manipulator with objects.
10/19/2020 at 21:46 • 0 commentsAdding coarse plates to a manipulator increases the friction between the manipulator and the object it is holding. Why didn't I think about it right away?
-
An invisible bug found and fixed in the RC software!
10/16/2020 at 12:43 • 0 commentsThe bug was in the button checking code and was causing the debounce filter to work every cycle of infinite loop.
bool button_pressed(button_t *btn) { bool pressed = FALSE; BitStatus current_status = !!GPIO_ReadInputPin(btn->gport, btn->gpin); if (btn->_last_status != current_status) { delay_ms(5); current_status = GPIO_ReadInputPin(btn->gport, btn->gpin); } ...
There is a typo here that gets compiled and causes an increase in the response time of the remote by 30 ms (6 buttons, 5 ms for debouncing). The GPIO_ReadInputPin() function returns not a bool value, but a bitmask, i.e. 0 if logic level on the pin is low and (1 << pin) if the logic level on the pin is high.
So the right code looks like that:
bool button_pressed(button_t *btn) { bool pressed = FALSE; BitStatus current_status = !!GPIO_ReadInputPin(btn->gport, btn->gpin); if (btn->_last_status != current_status) { delay_ms(5); // Forgot to normalize to 0..1 current_status = !!GPIO_ReadInputPin(btn->gport, btn->gpin); } ...
-
DUMRONv2 demonstration
10/09/2020 at 17:22 • 0 commentsPhotos
FPV photos:
Old view New view
FPV Videos: -
DUMRONv2.0 released
10/09/2020 at 15:25 • 0 commentsA huge update for robot and RC is just released. I was working on it since summer (but not only on it of course).
Hardware update:
An extension board added. The board provides an easy way to connect different modules to power lines with different voltage and data interface lines (SPI, I2C, 1-Wire) without soldering.
The extension board is just below and to the right of the middle of the photo.
FPV Camera has been moved to a place with a better view. So, the robot has become a little more compact.FPV Camera has been attached to the frame to which the manipulator is attached. Powerful lighting LED instead of 4 green LEDs which actually don't provide enough light to make the camera see anything in the darkness.
1W lighting LED. Small constructive improvements to the remote control case. No impressing photos.
Software update:of robot: https://github.com/Danya0x07/DUMRON/releases/tag/v2.0 (in Russian)
- Refactoring names and CodeStyle, how can we do without it!)
- Moving the code for interaction with NRF24L01 + and DS18B20 into separate, cross-platform super-duper libraries with documentation, examples and other benefits of humanity;
- The DS18B20 library implements checksum verification, so the heresy about temperature no longer comes to the RC.
- Added power-on self test;
- Added debug logs to UART and runtime errors indication;
- Detected and fixed a stack overflow in one of the tasks;
- Various local optimizations (eg. uint8_t -> uint_fast8_t);
- Battery charge measurement now works not "head-on", but through DMA;
- Optimized manipulator control, now, when it does not move, its software timer does not spin idle, but stopped;
- The communication protocol with the RC has been rethought and optimized, the encapsulation of data from the rear rangefinder has been improved.
- Added detection of mechanical failure of the rear rangefinder;
- Migration to CMSIS-RTOS APIv2;
- Added the ability to change the radio frequency channel by command from the RC.
of remote control: https://github.com/Danya0x07/DUMRON_RC/releases/tag/v2.0 (in Russian)
- Migration to the PlatformIO build system;
- Moving the Nokia display Interaction code into a standalone PCD8544 cross-platform library;
- Added energy saving measures (redundant microcontroller subsystems are disabled);
- Added scanning of the radio frequency range after power on and switching the RC and the robot to the new selected clear channel;
- GUI updated and improved;
- Refactoring and optimization of various kinds;