Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

918

.pdf
Скачиваний:
2
Добавлен:
09.01.2024
Размер:
15.98 Mб
Скачать

Колесная платформа шасси для робота 4WD 4-х моторное (Рисунок 1) - это две формы из органического стекла (Рисунок 2). Сборка производится через болты и гайки, которые встают в определенные отверстия на форме и фиксируются.

Драйвер двигателя L9110s (Рисунок 3). Этот драйвер отвечает за работу электромоторов. Этот драйвер был расположен на нижней части шасси и спаян с моторами проводами поэлектронной схеме.

Повышающий преобразователь напряжения для зарядки аккумулятора (Рисунок 4), он имеет возможность выставлять определённое напряжении. На нижней части шасси расположено 2 таких преобразователя, один на драйвер, другой на питание Raspberry Pi. Для работы Raspberry Pi надо подавать 5 вольт.

Рисунок 2 – Форма из органического стекла

Рисунок 3 – Драйвер двигателя L9110s

Рисунок 4 – Повышающий преобразователь непрощения

361

Литионный аккумулятор формата 18650 (Рисунок 5) с ёмкостью 2400 mAh и напряжением 3,7 вольта. Один такой аккумулятор снабжает и моторы, и систему питанием через повышающий преобразователь.

Камера на 1 мегапиксель (Рисунок 6). Этой камеры вполне достаточно для распознавания QR кодов. Камера работает через порт USB, это очень удобно для подключения ее и вывода информации через такой порт. Камера установлена на верхней части шасси.

Рисунок 5 - Литионный аккумулятор формата 18650

Рисунок 6 – Камера

Рисунок 7 - Электромоторы с редукторами

Рисунок 8 – Raspberry pi 3

362

Электромоторы с редукторами (Рисунок 7) в количестве 4 штук установлены между нижней и верхней формой. Каждый мотор в зависимости от направления напряжения может крутится в разные стороны, благодаря этому робот может разворачиваться на месте.

Raspberry Pi 3 (Рисунок 8) поколения предоставила компания «Полиметал», в данный момент такое устройство стоит больших денег, на али экспресс цена такой модели может стоит от 8 тысяч и выше. На него установлена система

Ubuntu (дистрибутив GNU/Linux, основанный на Debian GNU/Linux).

После сборки и пайки всех компонентов, происходит разработка программ для управления и сканирования QR кодов. Код написан на Python в приложении pycharm, которое создано для работы с Python.

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

Литература

1.Полиметалл [Электронный ресурс]. URL: https://www.polymetalinternational.com/ru/about/at-a-glance/ (дата обращения: 09.10.2022).

2.Обзор «Полиметалла»: крупный производитель драгоценных металлов [Электронный ресурс]. URL: https://journal.tinkoff.ru/news/review-poly/ (дата обращения: 10.10.2022).

УДК 330.332:631

М.К. Кузьмин – обучающийся 2 курса; А.М. Бочкарев – научный руководитель,

ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия

РАЗРАБОТКА ИНФОРМАЦИОННО-АНАЛИТИЧЕСКОЙ СИСТЕМЫ ДЛЯ ВЫБОРКИ И АНАЛИЗА СТАТИСТИЧЕСКИХ ДАННЫХ

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

Ключевые слова: парсинг, приложение, web-сервер, проблема, запрос, сбор, данные.

Постановка проблемы

Существует огромное количество статистической информации разрознено представленной на множестве интернет источников. Необходимо разработать автома-

363

тизированную систему сбора, выборки и аналитики информации на основе метода парсинга.

Материалы и методы

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

Сразу стоит отметить, что есть уже созданные программные продукты, позволяющие эффективно и быстро проводить парсинг различных сайтов. Достаточно популярным считается Content Downloader. У него множество достоинств: простое добавление страниц для парсинга, автоматический поиск контента, многопоточность, фильтрация текста, импорт в популярные CMS и т.д. Но есть один немаловажный и существенный минус – программа платная.

