Необходимо модифицировать прошивку Grbl для Arduino Uno
€30-250 EUR
Pagado a la entrega
Техническое задание: Интеграция функций из пользовательской прошивки в Grbl
Описание проекта
Необходимо модифицировать исходный код Grbl для Arduino Uno, чтобы он выполнял функции из моей пользовательской прошивки, сохранив основные возможности Grbl для управления шаговыми двигателями.
Функциональные требования
1. Обработка пина A2:
- Чтение состояния кнопки, подключённой к пину A2.
- Если кнопка нажата (LOW), в COM-порт должна отправляться строка `"ON"`.
- Добавить защиту от дребезга (debounce), интервал — 20 мс.
2. Работа с модулем HX711 (пины A0 и A1):
- Чтение данных с HX711:
- При получении команды `"1"` через COM-порт, отправлять в порт измеренные данные веса с использованием функции `scale.get_units()` (до одного десятичного знака).
- Сброс весов (tare):
- При получении команды `"2"` через COM-порт, выполнять сброс весов (`[login to view URL]()`).
- Коэффициент калибровки:
- Использовать заданный коэффициент калибровки -412.
- Основные функции Grbl, связанные с управлением шаговыми двигателями, должны работать как в стандартной прошивке.
- Использование пинов A0, A1 и A2 в Grbl (по умолчанию) должно быть отключено, так как они используются для реализации новых функций.
Оборудование
1. Arduino Uno
2. HX711 с подключёнными весами.
3. Кнопка, подключённая к пину A2 .
Ожидаемый результат
1. Я загружаю модифицированную прошивку Grbl в Arduino Uno.
2. Grbl продолжает управлять шаговыми двигателями через стандартный интерфейс (команды G-code).
3. Дополнительные функции работают следующим образом:
- Нажатие кнопки (пин A2) отправляет `"ON"` в COM-порт.
- Команды через COM-порт `"1"` и `"2"` вызывают взаимодействие с модулем HX711 (измерение веса и сброс соответственно).
4. Код протестирован и стабильно работает.
Пример кода из текущей прошивки
Для реализации новых функций можно использовать следующую логику:
cpp
HX711 scale(DOUT, CLK); // DOUT=A0, CLK=A1
#define calibration_factor -412
void setup() {
pinMode(A2, INPUT_PULLUP);
[login to view URL](9600);
scale.set_scale(calibration_factor);
}
void loop() {
// Логика для обработки кнопки
if (digitalRead(A2) == LOW) {
[login to view URL]("ON");
}
// Логика для обработки команд через COM-порт
if ([login to view URL]()) {
char c = (char)[login to view URL]();
if (c == '1') {
[login to view URL](scale.get_units(), 1);
}
if (c == '2') {
[login to view URL]();
}
}
}
Важные требования
1. Код должен быть протестирован, чтобы исключить конфликты между стандартными функциями Grbl и новыми функциями.
2. Минимальное вмешательство в исходный код Grbl для упрощения дальнейших обновлений.
3. Подробные комментарии и описание изменений в коде.
Nº del proyecto: #39005430
Sobre el proyecto
13 freelancers están ofertando un promedio de €83 por este trabajo
Hi. I already did similar projects to this job successfully. Please let us talk about the details of the job, so that we can do this job as you expect.
As an experienced electrical engineer and an expert in PCB design, firmware development, and embedded systems, I am confident that my skills align perfectly with your project’s requirements. With over a decade of exper Más
I am Faisal Mahmood, I have more than 10 Years of experience in crafting tailored solutions for success, including; Business Plans, Pitch Decks, Feasibility Reports, Resumes, Cover Letters, and LinkedIn profiles. Over Más
I am a seasoned content writer with nearly a decade of expertise, I empower entrepreneurs, startups, and established businesses to articulate their unique value proposition. My portfolio showcases a proven track record Más
I am a specialized writer who has been providing professional writing services since 2017 and I have 800+ reviews with 4.8 ratings. In this industry, to produce 100% output the most important thing is the “CREATIVITY” Más
My name is Rabia Faisal, I am working in the writing industry since 2011. During this time, I have served countless clients with a full amount of satisfaction by providing them with TOP Quality Solutions. I have comman Más
My name is "Usama Safdar" and I am a Ph.D degree holder which means I am highly-capable to tackle this project "Content Editor " with 100 percent accuracy. I am a professional writer with over 6 years of experience Más
Hello! I am ready to undertake the project to modify the Grbl firmware for Arduino Uno as per your technical requirements. The task involves integrating specific functions from your custom firmware into Grbl while reta Más