Innholdsfortegnelse:
- Trinn 1: Materiais
- Trinn 2: Dragonboard 410c Com Mezzanine 96Bord: Configuração E Pinagem
- Trinn 3: Integração: Unity + Vuforia
- Trinn 4: Enhet: Konfigurer O Android SDK
- Trinn 5: Criando Servidor Local E Recebendo Informações Em Python
- Trinn 6: Resultado Final
Video: Smart leksjon: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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 expera nao presencias de aula convencional.
Trinn 1: Materiais
For programmerer en Dragonboard 410c:
- Dragonboard 410c;
- Cabo HDMI;
-Teclado via USB -Mouse via USB -Monitor;
- Mezzanine 96 boards;
For utfører eller prosjekt:
- Dragonboard 410c;
- Mezzanine 96 boards;
- Sensor Grove IMU 10DOF MPU - 9250 (não limitado ao uso de um único sensor);
- Fonte de alimentação externa 11.1V;
- Genser fêmea-fêmea;
Trinn 2: Dragonboard 410c Com Mezzanine 96Bord: 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, spesifikasjoner:
Tensão de Entrada: 5V / 3.3V;
Corrente de funcionamento: 6mA;
Comunicação Serial;
Pinos: VCC, GND, SDA og SCL;
I2C -grensesnitt;
Det kan for eksempel brukes til å bruke konektorene Grove I2C0 (5V), som kan brukes til å levere seriell og nødvendig mat til en sensor. (ver bilde)
Trinn 3: Integração: Unity + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- Gå til fanen Target Manager og mer informasjon om sporing av sporing (quanto mais complexa melhor).
3- Feito isso baixe a database para o Unity e importe.
4- Ingen enhet konfigurer bildemålet for en tekst som kan brukes for å bruke 3D-modeller som kan brukes for å finne et lokalt program.
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 prepar as aulas em cima do image target (pode ser uma aula de Biologia ou Física…).
Trinn 4: Enhet: Konfigurer O Android SDK
1- Grunnlag for SDK for Android, og velg Unity-preferanser.
2- Spill en plattform for Unity for Android, for å få tilgang til APK.
3- Installer apk em om dispositivo (não esqueça de permitir fontes desconhecidas nas configurações).
Trinn 5: 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., for criar of software que será executado. Este software é responsável for receber us dados lidos pelo sensor, processar and 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 for oity and 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:
Lagre mag_python.py
#!/usr/bin/python
# Forfatter: Jon Trulson
# Copyright (c) 2015 Intel Corporation.
#
# Tillatelse gis herved, gratis, til enhver person som får
# en kopi av denne programvaren og tilhørende dokumentasjonsfiler (# "Programvare"), for å handle i Programvaren uten begrensninger, inkludert
# uten begrensning rettigheter til å bruke, kopiere, endre, slå sammen, publisere, # distribuere, lisensiere og/eller selge kopier av programvaren, og til
# tillate personer som Programvaren er utstyrt til å gjøre det, med forbehold om
# følgende betingelser:
#
# Ovennevnte opphavsrettsvarsel og denne tillatelsesmeldingen skal være
# inkludert i alle kopier eller vesentlige deler av programvaren.
#
# PROGRAMVAREN LEVERES "SOM DEN ER" UTEN GARANTI AV NOE SLAG, # UTTRYKK ELLER UNDERFORSTÅET, INKLUDERT, MEN IKKE BEGRENSET TIL GARANTIENE FOR
# SALGBARHET, RIKTIGHET FOR ET BESTEMT FORMÅL OG
# IKKE Krenkelse. INGEN HENDELSE SKAL FORFATTERNE ELLER OPPHAVSREGLERNE VÆRE
# ANSVAR FOR ALLE KRAV, SKADER ELLER ANNET ANSVAR, OGSÅ I EN HANDLING
# AV KONTRAKT, TORT ELLER ANDRE, STIGER FRA, UTEN AV ELLER I TILKOBLING
# MED PROGRAMVAREN ELLER BRUKEN ELLER ANDRE HANDLINGER I PROGRAMVAREN.
fra _future_ importutskrift_funksjon
importtid, sys, signal, atexit, urllib, urllib2, matematikk
fra upm import pyupm_mpu9150 som sensorObj
def main ():
# data = {}
# data ['magnetrometro'] = raw_input ("Informer a temperatura")
# data = urlib.urlencode (data)
# post_request = urlib2. Request (post_url, data, overskrifter)
# prøve:
# post_response = urlib2.urlopen (post_forespørsel)
# print post_response.read ()
# unntatt URLError som e:
# print "Feil:", e.reason
# Instantiate en MPU9250 på I2C buss 0
sensor = sensorObj. MPU9250 ()
## Exit handlers ##
# Denne funksjonen stopper python fra å skrive ut et stacktrace når du treffer kontroll-C
def SIGINTHandler (signum, frame):
heve SystemExit
# Denne funksjonen lar deg kjøre kode ved utgang
def exitHandler ():
print ("Avslutter")
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 ("Akselerometer:")
# 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')
tekst =
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 (lenke)
# side = send.read ()
# print (side)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (lenke)
# side = send.read ()
# print (side)
# print ("Temperatur:", sensor.getTemperature ())
# skrive ut()
# time.sleep (.5)
hvis _name_ == '_main_':
hoved()
Código do Servidor Local
importtid
importer BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! HUSK Å ENDRE DETTE !!!
PORT_NUMBER = 80 # Kanskje sette dette til 9000.
a = 0
klasse MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Innholdstype", "tekst/html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
print (dados)
"" "Svar på en GET -forespørsel." ""
hvis s.path == "/1":
s.send_response (200)
s.send_header ("Innholdstype", "tekst/vanlig")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Innholdstype", "tekst/vanlig")
s.end_headers ()
s.wfile.write ("2")
ellers:
s.send_response (200)
s.send_header ("Innholdstype", "tekst/vanlig")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("ikke funnet !!")
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 ()
unntatt KeyboardInterrupt:
sende
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
Trinn 6: Resultado Final
Feito isso as aulas poderão ser auxiliadas and incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. Tilrettelegger for opplæring og administrasjon av flere typer systemer.
LINK for app no Google Play:
Lenke til Cydigos Py:
Anbefalt:
Smart skrivebord LED -lys - Smart Lighting W/ Arduino - Neopixels arbeidsområde: 10 trinn (med bilder)
Smart skrivebord LED -lys | Smart Lighting W/ Arduino | Neopixels Workspace: Nå tilbringer vi mye tid hjemme, studerer og jobber virtuelt, så hvorfor ikke gjøre arbeidsområdet vårt større med et tilpasset og smart belysningssystem Arduino og Ws2812b LED -er. Her viser jeg deg hvordan du bygger din Smart LED -skrivebordslampe som
Nytt! Smart Smart Robot Car Chassis av Servo FUTABA 3003 SINONING: 3 trinn
Ny! Styring Smart Robot Car Chassis av Servo FUTABA 3003 SINONING: Designet og laget av SINONING RO BOTDette er et smart bilchassis, du kan installere PCB -kortet på det, slik Arduino, og skrive deg kode, det blir en robotbil. Hvis du liker, kan du kjøpe fra styrerobot -chassis
Smart vekkerklokke: en smart vekkerklokke laget med bringebær Pi: 10 trinn (med bilder)
Smart vekkerklokke: en smart vekkerklokke laget med bringebær Pi: Har du noen gang ønsket deg en smart klokke? I så fall er dette løsningen for deg! Jeg lagde Smart Alarm Clock, dette er en klokke som du kan endre alarmtiden i henhold til nettstedet. Når alarmen går, kommer det en lyd (summer) og 2 lys vil
Leksjon 2: Bruke Arduino som en strømkilde for en krets: 6 trinn
Leksjon 2: Bruke Arduino som en strømkilde for en krets: Hei igjen, studenter, til min andre leksjon i kurset for å lære grunnleggende elektronikk. For de som ikke har sett min første leksjon, som beskriver det helt grunnleggende om kretsløp, vennligst se det nå. For de som allerede har sett min forrige
Java Workshop - Leksjon 1: 9 trinn
Java Workshop - Leksjon 1: Velkommen fra Java Workshop - Leksjon #1. Denne leksjonen er gitt deg av klassekode () ved Virginia Tech