Sadržaj:

Pametna lekcija: 6 koraka
Pametna lekcija: 6 koraka

Video: Pametna lekcija: 6 koraka

Video: Pametna lekcija: 6 koraka
Video: Урок № 6: «Изхар» (إِظْهَار) Ясное чтение / 1-ое правило Нун-Сакина и Танвина 2024, Srpanj
Anonim
Pametna lekcija
Pametna lekcija

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, proporcionalndo experiencias em não sala presenciad de aula konvencional.

Korak 1: Materijali

Materijali
Materijali

Za programe Dragonboard 410c:

- Dragonboard 410c;

- Cabo HDMI;

-Teclado putem USB -Miš preko USB -Monitor;

- međuspratne ploče 96;

Za izvršenje ili projekciju:

- Dragonboard 410c;

- međuspratne ploče 96;

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

- Fonte de alimentação vanjski 11,1V;

- Džemper fêmea-fêmea;

Korak 2: Dragonboard 410c Com Međuspratne ploče 96: Ploče: Konfiguracija E Pinagem

Dragonboard 410c Com Međuspratne 96Daske: Konfiguracija E Pinagem
Dragonboard 410c Com Međuspratne 96Daske: Konfiguracija E Pinagem
Dragonboard 410c Com Međuspratne 96Daske: Konfiguracija E Pinagem
Dragonboard 410c Com Međuspratne 96Daske: Konfiguracija E Pinagem
Dragonboard 410c Com Međuspratne 96Daske: Konfiguracija E Pinagem
Dragonboard 410c Com Međuspratne 96Daske: Konfiguracija E Pinagem

O Shield Mezzanine je opremljen Dragonboard 410c, za koji je potrebno priključiti 3.3V / 5V (prekidač razine), a nalazi se na 1.8V naponu. O senzor koristi foi um magnetni senzor MPU -9250 Grove -IMU 10DOF, specifikacije:

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

Funkcionalna ispravnost: 6mA;

Comunicação serijski;

Igre: VCC, GND, SDA i SCL;

I2C sučelje;

Za primjer, koristite utičnicu za povezivanje Grove I2C0 (5V), koja je proporcionalno povezana sa serijskim i alimentacijskim potrepštinama za funkcionalan senzor. (ver imagem)

Korak 3: Integração: Jedinstvo + Vuforia

Integração: Jedinstvo + Vuforia
Integração: Jedinstvo + Vuforia

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

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

3- Feito isso baixe baza podataka za Unity e import.

4- No Unity configure um image target com a textura escolhida e dentro dele adicione os modelos 3D que deseja uselizar, os mesmos estarão ativos quando a imagem for localizada pelo app.

5- Dodati licencu za vuforiju nas konfiguracije za Unity.

6- Após isso modele os komponente da aula em algum programa 3D e pripremiti kao aulas em cima do cilja slike (pode ser uma aula de Biologia ou Física …).

Korak 4: Jedinstvo: Konfigurirajte O Android SDK

Unity: Konfigurirajte O Android SDK
Unity: Konfigurirajte O Android SDK

1- Baixe ili SDK za Android, odaberite Unity postavke i odabir o tome kako upravljati.

2- Treba izraditi platforma za Unity za android, kao dodatak za APK.

3- Instalirajte ili apk em um dispozitivo (não esqueça de allowir fontes desconhecidas nas configurações).

Korak 5: Criando Servidor Local E Recebendo Informações Em Python

Criando Servidor Local E Recebendo Informacije Em Python
Criando Servidor Local E Recebendo Informacije Em Python

Zaključci kao konfiguracije apresentadas, podemos acessar o Sistema Linaro dentro da placa i koriste jezike za C ++, Java, Python itd., Za programsko ili programsko izvršavanje. Este software é responseá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. Osados são transferidos da Dragonboard 410c para Unity e são apresentados em um app.

Seguem os códigos mag_python.py (provjerite senzor), server2.py (lokalni poslužitelj), Izvrši bez ljuske:

Código mag_python.py

#!/usr/bin/python

# Autor: Jon Trulson

# Autorska prava (c) 2015 Intel Corporation.

#

# Ovim se dopuštenje daje besplatno, bilo kojoj osobi koja to dobije

# kopija ovog softvera i povezane dokumentacijske datoteke (# "Softver"), za rad sa Softverom bez ograničenja, uključujući

# bez ograničenja prava na korištenje, kopiranje, izmjenu, spajanje, objavljivanje, # distribuirati, podlicencirati i/ili prodavati kopije Softvera i

# dopustiti osobama kojima je Softver namijenjen da to učine, podložno

# sljedeći uvjeti:

#

# Gore navedena obavijest o autorskim pravima i ovo dopuštenje bit će

# uključeno u sve kopije ili značajne dijelove Softvera.

#

# SOFTVER SE DOSTAVLJA "KAKAV JESTE", BEZ BILO KAKVOG JAMSTVA, # IZRIČITO ILI IMPLICIRANO, UKLJUČUJUĆI, ALI NE OGRANIČENO NA JAMSTVA

