Оглавление:
- Шаг 1: Материя
- Шаг 2: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
- Шаг 3. Интеграция: Unity + Vuforia
- Шаг 4. Unity: настройте O Android SDK
- Шаг 5: Criando Servidor Local E Recebendo Informações Em Python
- Шаг 6: финальный результат
Видео: Умный урок: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
O projeto Smart Lesson Visa criar um produto no qual os профессоров Possam utilizar como um concéúdo a mais para ensinar seus alunos os levando a um nível de aprendizado muito superior por Consuguir mostrar os concúdos de forma dinâmica e Interativa, proporcionando amp; де аула обыкновенная.
Шаг 1: Материя
Для программирования Dragonboard 410c:
- Dragonboard 410c;
- Кабо HDMI;
- Teclado через USB - Мышь через USB - Монитор;
- антресоль 96борд;
Для выполнения или проекта:
- Dragonboard 410c;
- антресоль 96борд;
- Sensor Grove IMU 10DOF MPU - 9250 (без ограничений по датчику);
- Fonte de alimentação externa 11,1 В;
- Джемпер fêmea-fêmea;
Шаг 2: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
O Shield Mezzanine разработан на платформе Dragonboard 410c, предназначен для обеспечения напряжения 3.3V / 5V (переключатель уровня), расположен на уровне 1.8V. Датчик с использованием магнитометра Датчик MPU - 9250 Grove -IMU 10DOF, в частности:
Tensão de Entrada: 5 В / 3,3 В;
Функциональное поле Corrente: 6 мА;
Comunicação Serial;
Pinos: VCC, GND, SDA и SCL;
Интерфейс I2C;
Для этого примера используется устройство Grove I2C0 (5V), которое обеспечивает последовательное соединение с последовательным интерфейсом и необходимое питание для датчика. (вер. изображение)
Шаг 3. Интеграция: Unity + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- Вкладка Target Manager и добавление текста для отслеживания (quanto mais complexa melhor).
3- Feito является базой данных для единства и импорта.
4- Unity не настраивает целевое изображение с расширенным текстом и удалением из 3D-моделей, которые используются, а также для создания изображения для локализованного приложения.
5- Adicione a chave de licença da vuforia nas configurações dentro do Unity.
6- Após isso model os components da aula em algum programa 3D e подготовить в качестве целевого объекта изображения (pode ser uma aula de Biologia ou Física…).
Шаг 4. Unity: настройте O Android SDK
1- Пакет или SDK для Android, настройки Unity и выбор или управление.
2- Создайте платформу сборки для Unity для Android, усвоив соответствующий файл APK.
3- Установите apk на устройстве (без разрешения на использование файлов конфигурации).
Шаг 5: Criando Servidor Local E Recebendo Informações Em Python
Заключение в виде конфигураций представленных, доступных для доступа к Sistema Linaro, основанных на размещении и использовании различных лингвагенов, включая C ++, Java, Python и т. Д., Для использования в программном обеспечении, которое является исполняемым. Это программное обеспечение является ответом на все данные сенсорного экрана, обрабатывает и обрабатывает данные, необходимые для подтверждения правильной программы. Depois carrega esses dados para o servidor alocado na própria placa para enviar os dados já tratados para a plataforma Unity. Os exemplos de código deste projeto estão em linguagem Phyton. Передача данных от Dragonboard 410c для Unity и são apresentados em um app.
Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (локальный сервидор), Executável no Shell:
Código mag_python.py
#! / usr / bin / python
# Автор: Джон Трулсон
# Copyright (c) Корпорация Intel, 2015 г.
#
# Разрешение предоставляется бесплатно любому лицу, получившему
# копию этого программного обеспечения и связанных файлов документации (# «Программное обеспечение») для работы с Программным обеспечением без ограничений, включая
# без ограничения права на использование, копирование, изменение, объединение, публикацию, # распространять, сублицензировать и / или продавать копии Программного обеспечения, а также
# разрешить лицам, которым предоставляется Программное обеспечение, делать это, при условии
# следующие условия:
#
# Приведенное выше уведомление об авторских правах и это уведомление о разрешении должны быть
# включены во все копии или существенные части Программного обеспечения.
#
# ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, # ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ
# ТОВАРНАЯ ПРИГОДНОСТЬ, ПРИГОДНОСТЬ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И
# НЕПРАВИЛЬНОСТЬ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ ДОЛЖНЫ БЫТЬ
# ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТЬ В ДЕЙСТВИИ
КОЛИЧЕСТВО ДОГОВОРА, ДЕЛЕНИЯ ИЛИ ИНОГО СЛУЧАЯ, ВЫЯВЛЯЮЩЕГОСЯ ИЗ, ИЗ ИЛИ В СВЯЗИ
# С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ.
из _future_ import print_function
время импорта, sys, signal, atexit, urllib, urllib2, math
из upm импортировать pyupm_mpu9150 как sensorObj
def main ():
# data = {}
# data ['magnetrometro'] = raw_input ("Информация о температуре")
# data = urlib.urlencode (данные)
# post_request = urlib2. Request (post_url, данные, заголовки)
# пытаться:
# post_response = urlib2.urlopen (post_request)
# печать post_response.read ()
# кроме URLError как e:
# print "Ошибка:", например, причина
# Создать MPU9250 на шине I2C 0
датчик = sensorObj. MPU9250 ()
## Обработчики выхода ##
# Эта функция останавливает python от печати трассировки стека, когда вы нажимаете Ctrl-C
def SIGINTHandler (signum, frame):
поднять SystemExit
# Эта функция позволяет запускать код при выходе
def exitHandler ():
print ("Выход")
sys.exit (0)
# Регистрируем обработчики выхода
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
в то время как (1):
sensor.update ()
sensor.getAccelerometer (x, y, z)
# print ("Акселерометр:")
# print ("AX:%.4f"% sensorObj.floatp_value (x), end = '')
# print ("AY:%.4f"% sensorObj.floatp_value (y), end = '')
# print ("AZ:%.4f"% sensorObj.floatp_value (z))
modulo1 = (sensorObj.floatp_value (x) -0.005) ** 2+ (sensorObj.floatp_value (y) -0.0150) ** 2+ (sensorObj.floatp_value (z) -0,0450) ** 2
# print (modulo1)
modulo1 = ("%.1f"% abs (((modulo1 ** 0,5) -1) * 9,8))
# print (modulo1)
#
# sensor.getGyroscope (x, y, z)
# print ("Гироскоп: GX:", sensorObj.floatp_value (x), end = '')
# print ("GY:", sensorObj.floatp_value (y), end = '')
# print ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometer (x, y, z)
# print ("Магнитометр: MX:", sensorObj.floatp_value (x), end = '')
# print ("MY:", sensorObj.floatp_value (y), end = '')
# print ("MZ:", sensorObj.floatp_value (z))
modulo2 = sensorObj.floatp_value (x) ** 2 + sensorObj.floatp_value (y) ** 2 + sensorObj.floatp_value (z) ** 2
# print (по модулю 2)
по модулю2 = ("%.2f"% (по модулю2 ** 0,5))
# print (по модулю 2)
arq = open ('/ tmp / dados.txt', 'ш')
texto =
texto.append (str (modulo2) + "," + str (modulo1))
arq.writelines (текст)
arq.close ()
# link = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# print ('enviando dados')
# send = urllib2.urlopen (ссылка)
# page = send.read ()
# print (страница)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (ссылка)
# page = send.read ()
# print (страница)
# print ("Температура:", sensor.getTemperature ())
# Распечатать()
# time.sleep (.5)
если _name_ == '_main_':
главный()
Código do Servidor Local
время импорта
импортировать BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! ПОМНИТЕ, ЧТО ЭТО ИЗМЕНИТЬ !!!
PORT_NUMBER = 80 # Можно установить 9000.
а = 0
класс MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Content-type", "text / html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
печать (дадос)
"" "Ответить на запрос GET." ""
если s.path == "/ 1":
s.send_response (200)
s.send_header ("Content-type", "text / plain")
s.end_headers ()
s.wfile.write (дадо)
elif s.path == "/ 2":
s.send_response (200)
s.send_header ("Content-type", "text / plain")
s.end_headers ()
s.wfile.write ("2")
еще:
s.send_response (200)
s.send_header ("Content-type", "text / plain")
s.end_headers ()
s.wfile.write (дадо)
# s.wfile.write ("не найдено !!")
def le_dados ():
arq = open ('/ tmp / dados.txt', 'г')
texto = arq.readline ()
arq.close ()
вернуть текст
если _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime (), "Сервер запускается -% s:% s"% (HOST_NAME, PORT_NUMBER)
пытаться:
а = а + 2
httpd.serve_forever ()
кроме KeyboardInterrupt:
проходить
httpd.server_close ()
print time.asctime (), "Server Stops -% s:% s"% (HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#! / bin / bash
echo "запуск mag_python"
sudo python mag_python.py &
эхо "запустить сервер"
sudo python server2.py
Шаг 6: финальный результат
Feito isso as aulas poderão ser auxiliadas e incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. Servindo de фасилитатор e proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.
ССЫЛКА на приложение без Google Play:
Ссылка для códigos Py:
Рекомендуемые:
Умный пояс: 18 шагов
Умный пояс: носить гаджет очень сложно. Честно говоря, в этом проекте мне помогла мама сшить мне чехол, потому что я не могу шить самостоятельно. Будьте осторожны при шитье на швейной машине. Если у вас никогда не было опыта шитья на швейной машине, это также
Умный дом от Raspberry Pi: 5 шагов (с изображениями)
Умный дом от Raspberry Pi: уже существует несколько продуктов, которые делают вашу квартиру умнее, но большинство из них являются проприетарными решениями. Но зачем вам подключение к Интернету, чтобы включать свет с помощью смартфона? Это была одна из причин, по которой я создал свой собственный Smar
Умный чехол для Nexus 7 с сахаром и магнитом: 5 шагов
Умный чехол для Nexus 7 с Sugru и магнитом. Вскоре после того, как люди впервые получили в руки Nexus 7, кто-то обнаружил, что он реагирует на магнит, помещенный в определенное место, как и умные чехлы для iPad. Ни в одном из ящиков, которые я видел, этого не было, и я не мог найти ни одного, который открывался бы слишком сильно, как
Умный тренажер для домашних велосипедов своими руками: 5 шагов
DIY Indoor Bike Smart Trainer: Введение Этот проект начался как простая модификация домашнего велосипеда Schwinn IC Elite, в котором для настройки сопротивления используются простой винт и войлочные прокладки. Проблема, которую я хотел решить, заключалась в том, что шаг винта был слишком большим, поэтому диапазон
Умный будильник: умный будильник на Raspberry Pi: 10 шагов (с изображениями)
Умный будильник: умный будильник на Raspberry Pi: вы когда-нибудь хотели умные часы? Если да, то это решение для вас! Я сделал Smart Alarm Clock, это часы, в которых вы можете менять время будильника в соответствии с веб-сайтом. При срабатывании будильника раздастся звуковой сигнал (зуммер) и загорятся 2 лампочки