Πίνακας περιεχομένων:
- Βήμα 1: Υλικό
- Βήμα 2: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
- Βήμα 3: Integração: Unity + Vuforia
- Βήμα 4: Ενότητα: Διαμόρφωση του Android SDK
- Βήμα 5: Criando Servidor Local E Recebendo Informações Em Python
- Βήμα 6: Τελικός αποτελεσμάτων
Βίντεο: Έξυπνο μάθημα: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Για το έξυπνο μάθημα της θεώρησης, μπορείς να χρησιμοποιήσεις τη δυνατότητα να χρησιμοποιήσεις τις υπηρεσίες σου και να τις χρησιμοποιήσεις και να τις παρακολουθήσεις και να τις χρησιμοποιήσεις και να τις παρακολουθήσεις, καθώς και να τις χρησιμοποιήσεις και να τις χρησιμοποιήσεις de aula συμβατικό.
Βήμα 1: Υλικό
Προγραμματίστε ένα Dragonboard 410c:
- Dragonboard 410c
- Cabo HDMI
-Teclado μέσω USB -Ποντίκι μέσω USB -Παρακολούθηση
- Πίνακες ημιώροφο 96
Για εκτελέσεις ή προτάσεις:
- Dragonboard 410c
- Πίνακες ημιώροφο 96
- Sensor Grove IMU 10DOF MPU - 9250 (δεν υπάρχει περιορισμός ή χρήση των αισθητήρων)
- Fonte de alimentação externa 11.1V.
- Jumper fêmea-fêmea.
Βήμα 2: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, για παράδειγμα, για την παροχή τάσης 3.3V / 5V (μετατοπιστής επιπέδου), και μπορείτε να χρησιμοποιήσετε 1.8V. O αισθητήρας χρησιμοποίησης um magnetômetro Sensor MPU -9250 Grove -IMU 10DOF, especificações:
Tensão de Entrada: 5V / 3.3V.
Corrente de funcionamento: 6mA;
Σειριακό Comunicação;
Pinos: VCC, GND, SDA e SCL;
Διεπαφή I2C.
Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το Grove I2C0 (5V), που είναι κατάλληλο για την επικοινωνία του Serial και του Alimentação για τη λειτουργία του αισθητήρα. (ver imagem)
Βήμα 3: Integração: Unity + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- Στην καρτέλα Ο Διαχειριστής Στόχων και η προτεινόμενη υφή για το στάδιο της παρακολούθησης (Quanto mais complexa melhor).
3- Feito isso baixe μια βάση δεδομένων για την ενότητα και την εισαγωγή.
4- No Unity διαμορφώστε μια εικόνα στόχου με την καλύτερη δυνατή προσαρμογή του μοντέλου 3D που θέλετε να χρησιμοποιήσετε, με τη μέγιστη δυνατή προβολή μιας εικόνας για εφαρμογή τοπικής εφαρμογής.
5- Adicione a chave de licença da vuforia nas configurações dentro do Unity.
6- Εφαρμογή μοντέλου για ένα πρόγραμμα τρισδιάστατης ετοιμασίας και προετοιμασίας ως στόχου εικόνας (πληκτρολογήστε τον τίτλο της Βιολογίας ή της Φασικής…).
Βήμα 4: Ενότητα: Διαμόρφωση του Android SDK
1- Baixe ή SDK για Android, και προτιμήσεις Unity και selecione ή seu diretório.
2- Mude a build plataform do Unity para o android, assim conseguiremos gerar o APK.
3- Εγκαταστήστε το apk em um dispitivo (não esqueça de allowir fontes desconhecidas nas configurações).
Βήμα 5: Criando Servidor Local E Recebendo Informações Em Python
Συμπερασματικά ως διαμορφώσεις παρουσιασμένων, διαθέσιμων μηνυμάτων ή συστημάτων από το Σύστημα Linaro dentro για την εφαρμογή και τη χρήση γλωσσών σε C ++, Java, Python, κ.λπ. Αυτό το λογισμικό είναι υπεύθυνο για τον δέκτη από τον αισθητήρα, αλλά επεξεργαστεί και διαπιστώνει ότι το πρόγραμμα συμμορφώνεται με την υποστήριξη του προγράμματος. 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:
Código mag_python.py
#!/usr/bin/python
# Συγγραφέας: Jon Trulson
# Πνευματικά δικαιώματα (γ) 2015 Intel Corporation.
#
# Η άδεια χορηγείται δια του παρόντος, δωρεάν, σε οποιοδήποτε άτομο λαμβάνει
# αντίγραφο αυτού του λογισμικού και των σχετικών αρχείων τεκμηρίωσης (το
# "Λογισμικό"), για συναλλαγές στο Λογισμικό χωρίς περιορισμούς, συμπεριλαμβανομένων
# χωρίς περιορισμό τα δικαιώματα χρήσης, αντιγραφής, τροποποίησης, συγχώνευσης, δημοσίευσης, # διανομή, αδειοδότηση και/ή πώληση αντιγράφων του Λογισμικού, και σε
# επιτρέπουν στα άτομα στα οποία παρέχεται το Λογισμικό να το πράξουν, με την επιφύλαξη
# οι ακόλουθες προϋποθέσεις:
#
# Η παραπάνω ειδοποίηση πνευματικών δικαιωμάτων και αυτή η ειδοποίηση άδειας θα είναι
# που περιλαμβάνεται σε όλα τα αντίγραφα ή σημαντικά τμήματα του Λογισμικού.
#
# ΤΟ ΛΟΓΙΣΜΙΚΟ ΠΑΡΕΧΕΤΑΙ "ΟΠΩΣ", ΧΩΡΙΣ ΕΓΓΥΗΣΗ ΟΠΟΙΟΥΔΗΠΟΤΕ ΕΙΔΟΥΣ, # ΕΚΦΡΑΣΤΕ I ΕΠΙΤΡΕΠΕΤΑΙ, ΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟ ΑΛΛΑ ΟΧΙ ΠΕΡΙΟΡΙΣΜΕΝΟ ΣΤΙΣ ΕΓΓΥΗΣΕΙΣ ΤΩΝ
# ΕΜΠΟΡΙΚΟΤΗΤΑ, ΚΑΤΑΛΛΗΛΟΤΗΤΑ ΓΙΑ ΙΔΙΑΙΤΕΡΟ ΣΚΟΠΟ ΚΑΙ
# ΜΗ ΠΑΡΑΒΑΣΗ. ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΔΕΝ ΕΙΝΑΙ ΟΙ ΣΥΓΓΡΑΦΕΙΣ OR ΚΑΤΟΧΟΙ ΠΝΕΥΜΑΤΙΚΩΝ ΔΙΚΑΙΩΜΑΤΩΝ
# ΥΠΕΥΘΥΝΟΙ ΓΙΑ ΟΠΟΙΑΔΗΠΟΤΕ ΑΙΤΗΣΗ, ΖΗΜΙΕΣ OTHER ΑΛΛΗ ΕΥΘΥΝΗ, ΟΜΩΣ ΣΕ ΔΡΑΣΗ
# ΣΥΜΒΑΣΗΣ, ΑΝΤΙΜΕΤΩΠΙΣΗΣ OR ΑΛΛΟΥ ΑΛΛΟΥ, ΠΟΥ ΠΡΕΠΕΙ ΑΠΟ, ΕΞΩ ή ΣΥΝΔΕΣΗ
# ΜΕ ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΗ ΧΡΗΣΗ OTHER ΑΛΛΕΣ ΠΡΟΣΦΟΡΕΣ ΣΤΟ ΛΟΓΙΣΜΙΚΟ.
από _future_ συνάρτηση print_ import
χρόνος εισαγωγής, sys, σήμα, atexit, urllib, urllib2, μαθηματικά
από upm εισαγωγή pyupm_mpu9150 ως sensorObj
def main ():
# δεδομένα = {}
# data ['magnetrometro'] = raw_input ("Informe a temperatura")
# data = urlib.urlencode (δεδομένα)
# post_request = urlib2. Request (post_url, data, headers)
# προσπαθήστε:
# post_response = urlib2.urlopen (post_request)
# print post_response.read ()
# εκτός URLError ως e:
# εκτύπωση "Σφάλμα:", e.reason
# Εγκαταστήστε ένα MPU9250 στο δίαυλο I2C 0
αισθητήρας = sensorObj. MPU9250 ()
## Έξοδος από χειριστές ##
# Αυτή η λειτουργία εμποδίζει την python να εκτυπώσει μια στοίβα όταν πατάτε το πλήκτρο ελέγχου-C
def SIGINTHandler (signum, frame):
αυξήσει το SystemExit
# Αυτή η λειτουργία σάς επιτρέπει να εκτελείτε κώδικα κατά την έξοδο
def exitHandler ():
εκτύπωση ("Έξοδος")
sys.exit (0)
# Εγγραφή χειριστών εξόδου
atexit.register (exitHandler)
signal.signal (σήμα. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
ενώ (1):
sensor.update ()
sensor.getAccelerometer (x, y, z)
# print ("Επιταχυνσιόμετρο:")
# print ("AX: %.4f" % sensorObj.floatp_value (x), end = "")
# print ("AY: %.4f" % sensorObj.floatp_value (y), τέλος = "")
# εκτύπωση ("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
# εκτύπωση (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))
# εκτύπωση (modulo1)
#
# sensor.getGyroscope (x, y, z)
# print ("Gyroscope: GX:", sensorObj.floatp_value (x), end = "")
# print ("GY:", sensorObj.floatp_value (y), τέλος = "")
# print ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometer (x, y, z)
# print ("Μαγνητόμετρο: MX:", sensorObj.floatp_value (x), τέλος = "")
# 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
# εκτύπωση (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0.5))
# εκτύπωση (modulo2)
arq = άνοιγμα ('/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 (σύνδεσμος)
# σελίδα = send.read ()
# εκτύπωση (σελίδα)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (σύνδεσμος)
# σελίδα = send.read ()
# εκτύπωση (σελίδα)
# print ("Θερμοκρασία:", sensor.getTemperature ())
# Τυπώνω()
# time.sleep (.5)
αν _name_ == '_main_':
κύριος()
Código do Servidor Local
χρόνο εισαγωγής
εισαγωγή BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! ΘΥΜΑΣΤΕ ΝΑ ΤΟ ΑΛΛΑΞΕΤΕ !!!
PORT_NUMBER = 80 # setσως το ορίσετε σε 9000.
α = 0
κλάση MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Τύπος περιεχομένου", "κείμενο/html")
s.end_headers ()
def do_GET (ες):
dados = le_dados ()
εκτύπωση (dados)
"" "Απάντηση σε αίτημα GET." ""
αν s.path == "/1":
s.send_response (200)
s.send_header ("Τύπος περιεχομένου", "κείμενο/απλό")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Τύπος περιεχομένου", "κείμενο/απλό")
s.end_headers ()
s.wfile.write ("2")
αλλού:
s.send_response (200)
s.send_header ("Τύπος περιεχομένου", "κείμενο/απλό")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("δεν βρέθηκε !!")
def le_dados ():
arq = άνοιγμα ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
επιστροφή texto
αν _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
time print.asctime (), "Έναρξη διακομιστή - %s: %s" %(HOST_NAME, PORT_NUMBER)
προσπαθήστε:
α = α+2
httpd.serve_forever ()
εκτός από το KeyboardIntruptrupt:
πέρασμα
httpd.server_close ()
time print.asctime (), "Διακοπές διακομιστή - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
ηχώ "έναρξη mag_python"
sudo python mag_python.py &
echo "διακομιστής εκκίνησης"
sudo python server2.py
Βήμα 6: Τελικός αποτελεσμάτων
Το Feito isso ως aulas poderão ser auxiliadas και incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. Εξυπηρέτηση διευκόλυνσης και προώθησης και προώθησης των συστημάτων που παρέχονται από τον ιδιωτικό τομέα.
ΣΥΝΔΕΣΜΟΣ για την εφαρμογή χωρίς Google Play:
Σύνδεσμος για τα Py:
Συνιστάται:
Πώς να φτιάξετε και να σχεδιάσετε ένα μάθημα εμπόδιο FPV για Quadcopters: 6 βήματα
Πώς να φτιάξετε και να σχεδιάσετε ένα μάθημα εμπόδιο FPV για Quadcopters: Έτσι, πριν από λίγο καιρό πετούσα στην πίσω αυλή μου με την προνύμφη μου x και ήταν πάρα πολύ διασκεδαστικό. Είχα τόσο πολύ διασκέδαση που έφτασα σε ένα σημείο όπου ήθελα να περιπλέξω τα πράγματα λίγο περισσότερο γιατί ήταν πολύ εύκολο. Βρήκα ένα σχέδιο για ένα μάθημα fpv για το
Έξυπνο Ξυπνητήρι: Ένα Έξυπνο Ξυπνητήρι Με Raspberry Pi: 10 Βήματα (με Εικόνες)
Έξυπνο Ξυπνητήρι: Ένα Έξυπνο Ξυπνητήρι Κατασκευασμένο Με Βατόμουρο Π: Θέλατε ποτέ ένα έξυπνο ρολόι; Αν ναι, αυτή είναι η λύση για εσάς! Έφτιαξα το Smart Alarm Clock, αυτό είναι ένα ρολόι που μπορείτε να αλλάξετε την ώρα αφύπνισης σύμφωνα με τον ιστότοπο. Όταν χτυπήσει το ξυπνητήρι, θα ακουστεί ένας ήχος (βομβητής) και 2 φώτα θα
Μάθημα 2: Χρήση του Arduino ως πηγή ενέργειας για ένα κύκλωμα: 6 βήματα
Μάθημα 2: Χρήση του Arduino ως πηγή ενέργειας για ένα κύκλωμα: Γεια σας και πάλι, μαθητές, στο δεύτερο μάθημα του μαθήματός μου για τη διδασκαλία βασικών ηλεκτρονικών. Για όσους δεν έχουν δει το πρώτο μου μάθημα, το οποίο περιγράφει τα πολύ βασικά του κυκλώματος, δείτε το τώρα. Για όσους έχουν ήδη δει το προηγούμενο μου
Εργαστήρι Java - Μάθημα #1: 9 Βήματα
Java Workshop - Μάθημα #1: Καλώς ορίσατε στο Java Workshop - Μάθημα #1. Αυτό το μάθημα σας παρέχεται από την τάξη Code () στη Virginia Tech
Arduino Tank Car Μάθημα 6-Bluetooth και Wifi Hot Spot Control: 4 Βήματα
Arduino Tank Car Μάθημα 6-Bluetooth και Wifi Hot Spot Control: Σε αυτό το μάθημα, μαθαίνουμε πώς να ελέγχουμε την εφαρμογή Robot car mobile για κινητά μέσω WiFi και Bluetooth., Απλώς χρησιμοποιούμε τον πίνακα espasion wifi esp8266 ως πίνακα επέκτασης και ελέγχουμε το αυτοκίνητο της δεξαμενής μέσω δέκτη IR σε προηγούμενα μαθήματα. Σε αυτό το μάθημα, θα μάθουμε