Оглавление:
- Шаг 1. Создание 3D-модели
- Шаг 2: Печать 3D-модели и отделки
- Шаг 3: Компоненты
- Шаг 4: Кодирование (Arduino и обработка)
- Шаг 5: Схема
- Шаг 6: Тест прототипа
- Шаг 7: настоящий макет
- Шаг 8: НАСЛАЖДАЙТЕСЬ
Видео: Система информации о наличии мест в поезде - FGC: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Этот проект основан на реализации поезда в масштабе, который позволяет людям, находящимся на станции, знать, какие места свободны. Для выполнения прототипа используется программное обеспечение Arduino UNO вместе с обработкой графической части.
Эта концепция позволит произвести революцию в мире общественного транспорта, поскольку она максимально оптимизирует все сиденья в поезде, обеспечивая использование всех вагонов, а также возможность сбора данных и проведения точных исследований в дальнейшем. на.
Шаг 1. Создание 3D-модели
Прежде всего, мы провели комплексное исследование моделей поездов. На основании всей собранной информации был выбран поезд GTW (производства Stadler Rail), используемый на FGC (Ferrocarrils de la Generalitat de Catalunya).
Позже она была разработана с помощью программного обеспечения 3D PTC Creo, модель для последующей 3D-печати.
Шаг 2: Печать 3D-модели и отделки
После того, как поезд спроектирован, его передают на 3D-печать. После того, как изделие напечатано, его необходимо отполировать для получения гладкой поверхности.
Этот проект также можно выполнить с существующими моделями поездов.
После печати дается окончательная отделка.
Шаг 3: Компоненты
Для развития этого проекта необходимы следующие компоненты:
- FSR 0.04-4.5LBS (датчик давления).
- резисторы 1,1 кОм
Шаг 4: Кодирование (Arduino и обработка)
Пришло время написать код Arduino, который позволит датчикам отправлять сигнал в программное обеспечение обработки, которое будет передавать информацию в графическом виде.
В качестве датчиков у нас есть 4 датчика давления для Arduino, которые меняют свое сопротивление в зависимости от приложенной к ним силы. Таким образом, цель состоит в том, чтобы воспользоваться сигналом, посылаемым датчиками (когда пассажиры садятся), для изменения графических экранов в Обработке.
Затем мы создаем графическую часть, в которой мы учли графический дизайн Ferrocarrils de la Generalitat de Catalunya, чтобы наилучшим образом воспроизвести реальность.
В процессе обработки был написан код, который напрямую связан с программным обеспечением arduino, таким образом, каждый раз, когда кто-то садится на сиденье, он меняет цвет, позволяя пользователю на платформе поезда узнавать в режиме реального времени доступность мест в поезде..
Здесь вы можете увидеть кодировку
АРДУИНО:
int pot = A0; // Подключаем средний штифт пота к этому штырю pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // переменная для хранения значений горшка;
int lectura2; int lectura3; int lectura4;
void setup () {// инициализируем последовательную связь со скоростью 9600 бод Serial.begin (9600); }
void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // лектура аналогового значения if (lectura1> 10) {s = "1"; задержка (100); } еще {s = "0"; задержка (100); } Serial.println (s);
}
ОБРАБОТКА:
import processing.serial. *; // эта библиотека обрабатывает последовательный разговор String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Последовательный myPort; // Создаем объект из серийного класса
void setup () // запускается только один раз {fullScreen (); background (0); // устанавливаем черный цвет фона myPort = new Serial (this, "COM5", 9600); // задаем параметры объекту последовательного класса, помещаем com, к которому подключен ваш Arduino, и скорость передачи
s0000 = loadImage ("0000.jpg"); s0001 = loadImage ("0001.jpg"); s0010 = loadImage ("0010.jpg"); s0011 = loadImage ("0011.jpg"); s0100 = loadImage ("0100.jpg"); s0101 = loadImage ("0101.jpg"); s0110 = loadImage ("0110.jpg"); s0111 = loadImage ("0111.jpg"); s1000 = loadImage ("1000.jpg"); s1001 = loadImage ("1001.jpg"); s1010 = loadImage ("1010.jpg"); s1011 = loadImage ("1011.jpg"); s1100 = loadImage ("1100.jpg"); s1101 = loadImage ("1101.jpg"); s1110 = loadImage ("1110.jpg"); s1111 = loadImage ("1111.jpg");
s0000.resize (displayWidth, displayHeight); s0001.resize (displayWidth, displayHeight); s0010.resize (displayWidth, displayHeight); s0011.resize (displayWidth, displayHeight); s0100.resize (displayWidth, displayHeight); s0101.resize (displayWidth, displayHeight); s0110.resize (displayWidth, displayHeight); s0111.resize (displayWidth, displayHeight); s1000.resize (displayWidth, displayHeight); s1001.resize (displayWidth, displayHeight); s1010.resize (displayWidth, displayHeight); s1011.resize (displayWidth, displayHeight); s1100.resize (displayWidth, displayHeight); s1101.resize (displayWidth, displayHeight); s1110.resize (displayWidth, displayHeight); s1111.resize (displayWidth, displayHeight);
val = trim (val);} void draw () {if (val! = null) {
если (val.equals ("0001")) {изображение (s0001, 0, 0); } иначе, если (val.equals ("0010")) {изображение (s0010, 0, 0); } иначе, если (val.equals ("0011")) {изображение (s0011, 0, 0); } иначе, если (val.equals ("0100")) {изображение (s0100, 0, 0); } иначе, если (val.equals ("0101")) {изображение (s0101, 0, 0); } иначе, если (val.equals ("0110")) {изображение (s0110, 0, 0); } иначе, если (val.equals ("0111")) {изображение (s0111, 0, 0); } иначе, если (val.equals ("1000")) {изображение (s1000, 0, 0); } иначе, если (val.equals ("1001")) {изображение (s1001, 0, 0); } иначе, если (val.equals ("1010")) {изображение (s1010, 0, 0); } иначе, если (val.equals ("1011")) {изображение (s1011, 0, 0); } иначе, если (val.equals ("1100")) {изображение (s1100, 0, 0); } иначе, если (val.equals ("1101")) {изображение (s1101, 0, 0); } иначе, если (val.equals ("1110")) {изображение (s1110, 0, 0); } иначе, если (val.equals ("1111")) {изображение (s1111, 0, 0); } еще {изображение (s0000, 0, 0); }}}
void serialEvent (Serial myPort) // всякий раз, когда происходит последовательное событие, оно запускается {val = myPort.readStringUntil ('\ n'); // перед продолжением убедитесь, что наши данные не пусты if (val! = null) {// обрезайте пробелы и символы форматирования (например, возврат каретки) val = trim (val); println (val); }}
Шаг 5: Схема
После всего программирования пришло время подключить все датчики к плате Arduino UNO.
Датчики размещены на 4 посадочных местах (которые позже будут покрыты тканью) и приварены к кабелям, идущим непосредственно к материнской плате Arduino UNO. Сигнал, полученный на плате, отправляется на компьютер, подключенный через USB, который отправляет информацию в обработку в реальном времени, изменяя цвет сиденья.
Вы можете увидеть схему подключений.
Шаг 6: Тест прототипа
После загрузки кода на плату Arduino и включения обработки и программы Arduino датчики проверяются. На экране вы увидите изменения мест из-за смены изображений на дисплее, информирующих о том, что места заняты и нет.
Шаг 7: настоящий макет
Настоящее приложение попытается установить его на поездах и платформах сети FGC для обслуживания путешественников.
Шаг 8: НАСЛАЖДАЙТЕСЬ
Вы, наконец, создали поезд датчиков силы (прототип), который позволяет пользователю на платформе поезда знать, какое место доступно в режиме реального времени.
ДОБРО ПОЖАЛОВАТЬ В БУДУЩЕЕ!
Проект выполнен Марком Годайолем и Федерико Доменеком.
Рекомендуемые:
Система домашней автоматизации WiFi со сверхнизким энергопотреблением: 6 шагов (с изображениями)
Система домашней автоматизации WiFi со сверхнизким энергопотреблением: в этом проекте мы показываем, как за несколько шагов создать базовую локальную систему домашней автоматизации. Мы собираемся использовать Raspberry Pi, который будет выступать в качестве центрального WiFi-устройства. В то время как для конечных узлов мы собираемся использовать IOT Cricket, чтобы сделать аккумуляторную батарею
Автоматическая система полива растений с использованием Micro: bit: 8 шагов (с изображениями)
Автоматическая система полива растений с использованием Micro: bit: В этой инструкции я собираюсь показать вам, как построить автоматическую систему полива растений с помощью Micro: bit и некоторых других небольших электронных компонентов. Micro: bit использует датчик влажности контролировать уровень влажности в почве растений и
Отправка информации с помощью атома гелия: 3 шага
Отправка информации с помощью Helium Atom: Helium - это полная беспроводная платформа для Интернета вещей, предоставляющая интегрированное оборудование, программный интерфейс и встроенную инфраструктуру для простого, эффективного и безопасного подключения объектов к Интернету. Есть два аппаратных компонента
Система сортировки цветов: система на основе Arduino с двумя ремнями: 8 шагов
Система сортировки по цвету: система на основе Arduino с двумя ремнями: транспортировка и / или упаковка продуктов и предметов в промышленной сфере осуществляется с использованием линий, изготовленных с использованием конвейерных лент. Эти ремни помогают перемещать предмет из одной точки в другую с определенной скоростью. Некоторые задачи обработки или идентификации могут быть
Простой «Роботизированный комплект» для клубов, рабочих мест для учителей и т. Д .: 18 шагов
Простой «Роботизированный комплект» для клубов, учебных заведений и т. Д .: Идея заключалась в том, чтобы создать небольшой, но расширяемый комплект для наших членов «Общества робототехнических искусств среднего штата Теннесси». Мы планируем семинары по этому комплекту, особенно для соревнований, таких как отслеживание линий и быстрое путешествие. Мы включили Arduino