Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
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 dinativaendas de aula konventionell.
Schritt 1: Material
Para-Programmierer für Dragonboard 410c:
- Drachenbrett 410c;
- Cabo-HDMI;
- Teclado über USB -Maus über USB -Monitor;
- Mezzanine-96-Boards;
Para executar o projeto:
- Drachenbrett 410c;
- Mezzanine-96-Boards;
- Sensor Grove IMU 10DOF MPU - 9250 (keine Begrenzung oder kein einziger Sensor);
- Fonte de alimentação externa 11.1V;
- Jumper fêmea-fêmea;
Schritt 2: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
O Shield Mezzanine ist ein Platz für Dragonboard 410c, der für 3.3V / 5V (Level Shifter) verwendet wird, für einen Platz mit 1.8V de Saída. O sensor utilizado foi um magnetômetro Sensor MPU – 9250 Grove -IMU 10DOF, Besonderheiten:
Tensão de Entrada: 5V / 3,3V;
Funktionsspannung: 6mA;
Kommunikationsserien;
Pinos: VCC, GND, SDA und SCL;
I2C-Schnittstelle;
Ein Beispiel für die Verwendung von Grove I2C0 (5V), die eine serielle Kommunikation und eine notwendige Ernährung für die Sensorfunktion erfordern. (ver bild)
Schritt 3: Integration: Einheit + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- Vá na tab Target Manager und Erweiterung um eine Textur für Fazer oder Tracking (quanto mais complexa melhor).
3- Feito isso baixe a database para o Unity und importe.
4- No Unity konfigurieren Sie ein Image-Ziel mit einer Textur, die escolhida und dentro-dele-adicione-os-models-que-deseja-utilizar, os mesmos esstarão ativos Quando a imagem for localizada pelo app.
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 vorbereiten als aulas em cima do image target (pode ser uma aula de Biologia ou Física…).
Schritt 4: Unity: Konfigurieren Sie das O Android SDK
1- Baixe oder SDK für Android, vá em Unity-Präferenzen und Auswahl oder seu diretório.
2- Mude eine Build-Plattform für Unity für Android, Assim Conseguiremos Gerar oder APK.
3- Instale o apk em um dispositivo (não esqueça de allowir fontes desconhecidas nas configurações).
Schritt 5: Criando Servidor Local E Recebendo Informações Em Python
Concluídas as configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa und utilizar várias linguagens como C++, Java, Python, etc., para criar o software que será Executado. Este Software é Responsável for Receber of Dados Lidos Pelo Sensor, Processar und Tratar Estes Dados Conforme Solicitado Pelo Programa. Depois carrega isses dados para o servidor alocado na própria placa para enviar os dados ja tratados para a plataforma Unity. Os exemplos de código deste projeto estão em linguagem Phyton. Es ist ein Transfer von Dragonboard 410c für Unity und eine Präsentation in einer App.
Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (Servidor local), Executável no Shell:
Código mag_python.py
#!/usr/bin/python
# Autor: Jon Trulson
# Urheberrecht (c) 2015 Intel Corporation.
#
# Die Erlaubnis wird hiermit jeder Person, die es erhält, kostenlos erteilt
# eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die
# "Software"), um mit der Software ohne Einschränkung zu handeln, einschließlich
# ohne Einschränkung die Rechte zur Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, # Kopien der Software verteilen, unterlizenzieren und/oder verkaufen und an
# Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich
# die folgenden Bedingungen:
#
# Der obige Urheberrechtshinweis und dieser Erlaubnishinweis sind
# in allen Kopien oder wesentlichen Teilen der Software enthalten.
#
# DIE SOFTWARE WIRD "WIE BESEHEN", OHNE JEGLICHE GEWÄHRLEISTUNG BEREITGESTELLT, # AUSDRÜCKLICH ODER STILLSCHWEIGEND, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN VON
# MARKTFÄHIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND
# NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER
# HAFTUNG FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, OB IN EINER KLAGE
NUMMER DES VERTRAGS, ENTSCHÄDIGUNG ODER ANDERWEITIG, DIE AUS, AUS ODER IN VERBINDUNG STEHEN
# MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDELN MIT DER SOFTWARE.
aus _Zukunft_ Druckfunktion importieren
Importzeit, sys, signal, atexit, urllib, urllib2, mathe
von upm importieren pyupm_mpu9150 als sensorObj
def main():
# Daten = {}
# data['magnetrometro'] = raw_input(" Informieren Sie sich über eine Temperatur")
# Daten = urlib.urlencode(Daten)
# post_request = urlib2. Request(post_url, Daten, Header)
# Versuchen:
# post_response = urlib2.urlopen(post_request)
# post_response.read() drucken
# außer URLError als e:
# print "Fehler: ", e.reason
# Instanziieren eines MPU9250 auf dem I2C-Bus 0
sensor = sensorObj. MPU9250()
## Exit-Handler ##
# Diese Funktion verhindert, dass Python einen Stacktrace druckt, wenn Sie Strg-C. drücken
def SIGINTHandler(signum, frame):
SystemExit erhöhen
# Mit dieser Funktion können Sie Code beim Beenden ausführen
def exitHandler():
print("Beenden")
sys.exit(0)
# Exit-Handler registrieren
atexit.register(exitHandler)
signal.signal(signal. SIGINT, SIGINTHandler)
sensor.init()
x = sensorObj.new_floatp()
y = sensorObj.new_floatp()
z = sensorObj.new_floatp()
während (1):
sensor.update()
sensor.getAccelerometer(x, y, z)
# print ("Beschleunigungsmesser: ")
# 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))
# drucken (modulo1)
#
# sensor.getGyroscope(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))
# drucken (modulo2)
arq = open('/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')
# senden = urllib2.urlopen(Link)
# Seite = send.read()
# Seite drucken)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# senden = urllib2.urlopen(Link)
# Seite = send.read()
# Seite drucken)
# print("Temperatur: ", sensor.getTemperature())
# drucken()
# Zeit. Schlaf(.5)
if _name_ == '_main_':
hauptsächlich()
Código do Servidor Local
Importzeit
BaseHTTPServer importieren
HOST_NAME = '172.17.56.9' # !!!Denken Sie daran, dies zu ändern!!!
PORT_NUMBER = 80 # Vielleicht auf 9000 setzen.
a=0
Klasse MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD(s):
s.send_response(200)
s.send_header("Inhaltstyp", "text/html")
s.end_headers()
def do_GET(s):
dados = le_dados()
drucken (dados)
"""Auf eine GET-Anfrage antworten."""
if s. Pfad=="/1":
s.send_response(200)
s.send_header("Inhaltstyp", "text/plain")
s.end_headers()
s.wfile.write(dados)
elif s.path=="/2":
s.send_response(200)
s.send_header("Inhaltstyp", "text/plain")
s.end_headers()
s.wfile.write("2")
anders:
s.send_response(200)
s.send_header("Inhaltstyp", "text/plain")
s.end_headers()
s.wfile.write(dados)
#s.wfile.write("nicht gefunden!!")
def le_dados():
arq = open('/tmp/dados.txt', 'r')
texto = arq.readline()
arq.close()
Text zurückgeben
if _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime(), "Server startet - %s:%s" % (HOST_NAME, PORT_NUMBER)
Versuchen:
a=a+2
httpd.serve_forever()
außer KeyboardInterrupt:
passieren
httpd.server_close()
print time.asctime(), "Server stoppt - %s:%s" % (HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
echo "starte mag_python"
sudo python mag_python.py &
echo "Server starten"
sudo python server2.py
Schritt 6: Resultado Finale
Sie können mit einem Dragonboard 410c arbeiten. Servindo de facilitador e proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.
LINK für App kein Google Play:
Link für códigos Py:
Empfohlen:
Intelligente Brillen: 4 Schritte
Smart Glasses: Hallo zusammen, heute zeige ich euch, wie man Smart Glasses zu Hause herstellt! Eines der großartigsten Dinge an Datenbrillen ist, wie nützlich es in der heutigen Technologiewelt ist, so etwas zu haben und dass es nicht nur eine Version gibt
Intelligente LED-Schreibtischlampe - Intelligente Beleuchtung mit Arduino - Neopixels-Arbeitsbereich - Gunook
Intelligente LED-Schreibtischlampe | Intelligente Beleuchtung mit Arduino | Neopixels Workspace: Heutzutage verbringen wir viel Zeit zu Hause, lernen und arbeiten virtuell. Warum also nicht unseren Arbeitsplatz mit einem benutzerdefinierten und intelligenten Beleuchtungssystem auf Arduino- und Ws2812b-LED-Basis vergrößern. Hier zeige ich Ihnen, wie Sie Ihren Smart bauen Schreibtisch-LED-Leuchte, die
Lektion 2: Verwenden von Arduino als Stromquelle für eine Schaltung - Gunook
Lektion 2: Verwendung von Arduino als Stromquelle für eine Schaltung: Hallo nochmal, Studenten, zu meiner zweiten Lektion meines Kurses, um grundlegende Elektronik zu unterrichten. Für diejenigen, die meine erste Lektion noch nicht gesehen haben, die die sehr, sehr Grundlagen der Schaltung beschreibt, sehen Sie sich das jetzt bitte an. Für diejenigen, die meine vorherige Le
Java-Workshop - Lektion #1: 9 Schritte
Java Workshop - Lektion #1: Willkommen zum Java Workshop - Lektion #1. Diese Lektion wird Ihnen von der Klasse Code() bei Virginia Tech zur Verfügung gestellt
Arduino Tank Car Lektion 6 - Bluetooth- und Wifi-Hot-Spot-Steuerung - Gunook
Arduino Tank Car Lektion 6 - Bluetooth- und Wifi-Hot-Spot-Steuerung: In dieser Lektion lernen wir, wie man die mobile APP des Roboterautos über WiFi und Bluetooth steuert über IR-Empfänger in früheren Lektionen. In dieser Lektion lernen wir