Оглавление:

2-кнопочная программа для решения квадратного уравнения: 5 шагов
2-кнопочная программа для решения квадратного уравнения: 5 шагов

Видео: 2-кнопочная программа для решения квадратного уравнения: 5 шагов

Видео: 2-кнопочная программа для решения квадратного уравнения: 5 шагов
Видео: Решение уравнений в несколько действий. Как объяснить ребенку решение уравнений? 2024, Июль
Anonim
Image
Image

Вступление

добро пожаловать на мой первый инструктаж!

Я начал этот проект, чтобы расширить свои знания в области программирования. Часто вы просто объединяете разные исходные коды, чтобы создать нужную вам программу. Моей целью было написать собственный программный код для взаимодействия с инструментом. Мне понравилось создавать простой инструмент для расчетов. Несколько месяцев назад я помог другу решить квадратное уравнение.

Bazinga! это вариант использования!

Я повторно использовал старую металлическую коробку. Я предпочел минималистичный вид и интерфейс инструментов. вот почему я просто хочу использовать 2 кнопки для ввода. Соревнование будет отображаться на простом ЖК-дисплее.

Запасы

список материалов:

коробка

2 кнопки Аркадный стиль

Arduino Nano или аналогичный

ЖК-дисплей 1602 с адаптером I2C

переключатель включения / выключения

провода

2 резистора 10 кОм

аккумулятор 9v блок

разъем для батареи 9в

макет

разное (деревяшка, металлический уголок, кабельные стяжки, винт, шайбы)

инструменты:

пила

паяльник

дрель

компьютер для программирования

Шаг 1: математический фон

Программное обеспечение
Программное обеспечение

Математический фон

Двухкнопочное квадратное уравнение показывает значения, в которых квадратичная функция пересекает ось X. Квадратичная функция никогда не может пересекать ось X, один или два раза.

Эти значения можно рассчитать разными способами. Для своего инструмента я использую PQ-формулу (не уверен, будет ли это выражение использоваться во всем мире).

Квадратное уравнение имеет вид:

ax² + bx + c = 0

Чтобы вычислить точки пересечения, разделите форму на x² + px + q = 0 с p = b / a; д = с / а

Формула PQ:

x1 = -p / 2 + sqrt ((p / 2) ²-q)

x2 = -p / 2 - sqrt ((p / 2) ²-q)

Результат x может принимать 0, 1 или 2 значения. Это зависит от значения квадратного корня.

Если значение> 0, то формула PQ имеет два решения.

Если значение = 0, то формула PQ имеет одно решение.

- значение <0, то формула PQ не имеет решения. Функция не пересекает ось X.

Шаг 2: Программное обеспечение

Программное обеспечение

Для программирования я использовал официальную Arduino IDE. Моей целью было создать свою собственную программу. В моем интерфейсе должно быть две кнопки. Одна кнопка для перехода между разными уровнями, вторая кнопка для изменения значений на разных уровнях.

Чтобы решить PQ-формулу, я создаю структуру выше:

Конечно, я не изобретаю велосипед. Для создания кода я использовал модуль:

- дебаунс

- отображать

Следующие пункты были самыми большими проблемами:

- Как выбрать знак? Я решил эту задачу с помощью функции по модулю (ссылка). Код делит ввод на 2. Если ввод является нечетным числом, значение становится отрицательным, в противном случае число положительное.

- После прохождения всех уровней я должен объявить все значения равными 0.

- Отображаемый текст просто стирает отправленные символы. Если коды отправляют слово из 4 символов, перезагружаются только эти 4 символа. Если в предыдущем слове было больше символов, символы останутся. Чтобы исправить это, отображаемый текст будет заполнен пробелами. Все 16 символов подряд будут перезагружены.

Окончательный код прилагается.

Шаг 3: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Аппаратное обеспечение

Детали перечислены выше. Для этого проекта оборудование простое. Мне просто нужен микропроцессор Arduino, 2 кнопки и дисплей. Хорошо, если вы хотите положить в коробку, вам также понадобится коробка и блок питания.

Я повторно использую старую металлическую коробку. Я просверлил отверстие в кнопке для подключения выключателя питания. В крышке коробки 3 дырочки. Я просверлил два отверстия для больших кнопок и вырезал окошко для дисплея. Я прикрепляю небольшой кусок дерева за крышкой, чтобы было больше вещей для крепления дисплея и кнопок. Для улучшения внешнего вида на коробку добавлены наклейки.

В качестве источника питания я рекомендую аккумуляторные батареи на 9 В. Я подключаю аккумулятор через выключатель питания к Arduino. Батарея крепится к коробке с помощью небольшого металлического уголка. Разъем для аккумулятора просто фиксируется стяжками.

Микропроцессор является клоном Arduino nano. Для этого варианта использования производительности достаточно. Attiny 85, например, микропроцессор Digispark, был отклонен. Arduino находится рядом с дисплеем.

Дисплей представляет собой ЖК-дисплей 1602. вы можете использовать 16 символов в двух строках. Вы можете найти этот дисплей во многих различных машинах и инструментах. Есть два разных способа использования этого дисплея. Вы можете подключить дисплей напрямую к контроллеру или использовать надстройку для связи с дисплеем через I2C. I2C - стандартный протокол. Я использовал его, потому что так проще подключить дисплей к контроллеру. Вам просто нужно 4 кабеля вместо 16, VCC на 5 В, GND на GND, SDA на A4, SCL на A5. Дисплей крепится винтами к крышке корпуса.

Кнопки огромные! у них типичный стиль аркадных игр. Мне это нравится! Кнопки подключаются к цифровым контактам 4 и 7. Не забудьте резисторы 10 кОм!

Чтобы открыть крышку, например, чтобы заменить аккумулятор, я использовал более длинные кабели, подключенные к макетной плате.

Шаг 4: Подключение

Проводка
Проводка

Шаг 5: Будущее улучшение

Будущее улучшение

После завершения проекта вы всегда найдете ошибки или функции, которые нужно улучшить. В этом проекте я рад просто найти несколько моментов, которые я буду улучшать в будущем.

В следующий раз я бы улучшил эксплуатацию в коробке. Я исправил дисплей, выключатель питания и кнопки в начале этого проекта. В конце концов, у меня возникли проблемы с поиском места для батареи и микропроцессора в коробке. Когда я вынесу кнопку и дисплей наружу, у меня не возникнет проблем с пространством для деталей внутри коробки.

На данный момент у меня нет варианта использования для решения квадратного уравнения. Чтобы улучшить инструмент, я хотел бы расширить его дополнительными математическими элементами, например, базовыми вычислениями или формулами, такими как биноминальная формула или предложение Пифагора.

Рекомендуемые: