Съдържание:
- Стъпка 1: Материали
- Стъпка 2: Dragonboard 410c Com Мецанин 96 Табла: Configuração E Pinagem
- Стъпка 3: Интеграция: Unity + Vuforia
- Стъпка 4: Единство: Конфигурирайте O Android SDK
- Стъпка 5: Criando Servidor Local E Recebendo Informações Em Python
- Стъпка 6: Резултат финал
Видео: Интелигентен урок: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
O projeto Smart Lesson visa criar um produto no qual os professores possam utilizar como um conteúdo a mais para ensinar seus alunos os levando a um nível de aprendizado muito superior por conseguir mostrar os conteúdos de forma dinâmica e interativa, proporcionando experiencias não sala presenciad de aula konvencional.
Стъпка 1: Материали
За програмиране на Dragonboard 410c:
- Dragonboard 410c;
- Cabo HDMI;
-Teclado чрез USB -Мишка чрез USB -Монитор;
- Мецанин 96 табла;
Изпълнител или проектор:
- Dragonboard 410c;
- Мецанин 96 табла;
- Sensor Grove IMU 10DOF MPU - 9250 (няма ограничение за използване на умния сензор);
- Fonte de alimentação externa 11.1V;
- Джъмпер fêmea-fêmea;
Стъпка 2: Dragonboard 410c Com Мецанин 96 Табла: Configuração E Pinagem
O Shield Mezzanine de serco aplapla à placa Dragonboard 410c, който е предназначен за включване на захранване 3.3V / 5V (превключвател на ниво), разполага с платка за 1.8V детайл. Използване на сензора за магнитометър за сензор MPU -9250 Grove -IMU 10DOF, спецификации:
Tensão de Entrada: 5V / 3.3V;
Функционални функции: 6mA;
Comunicação Serial;
Пино: VCC, GND, SDA и SCL;
I2C интерфейс;
Като пример за използване на домовете за свързване Grove I2C0 (5V), който е пропорционален и комуникационен сериен и алиментарно необходим за функционален сензор. (ver imagem)
Стъпка 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- Фейто е базирана база данни за Unity и импортиране.
4- Не Unity конфигурирайте um image target com a textura escolhida e dentro dele adicione os modelos 3D que deseja utilizar, os mesmos estarão ativos quando a imagem for localizada pelo app.
5- Добавете лицензионна лицензия към конфигурацията на нашите конфигурации за Unity.
6- Após isso modele os componentsntes da aula em algum program 3D и подгответе като aulas em cima do target image (настройка на servo uma aula de Biologia ou Física …).
Стъпка 4: Единство: Конфигурирайте O Android SDK
1- Baixe или SDK за Android, в предпочитанията на Unity и избраните за директното управление.
2- Трябва да създадете платформа за изграждане на Unity за android, да приемете consguiremos gerar или APK.
3- Инсталирайте apk em um dispositivo (não esqueça de allowir fontes desconhecidas nas configurações).
Стъпка 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 и да го представите в приложението.
Seguem os códigos mag_python.py (отчитане на сензора), server2.py (локален сървър), Executável без Shell:
Código mag_python.py
#!/usr/bin/python
# Автор: Джон Трулсън
# Авторско право (c) 2015 Intel Corporation.
#
# Разрешението се предоставя безплатно на всяко лице, което получава
# копие на този софтуер и свързаните с него файлове с документация (# "Софтуер"), за да се занимавате със Софтуера без ограничения, включително
# без ограничение правата за използване, копиране, промяна, сливане, публикуване, # разпространява, подлицензира и/или продава копия на Софтуера и на
# позволяват на лица, на които е предоставен Софтуерът, да го направят, при условие че
# следните условия:
#
# Горното известие за авторски права и това известие за разрешение трябва да бъде
# включени във всички копия или значителни части от Софтуера.
#
# СОФТУЕРЪТ се ПРЕДОСТАВЯ "КАКТО Е", БЕЗ ГАРАНЦИЯ ОТ ВСИЧКИ ВИД, # ИЗРИЧНО ИЛИ НАЛИЧНО, ВКЛЮЧВАЩО, НО НЕ ОГРАНИЧЕНО ОТ ГАРАНЦИИТЕ НА
# ТЪРГОВСКИ СЪОТВЕТСТВОСТ, ФИТЕНТНОСТ ЗА ОПРЕДЕЛЕНА ЦЕЛ И
# НЕ НАРУШЕНИЕ. В НИКАКЪВ СЛУЧАЙ АВТОРИТЕ И ПРИТЕЖАТЕЛИТЕ НА АВТОРСКИ ПРАВА
# ОТГОВОРНОСТ ЗА ВСИЧКИ ИСКОВЕ, УВРЕЖДАНИЯ ИЛИ ДРУГА ОТГОВОРНОСТ, ДАЛИ В ДЕЙСТВИЕ
№ НА ДОГОВОР, ИЗЛУЧЕНИЕ ИЛИ ИНАЧИ, ИЗВЪРШВАНИ ОТ, ИЗВЪН ИЛИ ВЪВ ВРЪЗКА
# С СОФТУЕРА ИЛИ ИЗПОЛЗВАНЕТО ИЛИ ДРУГИ СДЕЛКИ В СОФТУЕРА.
от _future_ импортиране print_function
време за импортиране, sys, сигнал, atexit, urllib, urllib2, математика
от upm внос pyupm_mpu9150 като sensorObj
def main ():
# данни = {}
# data ['magnetrometro'] = raw_input ("Informe a temperature")
# data = urlib.urlencode (данни)
# post_request = urlib2. Request (post_url, данни, заглавки)
# опитвам:
# post_response = urlib2.urlopen (post_request)
# печат post_response.read ()
# с изключение на URLError като e:
# отпечатайте „Грешка:“, e.reason
# Инсталирайте MPU9250 на I2C шина 0
сензор = сензорObj. MPU9250 ()
## Изход манипулатори ##
# Тази функция спира python да отпечатва stecktrace, когато натиснете control-C
def SIGINTHandler (регистрация, рамка):
повдигнете SystemExit
# Тази функция ви позволява да стартирате код при излизане
def exitHandler ():
print ("Излизане")
sys.exit (0)
# Регистрирайте манипулатори за излизане
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = сензорObj.new_floatp ()
y = сензорObj.new_floatp ()
z = сензорObj.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
# печат (по модул1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0,5) -1)*9,8))
# печат (по модул1)
#
# sensor.getГироскоп (x, y, z)
# print ("Жироскоп: GX:", sensorObj.floatp_value (x), end = '')
# print ("GY:", sensorObj.floatp_value (y), end = '')
# print ("GZ:", sensorObj.floatp_value (z))
sensor.getМагнитометър (x, y, z)
# print ("Магнитометър: MX:", сензорObj.floatp_value (x), end = '')
# print ("MY:", sensorObj.floatp_value (y), end = '')
# print ("MZ:", sensorObj.floatp_value (z))
modulo2 = сензорObj.floatp_value (x) ** 2+сензорObj.floatp_value (y) ** 2+сензорObj.floatp_value (z) ** 2
# печат (по модул2)
modulo2 = (" %.2f" % (modulo2 ** 0,5))
# печат (по модул2)
arq = отворен ('/tmp/dados.txt', 'w')
texto =
texto.append (str (modulo2)+","+str (modulo1))
arq.writelines (texto)
arq.close ()
# link = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# print ('enviando dados')
# send = urllib2.urlopen (връзка)
# страница = send.read ()
# печат (страница)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (връзка)
# страница = send.read ()
# печат (страница)
# print ("Температура:", sensor.getTemperature ())
# print ()
# time.sleep (.5)
ако _name_ == '_main_':
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 ("Тип съдържание", "текст/html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
печат (dados)
"" "Отговорете на GET заявка." ""
ако s.path == "/1":
s.send_response (200)
s.send_header ("Тип съдържание", "текст/обикновен")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Тип съдържание", "текст/обикновен")
s.end_headers ()
s.wfile.write ("2")
иначе:
s.send_response (200)
s.send_header ("Тип съдържание", "текст/обикновен")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("не е намерен !!")
def le_dados ():
arq = отворен ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
връщане на texto
ако _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime (), "Сървър стартира - %s: %s" %(HOST_NAME, PORT_NUMBER)
опитвам:
a = a+2
httpd.serve_forever ()
с изключение на KeyboardInterrupt:
пропуск
httpd.server_close ()
print time.asctime (), "Сървър спира - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
ехо "стартиране на 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 facilitador e proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.
ВРЪЗКА за приложение без Google Play:
Връзка за códigos Py:
Препоръчано:
Интелигентен колан: 18 стъпки
Умен колан: Носенето на някаква притурка е много предизвикателство. Честно казано, в този проект получих помощ от майка си да ми шие калъфа, защото не мога да шия сам. Бъдете внимателни, когато шиете с помощта на шевна машина. Ако никога не изпитате шиене с шевна машина, това е
Интелигентен калъф за Nexus 7 с Sugru и магнит: 5 стъпки
Интелигентен калъф за Nexus 7 с Sugru и магнит: Малко след като хората за пръв път се докопаха до Nexus 7, някой установи, че той реагира на магнит, поставен в определена област, подобно на интелигентните калъфи на iPad. Нито един от случаите, които видях, нямаше това, нито можех да намеря такъв, който да се отваря отгоре като
Прототип на интелигентен мотоциклет HUD (навигация от завой до завой и много други): 9 стъпки
Прототип на интелигентен HUD мотоциклет (навигация от завой до завой и много други): Здравейте! Тази инструкция е историята за това как проектирах и изградих платформа HUD (Heads-Up Display), предназначена за монтиране на мотоциклетни каски. Той е написан в контекста на конкурса „карти“. За съжаление не успях да завърша напълно
Интелигентен кристален светлинен низ: 9 стъпки (със снимки)
Интелигентен кристален светлинен низ: С наближаването на Коледа и аз съм в пълно проучване на домашната автоматизация и интелигентните обекти, реших тази година да се опитам да направя интелигентен, добре изглеждащ, RGB лек низ. Направих много изследвания за решенията „направи си сам“. в мрежата, от една страна, някои pr
Интелигентен будилник: интелигентен будилник, направен с Raspberry Pi: 10 стъпки (със снимки)
Интелигентен будилник: интелигентен будилник, направен с Raspberry Pi: Искали ли сте някога интелигентен часовник? Ако е така, това е решението за вас! Направих Smart Alarm Clock, това е часовник, който можете да промените часа на алармата според уебсайта. Когато алармата изгасне, ще се чуе звук (зумер) и 2 светлини ще