Cov txheej txheem:

Zaj Lus Qhia Ntse: 6 Kauj Ruam
Zaj Lus Qhia Ntse: 6 Kauj Ruam

Video: Zaj Lus Qhia Ntse: 6 Kauj Ruam

Video: Zaj Lus Qhia Ntse: 6 Kauj Ruam
Video: 6 Nqi Lus Qhia Kev Ua neej ( leej twg mloog lub neej yuav zoo tuaj) 2024, Hlis ntuj nqeg
Anonim
Zaj Lus Qhia Ntse
Zaj Lus Qhia Ntse

O projeto Smart Lesson visa criar um produto tsis muaj peev xwm 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 experencia presacias de aula conferencecional.

Kauj ruam 1: Cov ntaub ntawv

Materiais
Materiais

Rau qhov program rau Dragonboard 410c:

Dragonboard 410c;

- Cabo HDMI;

-Teclado ntawm USB -Mouse ntawm USB -Monitor;

- Mezzanine 96boards;

Rau kev ua haujlwm tiav:

Dragonboard 410c;

- Mezzanine 96boards;

- Sensor Grove IMU 10DOF MPU - 9250 (não limitado ao uso de um único sensor);

- Fonte de alimentação externa 11.1V;

- Jumper fêmea-fêmea;

Kauj Ruam 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 deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (qib shifter), pois a placa só fornece 1.8V de saída. O sensor utilizado foi um magnetômetro Sensor MPU -9250 Grove -IMU 10DOF, tshwj xeeb:

Tensão de Entrada: 5V / 3.3V;

Corrente de funcionamento: 6mA;

Serial kev sib txuas lus;

Pinos: VCC, GND, SDA thiab SCL;

I2C interface;

Para este exemplo foi utilizado um dos conectores Grove I2C0 (5V), que proporciona a comunicação Serial e a alimentação necessária para funcionamento ua sensor. (ver daim duab)

Kauj Ruam 3: Kev Sib Koom: Kev Sib Koom + Vuforia

Integração: Kev sib sau + Vuforia
Integração: Kev sib sau + Vuforia

1- V site ao site da vuforia na área de desenvolvedor e crie uma chave.

2- Vá na tab Target Manager e adicione uma textura para fazer o Tracking (quanto mais complexa melhor).

3- Feito isso baixe a database para o Unity e importe.

4- Tsis muaj kev sib sau ua ke teeb tsa lub hom phiaj duab 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- Adicione a chave de licença da vuforia nas configurações dentro do Unity.

6- Após isso modele os componentes da aula em algum programa 3D e npaj ua aulas em cima ua duab hom phiaj (pode ser uma aula de Biologia ou Física…).

Kauj Ruam 4: Kev Sib Koom: Kho O Android SDK

Kev sib sau: Kho O Android SDK
Kev sib sau: Kho O Android SDK

1- Baixe o SDK rau Android, los ntawm kev nyiam kev sib sau thiab selecione o seu diretório.

2- Mude a plataform do Unity para o android, assim conseguiremos gerar o APK.

3- Instale o apk em um dispositivo (não esqueça de permitir fontes desconhecidas nas configurações).

Kauj Ruam 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

Concluídas as configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa e utilizar várias linguagens como C ++, Java, Python, thiab lwm yam, rau criar o software que será executado. Este software é responsável por receber os dados lidos pelo sensor, processar e tratar estes dados conforme solicitado pelo programa. 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. Os dados são transferidos da Dragonboard 410c para o Unity e são apresentados em um app.

Seguem os códigos mag_python.py (leitor de dados ua sensor), server2.py (Servidor hauv zos), Ua tiav tsis muaj Plhaub:

Código mag_python.py

#!/usr/bin/nab hab sej

# Tus Sau: Jon Trulson

# Copyright (c) 2015 Intel Corporation.

#

# Kev tso cai no tau tso cai, tsis pub dawb, rau txhua tus neeg tau txais

# daim ntawv theej ntawm cov software no thiab cov ntaub ntawv pov thawj cuam tshuam (the

# "Software"), los daws qhov Software yam tsis muaj kev txwv, suav nrog

# tsis muaj kev txwv txoj cai siv, theej, hloov kho, koom ua ke, tshaj tawm, # faib, sublicense, thiab/lossis muag cov ntawv luam ntawm Software, thiab rau

# tso cai rau cov neeg uas Software tau npaj los ua, raws li

# cov xwm txheej hauv qab no:

#

# Daim ntawv ceeb toom hais txog kev tso cai saum toj no thiab daim ntawv ceeb toom tso cai no yuav yog

# suav nrog txhua daim ntawv theej lossis feem ntau ntawm Software.

#

# Lub SOFTWARE tau muab "raws li yog", Tsis muaj kev lees paub ntawm txhua tus menyuam, # ZOO TSHAJ PLAWS LOS NTAWM TSHAJ PLAWS, suav nrog tab sis tsis txwv rau qhov kev lees paub ntawm

# MERCHANTABILITY, haum rau lub hom phiaj tshwj xeeb THIAB

# NONINFRINGEMENT. Tsis muaj dab tsi tshwm sim yuav tsum yog tus tswj hwm lossis COPYRIGHT HOLDERS

# YUAV UA LI CAS XWB, DAMAGES LOS YOG LWM TUS LAWV, THAUM KAWG LI CAS

# Ntawm kev cog lus, kev hais lus lossis lwm yam kev xav, tshwm sim los ntawm, tawm ntawm lossis hauv kev sib txuas