Также существует еще инструмент – ZennoPoster. Он умеет довольно многое для парсера: регистрировать аккаунты пользователей, подтверждать их почту и т.п. Но тоже, является платным продуктом.

Есть ли смысл платить деньги, если наша задача не является сверхсложной в реализации и к тому же достаточно специфическая? Из-за этого было принято решение разработать свой парсер.

Исходя из возможностей парсинга, было решено разработать приложение, используя в качестве языка программирования python 3.9, а также бесплатные библиоте-

ки: pandas, BeautifulSoup, tkinter.

Благодаря библиотеке Beautiful soup был реализован поиск по названию таблиц для сохранения и названия и создания листа в excel (Рисунок 1).

Спомощью функции find_all была сначала найдена шапка сайта, а потом её столбцы для сбора информации для создания заголовков листов в excel. Функция find_all – очень гибкая с помощью нее можно находить не только по определенным названиям, но и классам, тегам и даже определенным свойствам [2]. С помощью сохранения ссылки сайта в переменной url и ее изменения с помощью {Choice} был создан цикл, который идёт по всем страницам сайта и собирает информацию в зависимости от выбора пользователя.

Благодаря библиотеке pandas был реализован поиск таблиц и конвертация их в exel файл (Рисунок 1). C помощью функции pd.read.html() были собраны таблицы с текущей страницы в цикле. Функция pd.read_html() считывает HTMLфайл (или HTML-файл с URL-адреса) и записывает все найденные HTMLтаблицы в один или несколько объектов DataFrame. Функция всегда возвращает список объектов DataFrame (ноль или большее количество, в зависимости от количества таблиц, найденных в HTML файле) [1].

Спомощью pd.ExcelWriter данные полученные из сайта сохраняются в excel файле не создавая, а изменяя существующий благодаря параметру mode=’a’.

364

Цикл for предназначен для обработки любых итерируемых объектов или выполнения итерированных вычислений, ограниченных по времени выполнения [4]. С его помощью был создан цикл, который идёт от первого элемента до одной до всех таблиц выбранных пользователем.

Рисунок 1. Код использования библиотек bs4 и pandas

Благодаря библиотеке tkinter было реализованно визуальное представления приложения для пользователя (Рисунок 2). Tkinter предлагает стабильный, гибкий и вполне современный на вид интерфейс, а если воспользоваться пакетом tkinter.ttk, то можно получить виджеты, поддерживающие темы. Кроме того, некоторые оригинальные виджеты, например Canvas и Text, обладают поразительно богатыми возможностями [3].

С помощью tkinter было создано окно с определенными параметрами, также окно ввода и кнопка для старта функции Main, в которой содержатся все функции. Функции и методы класса в Python начинаются с оператора def. В отличие от функций в компилируемых языках, таких как С, def представляет собой исполняемый оператор. Это означает, что написанная в коде функция не существует до тех пор, пока интерпретатор Python не встретит и не выполнит ее. Когда интерпретатор Python достигает оператора def и выполняет его, генерируется новый объект, который присваивается имени функции. Как и со всеми присваиваниями, имя функции становится ссылкой на объект функции [5].

365

Рисунок 2. Код использования библиотеки tkinter

Результаты исследований

Было разработано приложение, которое используя метод парсинга, получает информацию с сайтов, после преобразует их в таблицы и сохраняя в .xlsx расширения файл.

Пользователь, открыв программу, может выбрать какую таблицу он хочет вывести, что видно на (Рисунок 3).

Рисунок 3. Вид интерфейса главной страницы программы

После ввода пользователем номера таблицы Программа оповещает его о процессе преобразования данных в виде всплывающих окон (Рисунки 4,5), а также окне информирующем пользователя о завершении (Рисунок 6).

Рисунок 4. Окно Получение данных таблицы Быстрорастущие

366

Рисунок 5. Окно Получение данных таблицы Быстрорастущие

Рисунок 6. Окно Получение данных таблицы Быстрорастущие

После чего пользователю становится доступен файл с названием res.xslx, в котором уже хранятся конвертируемые таблицы с данными интернет сайта (Рисунок 7).