# TRGOVINSKA SPOSOBNOST, POSLOVNOST ZA POSEBNU SVRHU I

# NEPOVREDA. AUTORI ILI NOSITELJI AUTORSKIH PRAVA NIKADA NE SMIJU BITI

# ODGOVORNOST ZA BILO KOJU POTRAŽNJU, ŠTETU ILI DRUGU ODGOVORNOST, BILO U POSTUPKU

# UGOVORA, POVREDE ILI DRUGOG POVEZANJA, POSTOJEĆI IZ, IZ ILI U VEZI

# S SOFTVEROM ILI KORIŠTENJEM ILI DRUGIM POSLOVIMA U SOFTVERU.

from _future_ import print_function

vrijeme uvoza, sys, signal, atexit, urllib, urllib2, matematika

from upm import pyupm_mpu9150 kao sensorObj

def main ():

# podataka = {}

# data ['magnetrometro'] = raw_input ("Informe a temperature")

# data = urlib.urlencode (podaci)

# post_request = urlib2. Zahtjev (post_url, podaci, zaglavlja)

# pokušaj:

# post_response = urlib2.urlopen (post_request)

# ispis post_response.read ()

# osim URLError kao e:

# ispis "Pogreška:", e.razlog

# Instancirajte MPU9250 na I2C sabirnici 0

senzor = senzorObj. MPU9250 ()

## Izlazi iz obrađivača ##

# Ova funkcija sprječava python da ispiše stecktrace kada pritisnete control-C

def SIGINTHandler (prijava, okvir):

podići SystemExit

# Ova funkcija vam omogućuje pokretanje koda pri izlazu

def exitHandler ():

print ("Izlaz")

sys.exit (0)

# Registrirajte izlazne rukovatelje

atexit.register (exitHandler)

signal.signal (signal. SIGINT, SIGINTHandler)

sensor.init ()

x = senzorObj.new_floatp ()

y = senzorObj.new_floatp ()

z = senzorObj.new_floatp ()

dok (1):

sensor.update ()

sensor.getAccelerometer (x, y, z)

# print ("Akcelerometar:")

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

# 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

# ispis (modulo1)

modulo1 = (" %.1f" % abs (((modulo1 ** 0,5) -1)*9,8))

# ispis (modulo1)

#

# sensor.getGiroskop (x, y, z)

# print ("Žiroskop: GX:", senzorObj.floatp_value (x), kraj = '')

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

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

sensor.getMagnetometar (x, y, z)

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

# print ("MOJ:", sensorObj.floatp_value (y), kraj = '')

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

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

# ispis (modulo2)

modulo2 = (" %.2f" % (modulo2 ** 0,5))

# ispis (modulo2)

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

tekst =

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 (veza)

# page = send.read ()

# ispis (stranica)

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

# print ('enviando dados')

# send = urllib2.urlopen (veza)

# page = send.read ()

# ispis (stranica)

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

# print ()

# vrijeme.spavanje (.5)

ako je _naziv_ == '_glavni_':

glavni()

Código do Servidor Local

vrijeme uvoza

uvozi BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!! Upamtite da ovo promijenite !!!

PORT_NUMBER = 80 # Možda postavite ovo na 9000.

a = 0

klasa MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):

def do_HEAD (s):

s.send_response (200)

s.send_header ("Vrsta sadržaja", "tekst/html")

s.end_headers ()

def do_GET (s):

dados = le_dados ()

ispis (dados)

"" "Odgovorite na GET zahtjev." ""

ako je s.path == "/1":

s.send_response (200)

s.send_header ("Vrsta sadržaja", "tekst/običan")

s.end_headers ()

s.wfile.write (dados)

elif s.path == "/2":

s.send_response (200)

s.send_header ("Vrsta sadržaja", "tekst/običan")

s.end_headers ()

s.wfile.write ("2")

drugo:

s.send_response (200)

s.send_header ("Vrsta sadržaja", "tekst/običan")

s.end_headers ()

s.wfile.write (dados)

#s.wfile.write ("nije pronađeno !!")

def le_dados ():

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

texto = arq.readline ()

arq.close ()

vratiti texto

ako je _naziv_ == '_glavni_':

server_class = BaseHTTPServer. HTTPServer

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

print time.asctime (), "Pokretanje poslužitelja - %s: %s" %(HOST_NAME, PORT_NUMBER)

probati:

a = a+2

httpd.serve_forever ()

osim KeyboardInterrupt:

proći

httpd.server_close ()

print time.asctime (), "Poslužitelj se zaustavlja - %s: %s" %(HOST_NAME, PORT_NUMBER)

Código de Execução dos Códigos anteriores no Shell

#!/bin/bash

echo "pokretanje mag_python"

sudo python mag_python.py &

echo "start server"

sudo python server2.py

Korak 6: Rezultat finale

Rezultat finale
Rezultat 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 za aplikaciju bez Google Playa:

Link para códigos Py:

Preporučeni: