-
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:
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.
Powerful lighting LED instead of 4 green LEDs which actually don't provide enough light to make the camera see anything in the darkness.
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;