Рисунок 7. Сконвертируемая таблица.

Выводы и предложения

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

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

367

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

Вдальнейшем в данной программе, возможно, усовершенствовать ряд ее возможностей. А именно:

1) Добавить ввод пользователем информации для поиска и автоматического экспортирования таблиц по данному запросу.

2) Использование пула веб-адресов для выбора пользователем.

3) Создание скрипта для выбора формул и их области для работы уже с готовыми экспортируемыми таблицами.

Также в процессе исследования выяснилось, что для pdf файлов существует проблема, которая не позволяет реализовать экспорт строк или столбцов таблиц с несколькими подряд идущими строками текста или разными разрядностями как степени из-за особенностей хранения информации в pdf.

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

Литература

1) Груздев, А. В. Изучаем Pandas / А. В. Груздев, М. Хейдт; перевод с английского А. В. Груздева. — 2-ое изд., испр. и доп. — Москва: ДМК Пресс, 2019. — 700 с. — ISBN 978-5-97060- 670-4. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/131693 (дата обращения: 17.11.2022). — Режим доступа: для авториз.

пользователей.

2)Митчелл, Р. Скрапинг веб-сайтов с помощью Python 2-e издание: руководство / Р.

Митчелл; — СПб: Питер, 2021. — 498 с. — ISBN 978-5-4461-1693-5

3)Лучано, Р. Python. К вершинам мастерства / Р. Лучано; перевод с английского А. А. Слинкин. — Москва: ДМК Пресс, 2016. — 768 с. — ISBN 978-5-97060-384-0. — Текст: электрон-

ный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/93273 (дата обращения: 17.11.2022). — Режим доступа: для авториз. пользователей.

4)Полупанов, Д. В. Программирование в Python 3: учебное пособие / Д. В. Полупанов, С. Р. Абдюшева, А. М. Ефимов. — Уфа: БашГУ, 2020. — 164 с. — ISBN 978-5-7477-5230-6. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/179915 (дата обращения: 17.11.2022). — Режим доступа: для авториз. пользователей.

Основы программирования на Python: учебное пособие для вузов / С. А. Чернышев. — Москва: Издательство Юрайт, 2022. — 286 с. — (Высшее образование). — ISBN 978-5-534-14350-

8.— Текст: электронный // Образовательная платформа Юрайт [сайт]. с. 2 — URL: https://urait.ru/bcode/496893/p.2 (дата обращения: 17.11.2022).

368

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ПРОГРАММНАЯ ИНЖЕНЕРИЯ

УДК 004.032.26

М. А. Аммосов – обучающийся, А. Ю. Беляков – научный руководитель, канд. техн наук, доцент,

ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия

ЭЛЕМЕНТЫ СОЦИАЛЬНОГО ВЗАИМОДЕЙСТВИЯ В РЕДАКТОРАХ КОДА

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

Ключевые слова: редактор кода, Visual Studio Code, Replit, CodeWars, соци-

альное взаимодействие, элементы социального взаимодействия.

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

Социальное взаимодействие – это совокупность взаимосвязанных и взаимообусловленных действий разных субъектов (то есть действий, между которыми присутствует взаимная причинно-следственная связь). Если говорить простыми словами, это такие действия, которые являются реакцией на поведение других людей и направлены на то, чтобы вызвать ответную реакцию с их стороны.

Существуют два основных типа социального взаимодействия:

сотрудничество;

соперничество.

Элементами социального взаимодействия при использовании электронновычислительных машин являются чаты, форумы, различного рода реакции на действия других пользователей, в том числе комментарии, видео-общение, просмотр экрана другого пользователя (захват экрана) и др.

Редактор кода — текстовый редактор для создания и редактирования исходного кода программ.

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

369

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

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

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

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

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

Пример работы такой функции можно увидеть в онлайн редакторе кода "Replit". Ниже на рисунках 1 и 2 изображена функция совместного написания кода

вонлайн редакторе "Replit".

Рисунок 1. Окно редактора кода "Replit"

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

Рисунок 2. Пользователи "Replit"

370

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]