Kazalo:
- 1. korak: Materiali
- 2. korak: Dragonboard 410c Com Mezzanine 96 Plošče: Konfiguracija E Pinagem
- 3. korak: Integração: Unity + Vuforia
- 4. korak: Unity: Konfigurirajte O Android SDK
- 5. korak: Criando Servidor Local E Recebendo Informações Em Python
- Korak 6: Končni rezultat
Video: Pametna lekcija: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
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 não uma presenciad de aula konvencional.
1. korak: Materiali
Za program Dragonboard 410c:
- Dragonboard 410c;
- Cabo HDMI;
-Teclado preko USB -miške preko USB -monitorja;
- vmesne plošče 96;
Za izvedbo ali projekcijo:
- Dragonboard 410c;
- vmesne plošče 96;
- Senzor Grove IMU 10DOF MPU - 9250 (ni omejitve glede uporabe senzorja za zvok);
- Fonte de alimentação externa 11,1V;
- skakalec fêmea-fêmea;
2. korak: Dragonboard 410c Com Mezzanine 96 Plošče: Konfiguracija E Pinagem
O Shield Mezzanine je opremljen z Dragonboard 410c, ki je opremljen s 3,3V / 5V (nivojski menjalnik) in je nameščen na 1,8V napajalniku. O senzor, uporabljen za magnetni senzor MPU -9250 Grove -IMU 10DOF, posebne značilnosti:
Tensão de Entrada: 5V / 3.3V;
Funkcionalnost: 6mA;
Comunicação Serial;
Igre: VCC, GND, SDA in SCL;
Vmesnik I2C;
Za primer, da uporabite ali uporabite conectores Grove I2C0 (5V), ki je proporcionalen in serijsko povezan in je potreben za delovanje senzorja. (ver imagem)
3. korak: Integração: Unity + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- V zavihku Target Manager e adicione uma textura para fazer o Tracking (quanto mais complexa melhor).
3- Poiščite bazo podatkov o sistemu 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- Dodatna licenca za konfiguracijo nas konfiguracij za Unity.
6- Após isso modele os componentsn da aula em algum programa 3D e pripravi kot aulas em cima do image image (pode ser uma aula de Biologia ou Física…).
4. korak: Unity: Konfigurirajte O Android SDK
1- Baixe ali SDK za Android, v nastavitvah Unity in izbranih ali usmerjenih.
2- Namestite gradbeno ploščo v sistemu Unity za android, izberite želeno datoteko ali APK.
3- Namestite apk em um dispositivo (não esqueça de allowir fontes desconhecidas nas configurações).
5. korak: Criando Servidor Local E Recebendo Informações Em Python
Sklepi kot konfiguracije, ki so predstavljene, nameščene na strani Sistema Linaro, so namenjene uporabi in uporabi jezikov v jeziku C ++, Java, Python itd. Este programska oprema je odzivna ali sprejeta z dodatnega senzorja senzorja, procesorja in tratarjev, ki ustrezajo zahtevam programa pelo. 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. Če želite prenesti Dragonboard 410c za Unity in predstaviti svojo aplikacijo.
Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (lokalni strežnik), Executável no Shell:
Código mag_python.py
#!/usr/bin/python
# Avtor: Jon Trulson
# Avtorske pravice (c) 2015 Intel Corporation.
#
# Dovoljenje se brezplačno podeli vsaki osebi, ki jo pridobi
# kopija te programske opreme in pripadajočih datotek dokumentacije (# "Programska oprema"), da se s programsko opremo ukvarjajo brez omejitev, vključno
# brez omejitev pravice do uporabe, kopiranja, spreminjanja, združevanja, objave, # distribuirati, podlicencirati in/ali prodati kopije programske opreme in
# dovoljujejo osebam, ki jim je programska oprema namenjena, v skladu z
# naslednji pogoji:
#
# Zgornje obvestilo o avtorskih pravicah in to obvestilo o dovoljenju bo
# vključeno v vse kopije ali znatne dele programske opreme.
#
# PROGRAMSKA OPREMA JE NAMENJENA "KAKŠNA", BREZ GARANCIJE, # IZRESNO ALI PODROČJE, VKLJUČNO, NE VSEBUJO GARANCIJ
# TRGOVINSKA ZDRAVLJIVOST, PRIMERNOST ZA POSEBEN NAMEN IN
# NENOVRŠITEV. V nobenem primeru ne smejo biti avtorji ali imetniki avtorskih pravic
# ODGOVORNOST ZA KAKŠNE TERJATVE, ŠKODO ALI DRUGO ODGOVORNOST, KATERE V DEJAVNOSTI
ŠTEVILA POGODBE, PONOSNIKA ALI DRUGEGA, KI PRIHODI IZ, IZ ALI V POVEZAVI
# S PROGRAMSKO OPREMO ALI UPORABO ALI DRUGIMI POGODBAMI V PROGRAMSKI OPREMI.
from _future_ import print_function
čas uvoza, sys, signal, atexit, urllib, urllib2, math
from upm import pyupm_mpu9150 kot sensorObj
def main ():
# podatkov = {}
# data ['magnetrometro'] = raw_input ("Informe a temperature")
# data = urlib.urlencode (podatki)
# post_request = urlib2. Request (post_url, podatki, glave)
# poskus:
# post_response = urlib2.urlopen (post_request)
# natisni post_response.read ()
# razen URLError kot e:
# print "Napaka:", e.reason
# Namestite MPU9250 na vodilo I2C 0
senzor = senzorObj. MPU9250 ()
## Zapri izvajalce ##
# Ta funkcija prepreči, da bi python natisnil sled skladov, ko pritisnete control-C
def SIGINTHandler (prijava, okvir):
dvignite SystemExit
# Ta funkcija vam omogoča izvajanje kode ob izhodu
def exitHandler ():
print ("Izhod")
sys.exit (0)
# Registrirajte upravljalce izhodov
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = senzorObj.new_floatp ()
z = senzorObj.new_floatp ()
medtem ko (1):
sensor.update ()
sensor.getAccelerometer (x, y, z)
# print ("Merilnik pospeška:")
# print ("AX: %.4f" % sensorObj.floatp_value (x), konec = '')
# print ("AY: %.4f" % sensorObj.floatp_value (y), konec = '')
# 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
# tiskanje (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0,5) -1)*9,8))
# tiskanje (modulo1)
#
# sensor.getGiroskop (x, y, z)
# print ("Žiroskop: GX:", senzorObj.floatp_value (x), konec = '')
# print ("GY:", sensorObj.floatp_value (y), konec = '')
# print ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometer (x, y, z)
# print ("Magnetometer: MX:", sensorObj.floatp_value (x), end = '')
# print ("MOJ:", sensorObj.floatp_value (y), konec = '')
# print ("MZ:", sensorObj.floatp_value (z))
modulo2 = senzorObj.floatp_value (x) ** 2+senzorObj.floatp_value (y) ** 2+senzorObj.floatp_value (z) ** 2
# tiskanje (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0,5))
# tiskanje (modulo2)
arq = odprto ('/tmp/dados.txt', 'w')
texto =
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 (povezava)
# page = send.read ()
# tiskanje (stran)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (povezava)
# page = send.read ()
# tiskanje (stran)
# print ("Temperatura:", sensor.getTemperature ())
# print ()
# time.sleep (.5)
če _name_ == '_main_':
main ()
Código do Servidor Local
čas uvoza
uvozi BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! Spomnite se, da to spremenite !!!
PORT_NUMBER = 80 # Mogoče nastavite na 9000.
a = 0
razred MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Vrsta vsebine", "besedilo/html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
tiskanje (dados)
"" "Odgovorite na zahtevo GET." ""
če je s.path == "/1":
s.send_response (200)
s.send_header ("Vrsta vsebine", "besedilo/navaden")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Vrsta vsebine", "besedilo/navaden")
s.end_headers ()
s.wfile.write ("2")
drugače:
s.send_response (200)
s.send_header ("Vrsta vsebine", "besedilo/navaden")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("ni najdeno !!")
def le_dados ():
arq = odprto ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
vrni texto
če _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime (), "Zagon strežnika - %s: %s" %(HOST_NAME, PORT_NUMBER)
poskusi:
a = a+2
httpd.serve_forever ()
razen KeyboardInterrupt:
prehod
httpd.server_close ()
print time.asctime (), "Strežnik se ustavi - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
echo "zagon mag_python"
sudo python mag_python.py &
echo "zagonski strežnik"
sudo python server2.py
Korak 6: Končni rezultat
Feito isso as aulas poderão ser auxiliadas and 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.
POVEZAVA za aplikacijo brez Googla Play:
Povezava do códigos Py:
Priporočena:
Pametna namizna LED luč - Pametna razsvetljava W/ Arduino - Delovni prostor Neopixels: 10 korakov (s slikami)
Pametna namizna LED luč | Pametna razsvetljava W/ Arduino | Delovni prostor Neopixels: Danes preživljamo veliko časa doma, študiramo in virtualno delamo, zakaj torej ne bi povečali svojega delovnega prostora s prilagojenim in pametnim sistemom osvetlitve, ki temelji na LED -diodah Arduino in Ws2812b. Tukaj vam pokažem, kako zgradite svoj pametni Namizna LED luč, ki
Pametna budilka: pametna budilka iz Raspberry Pi: 10 korakov (s slikami)
Pametna budilka: pametna budilka iz Raspberry Pi: Ste si kdaj želeli pametno uro? Če je tako, je to rešitev za vas! Naredil sem pametno budilko, to je ura, ki jo lahko spremenite glede na spletno stran. Ko se alarm sproži, bo zaslišal zvočni signal in dve lučki bosta
Lekcija 2: Uporaba Arduina kot vira energije za vezje: 6 korakov
Lekcija 2: Uporaba Arduina kot vira napajanja za vezje: Pozdravljeni, študentje, na mojo drugo lekcijo mojega tečaja za poučevanje osnovne elektronike. Za tiste, ki še niste videli moje prve lekcije, ki opisuje zelo, zelo osnove vezja, si oglejte to zdaj. Za tiste, ki ste že videli moj prejšnji le
Java delavnica - Lekcija #1: 9 korakov
Java delavnica - Lekcija #1: Dobrodošli na Java delavnici - Lekcija #1. To lekcijo vam nudi razredni kod () na Virginia Tech
Lekcija 6 avtomobilskih tankov Arduino-Upravljanje vročih točk Bluetooth in Wifi: 4 koraki
Arduino Tank Car Lekcija 6-Bluetooth in Wifi Hot Spot Control: V tej lekciji se naučimo, kako upravljati mobilno aplikacijo Robot za avto prek WiFi in Bluetooth. Uporabljamo samo esp8266 wifi espasion board kot razširitveno ploščo in nadzorujemo avtomobil cisterno prek IR sprejemnika v prejšnjih lekcijah. V tej lekciji se bomo naučili