Оглавление:

Умный урок: 6 шагов
Умный урок: 6 шагов

Видео: Умный урок: 6 шагов

Видео: Умный урок: 6 шагов
Видео: Обучение EXCEL. УРОК 6: Копирование и перемещение диапазонов. 2024, Ноябрь
Anonim
Умный урок
Умный урок

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: Материя

Materiais
Materiais

Для программирования 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

Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
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

Интеграция: Unity + Vuforia
Интеграция: 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

Unity: настройка Android SDK
Unity: настройка Android SDK

1- Пакет или SDK для Android, настройки Unity и выбор или управление.

2- Создайте платформу сборки для Unity для Android, усвоив соответствующий файл APK.

3- Установите apk на устройстве (без разрешения на использование файлов конфигурации).

Шаг 5: Criando Servidor Local E Recebendo Informações Em Python

Criando Servidor Local E Recebendo Informações Em Python
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:

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