# Nrog SOFTWARE LOSSIS Siv lossis Lwm Yam Kev Pom Zoo hauv SOFTWARE.

los ntawm _future_ ntshuam print_function

ntshuam sijhawm, sys, teeb liab, atexit, urllib, urllib2, lej

los ntawm upm ntshuam pyupm_mpu9150 li sensorObj

def lub ntsiab ():

# cov ntaub ntawv = {}

# cov ntaub ntawv ['magnetrometro'] = raw_input ("Qhia qhov ntsuas kub")

# cov ntaub ntawv = urlib.urlencode (cov ntaub ntawv)

# post_request = urlib2. Request (post_url, cov ntaub ntawv, headers)

# sim:

# post_response = urlib2.urlopen (post_request)

# luam tawm post_response.read ()

# tsuas yog URLError li e:

# print "Yuam kev:", e.reason

# Instantiate MPU9250 ntawm I2C tsheb npav 0

sensor = sensorObj. MPU9250 ()

## Tawm cov neeg ua haujlwm ##

# Cov haujlwm no nres nab nab los ntawm kev luam ntawv stacktrace thaum koj ntaus tswj -C

def SIGINTHandler (kos npe, thav duab):

tsa SystemExit

# Txoj haujlwm no tso cai rau koj khiav cov cai ntawm kev tawm

def tawmHandler ():

print ("Tawm")

sys.exit (0)

# Sau npe cov neeg lis haujlwm tawm

atexit.register (exitHandler)

signal.signal (signal. SIGINT, SIGINTHandler)

sensor.init ()

x = sensorObj.new_floatp ()

y = sensorObj.new_floatp ()

z = sensorObj.new_floatp ()

thaum (1):

sensor.update ()

sensor.getAccelerometer (x, y, z)

# luam tawm ("Accelerometer:")

# print ("AX: %.4f" % sensorObj.floatp_value (x), kawg = '')

# print ("AY: %.4f" % sensorObj.floatp_value (y), kawg = '')

# luam tawm ("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

# luam tawm (modulo1)

modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))

# luam tawm (modulo1)

#

# sensor.getGyroscope (x, y, z)

# print ("Gyroscope: GX:", sensorObj.floatp_value (x), kawg = '')

# print ("GY:", sensorObj.floatp_value (y), kawg = '')

# luam tawm ("GZ:", sensorObj.floatp_value (z))

sensor.getMagnetometer (x, y, z)

# luam tawm ("Magnetometer: MX:", sensorObj.floatp_value (x), kawg = '')

# print ("MY:", sensorObj.floatp_value (y), kawg = '')

# luam tawm ("MZ:", sensorObj.floatp_value (z))

modulo2 = sensorObj.floatp_value (x) ** 2+sensorObj.floatp_value (y) ** 2+sensorObj.floatp_value (z) ** 2

# luam tawm (modulo2)

modulo2 = (" %.2f" % (modulo2 ** 0.5))

# luam tawm (modulo2)

arq = qhib ('/tmp/dados.txt', 'w')

texto =

texto.append (str (modulo2)+","+str (modulo1))

arq.writlines (ntawv nyeem)

arq.close ()

# txuas = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))

# luam tawm ('enviando dados')

# xa = urllib2.urlopen (txuas)

# nplooj ntawv = xa.read ()

# print (nplooj ntawv)

# txuas = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str (modulo1))

# luam tawm ('enviando dados')

# xa = urllib2.urlopen (txuas)

# nplooj ntawv = xa.read ()

# print (nplooj ntawv)

# luam tawm ("Kub:", sensor.getTemperature ())

# luam tawm ()

# sijhawm.sleep (.5)

yog _name_ == '_main_':

lub ntsiab ()

Código ua Servidor Local

lub sij hawm ntshuam

ntshuam BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!! Nco ntsoov hloov qhov no !!!

PORT_NUMBER = 80 # Tej zaum teeb tsa qhov no rau 9000.

ua = 0

chav kawm MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):

def ua_HEAD (s):

s.send_response (200)

s.send_header ("Cov ntsiab lus-hom", "ntawv/html")

s.end_headers ()

def ua_GET (s):

dados = le_dados ()

print (tsum tsum)

"" "Teb rau GET thov." """

yog s.path == "/1":

s.send_response (200)

s.send_header ("Cov ntsiab lus-hom", "ntawv/dawb")

s.end_headers ()

s.wfile.write (txiv neej)

elif s.path == "/2":

s.send_response (200)

s.send_header ("Cov ntsiab lus-hom", "ntawv/dawb")

s.end_headers ()

s.wfile.write ("2")

lwm tus:

s.send_response (200)

s.send_header ("Cov ntsiab lus-hom", "ntawv/dawb")

s.end_headers ()

s.wfile.write (txiv neej)

#s.wfile.write ("tsis pom !!")

def le_dados ():

arq = qhib ('/tmp/dados.txt', 'r')

texto = arq.readline () cov

arq.close ()

rov texto

yog _name_ == '_main_':

server_class = BaseHTTPServer. HTTPServer

httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)

print time.asctime (), "Server Starts - %s: %s" %(HOST_NAME, PORT_NUMBER)

sim:

ib = a+2

httpd.serve_forever ()

tshwj tsis yog KeyboardInterrupt:

dhau

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/tsoo

ncha "pib mag_python"

sudo python mag_python.py &

ncha "pib server"

sudo python server2.py

Kauj Ruam 6: Resultado Final

Resultado Kawg
Resultado Kawg

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.

LINK rau app tsis muaj Google Ua Si:

Txuas rau códigos Py:

Pom zoo: