Indholdsfortegnelse:

Smart lektion: 6 trin
Smart lektion: 6 trin

Video: Smart lektion: 6 trin

Video: Smart lektion: 6 trin
Video: Menschen A1.1 Lektion 6: ich brauche kein Büro. Văn phòng, danh từ Plural, Nominativ & Akkusativ 2024, Juli
Anonim
Smart lektion
Smart lektion

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 oplevelser não presencias de aula konventionel.

Trin 1: Materiais

Materiais
Materiais

Til programmering af Dragonboard 410c:

- Dragonboard 410c;

- Cabo HDMI;

-Teclado via USB -Mouse via USB -Monitor;

- Mezzanin 96 boards;

Til eksekutør eller projektør:

- Dragonboard 410c;

- Mezzanin 96 boards;

- Sensor Grove IMU 10DOF MPU - 9250 (ikke begrænset til brug af sensor);

- Fonte de alimentação externa 11.1V;

- Jumper fêmea-fêmea;

Trin 2: Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem

Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem
Dragonboard 410c Com Mezzanine 96Tavler: Configuração E Pinagem

O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (level shifter), pois a placa so fornece 1.8V de saída. O sensor utilizado foi um magnetômetro Sensor MPU -9250 Grove -IMU 10DOF, specifikationer:

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

Corrente de funcionamento: 6mA;

Comunicação Seriel;

Pinos: VCC, GND, SDA og SCL;

I2C interface;

Det kan f.eks. Bruges til konstruktioner i Grove I2C0 (5V), som kan bruges til seriel og alimentação funktionalitet til en sensor. (ver imagem)

Trin 3: Integração: Enhed + Vuforia

Integração: Enhed + Vuforia
Integração: Enhed + Vuforia

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

2- Gå til fanen Target Manager og en tekst, der kan bruges til sporing (sporing af mængder).

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

4- Ingen enhed konfigurer et billedmål med en tekst, der kan bruges til at bruge 3D-modeller, der kan bruges til at lokalisere en app.

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

6- Vi kan også anvende forskellige komponenter i 3D-programmer og forberede dem som billedmål (pode ser uma aula de Biologia ou Física…).

Trin 4: Enhed: Konfigurer O Android SDK

Enhed: Konfigurer O Android SDK
Enhed: Konfigurer O Android SDK

1- Grundlæggende om SDK til Android, eller vælg Unity-præferencer.

2- Gør en opbygningsplatform til Unity til Android, til at få adgang til APK.

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

Trin 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, etc., para criar of software que será executado. Este software er ansvarlig for, at vi kan bruge sensorerne, processerne og de samme krav til programmerne. 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 do sensor), server2.py (Servidor local), Executável no Shell:

Sådan mag_python.py

#!/usr/bin/python

# Forfatter: Jon Trulson

# Copyright (c) 2015 Intel Corporation.

#

# Tilladelse gives hermed, gratis, til enhver person, der får

# en kopi af denne software og tilhørende dokumentationsfiler (# "Software"), til at handle i Softwaren uden begrænsninger, herunder

# uden begrænsning rettighederne til at bruge, kopiere, ændre, flette, offentliggøre, # distribuere, underlicensere og/eller sælge kopier af softwaren og til

# tillade personer, som Softwaren er leveret til, at gøre det, med forbehold af

# følgende betingelser:

#

# Ovenstående meddelelse om ophavsret og denne tilladelsesmeddelelse skal være

# inkluderet i alle kopier eller væsentlige dele af softwaren.

#

# SOFTWAREN LEVERES "SOM DEN ER" UDEN GARANTI AF NOGEN Slag, # UDTRYK ELLER UNDERFORSTÅET, INKLUDERENDE, MEN IKKE BEGRÆNSET TIL GARANTIERNE FOR

# SALGSMÆSSIGHED, PASSE TIL ET SÆRLIGT FORMÅL OG

# IKKE OVERTRÆDELSE. UDEN EVENTUELLE SKAL FORFATTERNE ELLER COPYRIGHT -indehaverne være

# ANSVAR FOR ALLE KRAV, SKADER ELLER ANDET ANSVAR, OM I EN HANDLING

# AF KONTRAKT, TORT ELLER ANDET, STAMMER FRA, UDEN ELLER I FORBINDELSE

# MED SOFTWAREN ELLER BRUGEN ELLER ANDRE HANDLINGER I SOFTWAREN.

fra _future_ import print_function

importtid, sys, signal, atexit, urllib, urllib2, matematik

fra upm import pyupm_mpu9150 som sensorObj

def main ():

# data = {}

# data ['magnetrometro'] = raw_input ("Informer en temperatura")

# data = urlib.urlencode (data)

# post_request = urlib2. Request (post_url, data, headers)

# prøve:

# post_response = urlib2.urlopen (post_anmodning)

# print post_response.read ()

# undtagen URLError som e:

# print "Fejl:", e.reason

# Instantier en MPU9250 på I2C bus 0

sensor = sensorObj. MPU9250 ()

## Exit handlers ##

# Denne funktion stopper python fra at udskrive et stacktrace, når du rammer control-C

def SIGINTHandler (signum, frame):

hæve SystemExit

# Denne funktion lader dig køre kode ved exit

def exitHandler ():

print ("Afslutter")

sys.exit (0)

# Registrer exit -behandlere

atexit.register (exitHandler)

signal.signal (signal. SIGINT, SIGINTHandler)

sensor.init ()

x = sensorObj.new_floatp ()

y = sensorObj.new_floatp ()

z = sensorObj.new_floatp ()

mens (1):

sensor.update ()

sensor.getAccelerometer (x, y, z)

# print ("Accelerometer:")

# 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.getGyroskop (x, y, z)

# print ("Gyroskop: 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 ("Magnetometer: 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 (modulo2)

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

# print (modulo2)

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

texto =

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

arq.writelines (tekst)

arq.close ()

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

# print ('enviando dados')

# send = urllib2.urlopen (link)

# side = send.read ()

# print (side)

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

# print ('enviando dados')

# send = urllib2.urlopen (link)

# side = send.read ()

# print (side)

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

# Print()

# time.sleep (.5)

hvis _name_ == '_main_':

main ()

Lokal service

importtid

import BaseHTTPServer

HOST_NAME = '172.17.56.9' # !!! HUSK AT ÆNDRE DETTE !!!

PORT_NUMBER = 80 # Måske indstil dette til 9000.

a = 0

klasse MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):

def do_HEAD (s):

s.send_response (200)

s.send_header ("Indholdstype", "tekst/html")

s.end_headers ()

def do_GET (s):

dados = le_dados ()

tryk (dados)

"" "Svar på en GET -anmodning." ""

hvis s.path == "/1":

s.send_response (200)

s.send_header ("Indholdstype", "tekst/almindelig")

s.end_headers ()

s.wfile.write (dados)

elif s.path == "/2":

s.send_response (200)

s.send_header ("Indholdstype", "tekst/almindelig")

s.end_headers ()

s.wfile.write ("2")

andet:

s.send_response (200)

s.send_header ("Indholdstype", "tekst/almindelig")

s.end_headers ()

s.wfile.write (dados)

#s.wfile.write ("ikke fundet !!")

def le_dados ():

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

texto = arq.readline ()

arq.close ()

returner tekst

hvis _name_ == '_main_':

server_class = BaseHTTPServer. HTTPServer

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

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

prøve:

a = a+2

httpd.serve_forever ()

undtagen KeyboardInterrupt:

passere

httpd.server_close ()

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

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

#!/bin/bash

ekko "starter mag_python"

sudo python mag_python.py &

ekko "start server"

sudo python server2.py

Trin 6: Resultado Final

Resultado Final
Resultado Final

Feito isso as aulas poderão ser auxiliadas and incrementadasas to projeto Smart Lesson desenvolvido com a Dragonboard 410c. Servicen til facilitator og proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.

LINK til app no Google Play:

Link til cydigos Py:

Anbefalede: