Sommario:

Lezione intelligente: 6 passaggi
Lezione intelligente: 6 passaggi

Video: Lezione intelligente: 6 passaggi

Video: Lezione intelligente: 6 passaggi
Video: COME DIVENTARE UN GENIO con la Tassonomia di Bloom in 6 PASSAGGI! 2024, Dicembre
Anonim
Lezione intelligente
Lezione intelligente

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 emão experiencias não preseumada de aula convenzionale.

Passaggio 1: materiale

materiale
materiale

Per programmare un Dragonboard 410c:

- Dragonboard 410c;

- Cavo HDMI;

- Teclado via USB -Mouse via USB -Monitor;

- Soppalco 96 quadri;

Para executar o progetto:

- Dragonboard 410c;

- Soppalco 96 quadri;

- Sensor Grove IMU 10DOF MPU - 9250 (non limitato all'uso di un sensore unico);

- Fonte di alimentazione esterna 11.1V;

- Maglione fêmea-fêmea;

Fase 2: Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem

Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem
Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem
Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem
Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem
Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem
Dragonboard 410c Com Mezzanine 96 Schede: Configurazione e Pinagem

O Shield Mezzanine deve essere accoppiato alla piastra Dragonboard 410c, per questo tipo di alimentazione da 3.3V / 5V (level shifter), e poi da una piastra con forza da 1.8V. O sensore utilizzato per il sensore magnetometro MPU – 9250 Grove -IMU 10DOF, specifiche:

Tensione di ingresso: 5V / 3,3V;

Corrente di funzionamento: 6mA;

Comunicazione seriale;

Pino: VCC, GND, SDA e SCL;

interfaccia I2C;

Per questo esempio è possibile utilizzare i connettori Grove I2C0 (5V), che proporzionano una comunicazione seriale e l'alimentazione necessaria per il funzionamento del sensore. (ver imagem)

Fase 3: Integrazione: Unity + Vuforia

Integrazione: Unity + Vuforia
Integrazione: Unity + Vuforia

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

2- In questa scheda Target Manager e ulteriori informazioni sulla trama per fazer o Tracking (quanto più complesso è).

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

4- No Unity configura il target dell'immagine con una texture escolhida e all'interno dell'aggiunta di modelli 3D che deseja utilizar, os mesmos estarão ativos quando un'immagine per localizzare tutta l'app.

5- Adicione a chave de licença da vuforia nas configurações dentro do Unity.

6- Após isso modele os components from aula em algum programa 3D e prepare as aulas em cima do image target (pode ser uma aula de Biologia ou Física…).

Passaggio 4: Unity: configura O Android SDK

Unity: Configura O Android SDK
Unity: Configura O Android SDK

1- Baixe o SDK per Android, vá em Unity Preferences e selezione o seu direttorio.

2- Mute una piattaforma per fare unity per Android, come simmos build o APK.

3- Installa l'apk su un dispositivo (non è necessario consentire la configurazione delle fonti di interruzione).

Passaggio 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 come configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa e utilizar varie lingue come C++, Java, Python, ecc., per creare o software que será executado. Il software è responsável per ricevere i dati relativi ai lidi del sensore, elaborare e gestire i dati conformi alla sollecitazione per il programma. Depois carrega esses dados para o servidor alocado na própria placa per enviar os dados já tratados para a plataforma Unity. Gli esempi di codice di questo progetto sono stati valutati in lingua Phyton. Tutti i dati vengono trasferiti da Dragonboard 410c per Unity e vengono presentati in un'app.

Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (Servidor local), Executável no Shell:

Codice mag_python.py

#!/usr/bin/python

# Autore: Jon Trulson

# Copyright (c) 2015 Intel Corporation.

#

# Con la presente viene concessa l'autorizzazione, a titolo gratuito, a chiunque ottenga

# una copia di questo software e dei file di documentazione associati (il

# "Software"), per gestire il Software senza restrizioni, incluso

# senza limitazione i diritti di utilizzare, copiare, modificare, unire, pubblicare, # distribuire, concedere in sublicenza e/o vendere copie del Software e a

# consentire alle persone a cui viene fornito il Software di farlo, soggetto a

# le seguenti condizioni:

#

# L'avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere

# incluso in tutte le copie o parti sostanziali del Software.

#

# IL SOFTWARE VIENE FORNITO "COS COM'È", SENZA GARANZIE DI ALCUN TIPO, # ESPRESSO O IMPLICITO, COMPRESE MA NON LIMITATE ALLE GARANZIE DI

# COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E

# NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO

# RESPONSABILE PER QUALSIASI RECLAMO, DANNI O ALTRE RESPONSABILITÀ, SIA IN UN'AZIONE

N. DI CONTRATTO, ILLECITO O ALTRO, DERIVANTE DA, DA O IN CONNESSIONE

# CON IL SOFTWARE O L'UTILIZZO O ALTRI TRATTAMENTI NEL SOFTWARE.

da _future_ import print_function

import time, sys, signal, atexit, urllib, urllib2, math

da upm import pyupm_mpu9150 as sensorObj

def principale():

# dati = {}

# data['magnetrometro'] = raw_input(" Informa a temperatura")

# data = urlib.urlencode(data)

# post_request = urlib2. Request(post_url, dati, intestazioni)

# Tentativo:

# post_response = urlib2.urlopen(post_request)

# print post_response.read()

# tranne URLError come e:

# print "Errore: ", e.motivo

# Istanzia un MPU9250 sul bus I2C 0

sensore = sensoreObj. MPU9250()

## Gestori di uscita ##

# Questa funzione impedisce a Python di stampare uno stacktrace quando si preme control-C

def SIGINTHandler(signum, frame):

alza SystemExit

# Questa funzione ti consente di eseguire il codice all'uscita

def exitHandler():

print("Uscita")

sys.exit(0)

# Registra i gestori di uscita

atexit.register(exitHandler)

signal.signal(signal. SIGINT, SIGINTHandler)

sensore.init()

x = sensorObj.new_floatp()

y = sensorObj.new_floatp()

z = sensorObj.new_floatp()

mentre (1):

sensore.aggiornamento()

sensor.getAccelerometro(x, y, z)

# print ("Accelerometro: ")

# 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" % ass(((modulo1**0.5)-1)*9.8))

# stampa (modulo1)

#

# sensor.getGyroscope(x, y, z)

# print("Giroscopio: GX: ", sensorObj.floatp_value(x), end=' ')

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

# print(" GZ: ", sensorObj.floatp_value(z))

sensor.getMagnetometro(x, y, z)

# print("Magnetometro: MX: ", sensorObj.floatp_value(x), end=' ')

# print(" MIO: ", 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(modulo2)

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

# stampa (modulo2)

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

testo =

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

arq.writelines(testo)

arq.chiudi()

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

# print ('inviando dati')

# invia = urllib2.urlopen(link)

# pagina = send.read()

# stampa (pagina)

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

# print ('inviando dati')

# invia = urllib2.urlopen(link)

# pagina = send.read()

# stampa (pagina)

# print("Temperatura: ", sensor.getTemperature())

# Stampa()

# tempo.sonno(.5)

if _name_ == '_main_':

principale()

Codice del Servidor Local

tempo di importazione

import BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!!RICORDA DI CAMBIARE QUESTO!!!

NUMERO_PORTA = 80 # Forse impostalo su 9000.

a=0

class MyHandler(BaseHTTPServer. BaseHTTPRequestHandler):

def do_HEAD(s):

s.send_response(200)

s.send_header("Tipo di contenuto", "testo/html")

s.end_headers()

def do_GET(s):

dados = le_dados()

stampa (dado)

"""Rispondi a una richiesta GET."""

if s.path=="/1":

s.send_response(200)

s.send_header("Tipo di contenuto", "testo/normale")

s.end_headers()

s.wfile.write(dati)

elif s.path=="/2":

s.send_response(200)

s.send_header("Tipo di contenuto", "testo/normale")

s.end_headers()

s.wfile.write("2")

altro:

s.send_response(200)

s.send_header("Tipo di contenuto", "testo/normale")

s.end_headers()

s.wfile.write(dati)

#s.wfile.write("non trovato!!")

def le_dados():

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

texto = arq.readline()

arq.chiudi()

testo di ritorno

if _name_ == '_main_':

server_class = BaseHTTPServer. HTTPServer

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

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

Tentativo:

a=a+2

httpd.serve_forever()

tranne KeyboardInterrupt:

passaggio

httpd.server_close()

print time.asctime(), "Il server si arresta - %s:%s" % (HOST_NAME, PORT_NUMBER)

Codice di esecuzione dei codici anteriori senza Shell

#!/bin/bash

echo "inizio mag_python"

sudo python mag_python.py &

echo "avvia server"

sudo python server2.py

Passaggio 6: risultato finale

Risultato finale
Risultato finale

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 per app no Google Play:

Link per codici Py:

Consigliato: