Необходимо модифицировать прошивку Grbl для Arduino Uno
€30-250 EUR
Paid on delivery
Техническое задание: Интеграция функций из пользовательской прошивки в 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. Подробные комментарии и описание изменений в коде.
Project ID: #39005430
About the project
13 freelancers are bidding on average €83 for this job
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 More
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 More
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 More
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” More
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 More
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 More
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 More