Πίνακας περιεχομένων:
- Βήμα 1: Ανταλλακτικά και αξεσουάρ
- Βήμα 2: Περιγραφή ανταλλακτικών: Sense Hat
- Βήμα 3: Συναρμολόγηση: Καταγραφέας κρούσης
- Βήμα 4: Συναρμολόγηση: Impact Recorder στο Dash Board of Car
- Βήμα 5: Impact Recoder: Working & Applications
- Βήμα 6: Περιγραφή λογισμικού: Κόμβος Κόκκινο
- Βήμα 7: Βασικά στοιχεία Κόμβου-κόκκινου
- Βήμα 8: Κόκκινος κόμβος: Ροή _1α
- Βήμα 9: Κόκκινος κόμβος: Flow_1b
- Βήμα 10: Κόκκινος κόμβος: Flow_2a
- Βήμα 11: Κόκκινος κόμβος: Flow_2b
- Βήμα 12: Κόμβος Κόκκινο. Ροή_3
- Βήμα 13: MQTT
- Βήμα 14: MQTT: Συνδρομητής
- Βήμα 15: MQTT: Επεξεργασία ιδιοτήτων με κόκκινο κόμβο
- Βήμα 16: Ο κώδικας Python:
- Βήμα 17: Ο Τελικός Κώδικας
- Βήμα 18: Παρακολούθηση ζωντανού βίντεο
Βίντεο: Καταγραφέας κρούσης για οχήματα: 18 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το Impact Recorder έχει σχεδιαστεί για να καταγράφει πρόσκρουση στο όχημα κατά την οδήγηση ή τη στάση. Οι επιπτώσεις αποθηκεύονται στη βάση δεδομένων με τη μορφή αναγνώσεις, καθώς και βίντεο/εικόνας. Μετά από πρόσκρουση, ο απομακρυσμένος χρήστης μπορεί να επαληθευτεί σε πραγματικό χρόνο και ο απομακρυσμένος χρήστης μπορεί να παρακολουθήσει το αποθηκευμένο βίντεο ή να αποκτήσει απομακρυσμένη πρόσβαση στην κάμερα pi και να παρακολουθήσει ανάλογα τα συμβάντα Το
Βήμα 1: Ανταλλακτικά και αξεσουάρ
(1) Raspberry Pi 3 ή καλύτερο: Απαιτείται υπολογιστική ισχύς
(2) Raspberry pi sense hat
(3) Raspberry pi camera / Usb camera
(4) Κάρτα μνήμης με την τελευταία raspbian εικόνα (Πρέπει να υποστηρίζει κόκκινο κόμβο, σχεδόν κάθε τελευταία εικόνα)
(5) Τροφοδοσία τουλάχιστον 2,1 A (έχω χρησιμοποιήσει τράπεζα μπαταριών για αυτόνομη λειτουργία στο αυτοκίνητο)
Βήμα 2: Περιγραφή ανταλλακτικών: Sense Hat
Το Sense HAT διαθέτει μήτρα LED 8 × 8 RGB, χειριστήριο πέντε κουμπιών και περιλαμβάνει τους ακόλουθους αισθητήρες:
- Γυροσκόπιο
- Επιταχυνσιόμετρο
- Μαγνητόμετρο
- Θερμοκρασία
- Βαρομετρικός
- πίεση
- Υγρασία
Περισσότερες πληροφορίες σχετικά με την εργασία με το καπέλο λογικής μπορούν να αντληθούν από τους ακόλουθους συνδέσμους: Sense_Hat
Το API για το καπέλο λογικής φιλοξενείται στη διεύθυνση: Sense_hat_API
Ο κώδικας για προγραμματισμό με καπέλα καλύπτεται σε επόμενα βήματα. Ο κώδικας Sense hat μπορεί επίσης να προσομοιωθεί σε έναν προσομοιωτή που φιλοξενείται στο: Sense-hat προσομοιωτή
Βήμα 3: Συναρμολόγηση: Καταγραφέας κρούσης
- Η συναρμολόγηση είναι απλούστερη καθώς το καπέλο της αίσθησης πρέπει να στοιβάζεται πάνω από το πι (τα καθορισμένα μπουλόνια στερέωσης παρέχονται με καπέλο αίσθησης).
- Μπορεί να συνδεθεί κάμερα USB ή κάμερα pi. Στο σεμινάριο, η κάμερα pi λαμβάνεται υπόψη και κατά συνέπεια η κωδικοποίηση πραγματοποιείται για την ίδια.
- Εισαγάγετε την κάρτα μνήμης και διαμορφώστε τον κώδικα python και τον κόμβο -κόκκινο (η διαμόρφωση και ο κώδικας καλύπτονται σε περαιτέρω βήματα)
Η παραπάνω εικόνα δείχνει pi-camera που συνδέεται μέσω καλωδίου επίπεδης κορδέλας στο pi
Βήμα 4: Συναρμολόγηση: Impact Recorder στο Dash Board of Car
Για την τοποθέτηση της συσκευής εγγραφής, έχω χρησιμοποιήσει ταινία διπλής όψης, το πλεονέκτημα είναι ότι η συσκευή εγγραφής μπορεί εύκολα να μετατοπιστεί σε διαφορετική θέση, όποια ταιριάζει καλύτερα στο αυτοκίνητό σας.
Περαιτέρω κάμερα είναι τοποθετημένη κάθετα όπως φαίνεται, χρησιμοποιώντας την ίδια διπλή πλαϊνή ταινία, Στη συνέχεια, πρέπει να συνδέσετε μια πηγή ενέργειας (τράπεζα ισχύος 10.000 mAH) μαζί με μια έτοιμη σύνδεση στο Διαδίκτυο
Απαιτείται σύνδεση στο Διαδίκτυο για την εφαρμογή MQTT (οι λεπτομέρειες για το MQTT καλύπτονται σε περαιτέρω βήματα)
Βήμα 5: Impact Recoder: Working & Applications
Από το καπέλο της αίσθησης, η επιτάχυνση και το γυροσκόπιο χρησιμοποιούνται για να ελέγξουν εάν οι ακατέργαστες τιμές είναι πέρα από το καθορισμένο όριο στον κώδικα.
Επιταχυνσιόμετρο: Το επιταχυνσιόμετρο λέει την ποσότητα της βαρυτικής δύναμης (δύναμη G) που ενεργεί σε καθένα από τους άξονες x, y & z, εάν οποιοσδήποτε άξονας μετρά περισσότερο από 1G δύναμη, από την ταχεία κίνηση μπορεί να ανιχνευθεί. (σημειώστε ότι ο άξονας που δείχνει προς τα κάτω θα έχει τιμή 1g και πρέπει να εξεταστεί ανάλογα στον κώδικα python).
Γυροσκόπιο; Το γυροσκόπιο χρησιμοποιείται για τη μέτρηση της γωνιακής κίνησης, δηλαδή κατά την απότομη στροφή ο αισθητήρας μπορεί να ενεργοποιηθεί (εξαρτάται από τη ρύθμιση στον κώδικα), οπότε ένα άτομο που στροβιλίζεται απότομα το όχημα θα πιαστεί !!
Οποιαδήποτε ενεργοποίηση του καθορισμένου ορίου εμφανίζεται επίσης στη μήτρα LED αίσθησης καπέλου ως "!" με κόκκινο χρώμα για επιτάχυνση & πράσινο για ενεργοποίηση γυροσκοπίου
Βήμα 6: Περιγραφή λογισμικού: Κόμβος Κόκκινο
Το Node-RED είναι ένα εργαλείο προγραμματισμού βασισμένο στη ροή, που αναπτύχθηκε αρχικά από την Emerging Technology Servicesteam της IBM και τώρα αποτελεί μέρος του Ιδρύματος JS.
Περισσότερες πληροφορίες για τον κόκκινο κόμβο μπορείτε να λάβετε μέσω του ακόλουθου συνδέσμου: κόμβος-κόκκινος
Για την περίπτωσή μας, θα χρησιμοποιούσαμε το node -red για τις ακόλουθες δραστηριότητες
(1) Αλληλεπίδραση με τα χειριστήρια για την εκκίνηση των λειτουργιών της κάμερας
(2) Παρακολούθηση των επιπτώσεων στο όχημα και μετάδοση των πληροφοριών στον τελικό χρήστη χρησιμοποιώντας MQTT και περαιτέρω αποδοχή εντολών τελικού χρήστη μέσω MQTT και εκκίνηση της απαιτούμενης εφαρμογής στο pi
(3) Εκτέλεση ορισμένων βασικών υλικών όπως κλείσιμο του pi
Τα περαιτέρω βήματα δίνουν τις λεπτομερείς πληροφορίες για το διάγραμμα ροής που εφαρμόζεται στο κόκκινο κόμβο
Λάβετε υπόψη ότι τα διαγράμματα ροής κόμβου-κόκκινου αλληλεπιδρούν με τον κώδικα python, επομένως το τελευταίο μέρος καλύπτει τις πτυχές του κώδικα python
Βήμα 7: Βασικά στοιχεία Κόμβου-κόκκινου
Ορισμένα βασικά βήματα επισημαίνονται για την έναρξη του Κόκκινου κόμβου, αλλά ναι, το Κόκκινο Κόμβου είναι πολύ απλό για να ξεκινήσετε και να επεξεργαστείτε εφαρμογές.
- Έναρξη Κόμβου-κόκκινο: https:// localhost: 1880.
- Εκκίνηση Κόκκινου Κόμβου όταν το pi είναι συνδεδεμένο στο διαδίκτυο https:// ip address>: 1880
Βήμα 8: Κόκκινος κόμβος: Ροή _1α
Το Flow _1a, παρακολουθεί τυχόν αλλαγές στο αρχείο CSV και βάσει των αλλαγών, δηλαδή ανίχνευση επιπτώσεων, η εγγραφή βίντεο κάμερας τίθεται σε λειτουργία και περαιτέρω ο χρήστης ενημερώνεται μέσω διαδικτύου ότι έχει συμβεί
Βήμα 9: Κόκκινος κόμβος: Flow_1b
Στην εν λόγω ροή, η εγγραφή βίντεο μπορεί να ξεκινήσει σε οποιοδήποτε σημείο απλά πατώντας το χειριστήριο
Βήμα 10: Κόκκινος κόμβος: Flow_2a
Στην εν λόγω ροή, κάθε φορά που οποιαδήποτε νέα εικόνα ή βίντεο αποθηκεύεται/μεταφορτώνεται στον κατάλογο, οι πληροφορίες μεταφέρονται στον εγγεγραμμένο χρήστη μέσω διαδικτύου
Βήμα 11: Κόκκινος κόμβος: Flow_2b
Αυτή η ροή έχει σχεδιαστεί αρχικά για τον απομακρυσμένο χρήστη, έτσι ώστε να ελέγχει τη συσκευή με τον ακόλουθο τρόπο
(α) συσκευή τερματισμού λειτουργίας
(β) λήψη φωτογραφιών
(γ) Εγγραφή βίντεο
(δ) έναρξη κύριου κωδικού (ο κωδικός καταγραφής δεδομένων είναι ο κύριος κώδικας που υπολογίζει τον αντίκτυπο)
Βήμα 12: Κόμβος Κόκκινο. Ροή_3
Η ροή έχει σχεδιαστεί για τοπική πρόσβαση, έτσι ώστε να ξεκινήσει ο κύριος κωδικός ή η συσκευή τερματισμού λειτουργίας
Βήμα 13: MQTT
Το MQTT (Message Queuing Telemetry Transport) είναι ένα πρωτόκολλο TCP/IP, όπου ο εκδότης και ο συνδρομητής αλληλεπιδρούν.
Στην περίπτωσή μας το Pi είναι εκδότης, ενώ η εφαρμογή που είναι εγκατεστημένη στο moblile/PC μας θα είναι ο συνδρομητής.
Με αυτόν τον τρόπο για τη δημιουργία οποιουδήποτε αντίκτυπου, οι πληροφορίες μεταφέρονται από απόσταση στον χρήστη (απαιτείται σύνδεση στο Διαδίκτυο)
Μπορείτε να έχετε περισσότερες πληροφορίες σχετικά με το MQTT από τον ακόλουθο σύνδεσμο: MQTT
Για να αρχίσουμε να χρησιμοποιούμε το MQTT, πρέπει πρώτα να εγγραφούμε, για το σεμινάριο που έχω χρησιμοποιήσει το cloudmqtt (www.cloudmqtt.com), υπάρχει ένα δωρεάν σχέδιο κάτω από την "χαριτωμένη γάτα", αυτό είναι όλο.
Αφού εγγραφείτε δημιουργήστε ένα παράδειγμα πείτε "pi" μετά το οποίο θα λάβετε τις ακόλουθες λεπτομέρειες
- Ονομα διακομιστή
- Λιμάνι
- όνομα χρήστη
- Κωδικός πρόσβασης
Τα παραπάνω απαιτούνται κατά την εγγραφή μέσω κινητού/υπολογιστή
Για την εφαρμογή μου, έχω χρησιμοποιήσει την εφαρμογή MQTT από το google play store (έκδοση Android)
Βήμα 14: MQTT: Συνδρομητής
Η εφαρμογή MQTT που εκτελείται σε κινητά (έκδοση Android)
Ο αντίκτυπος που εντοπίστηκε στο pi αναμεταδίδεται
Βήμα 15: MQTT: Επεξεργασία ιδιοτήτων με κόκκινο κόμβο
Σε κόκκινο κόμβο μετά την επιλογή κόμβου MQTT, πρέπει να αναφερθεί το "Όνομα διακομιστή" και "θέμα". Αυτό θα πρέπει να είναι το ίδιο στο τέλος του συνδρομητή
Βήμα 16: Ο κώδικας Python:
Η λειτουργικότητα του κώδικα είναι σύμφωνα με το συνημμένο διάγραμμα ροής
Βήμα 17: Ο Τελικός Κώδικας
Επισυνάπτεται ο κώδικας python
Για να εκτελέσουμε το σενάριο python από τερματικό, πρέπει να τα κάνουμε εκτελέσιμα ως chmod +x datalogger.py, παρά στο επάνω μέρος του κώδικα θα πρέπει να περιέχει την ακόλουθη γραμμή "shebang" #! /usr/bin/python3 (αυτό απαιτείται για την εκτέλεση συναρτήσεων από τον κόμβο-κόκκινο)
#!/usr/bin/python3 // shebang linefrom sense_hat import SenseHat from datetime import datetime time from csv import writer import RPi. GPIO as GPIO from time import sleep sleep
αίσθηση = SenseHat ()
εισαγωγή csv
timestamp = datetime.now ()
καθυστέρηση = 5 // η καθυστέρηση ορίζεται για την αποθήκευση δεδομένων στα δεδομένα.csv αρχείο κόκκινο = (255, 0, 0) πράσινο = (0, 255, 0) κίτρινο = (255, 255, 0)
#GPIO.setmode (GPIO. BCM)
#GPIO.setup (17, GPIO. OUT)
def get_sense_impact ():
sense_impact = acc = sense.get_accelerometer_raw () sense_impact.append (acc ["x"]) sense_impact.append (acc ["y"]) sense_impact.append (acc ["z"])
γυροσκόπιο = sense.get_gyroscope_raw ()
sense_impact.append (gyro ["x"]) sense_impact.append (gyro ["y"]) sense_impact.append (gyro ["z"])
επιστροφή sense_impact
def impact (): // λειτουργία για τον εντοπισμό αντίκτυπου #GPIO.setmode (GPIO. BCM) #GPIO.setup (4, GPIO. OUT) επιτάχυνση = sense.get_accelerometer_raw () x = επιτάχυνση ['x'] y = επιτάχυνση ['y'] z = επιτάχυνση ['z'] x = abs (x) y = abs (y) z = abs (z)
γυροσκόπιο = sense.get_gyroscope_raw ()
gyrox = gyro ["x"] gyroy = gyro ["y"] gyroz = gyro ["z"]
γυροξ = στρογγυλος (γυροξ, 2)
γύρο = στρογγυλό (γύρο, 2) γύροζ = στρογγυλό (γύροζ, 2)
αντίκτυπος = get_sense_impact ()
εάν x> 1.5 ή y> 1.5 ή z> 1.5: // οι τιμές ορίζονται μετά την επανάληψη στον πραγματικό δρόμο μπορούν να αλλάξουν ανάλογα για διαφορετικούς τύπους και ικανότητες οδήγησης με ανοιχτό ('impact.csv', 'w', newline = ' ') ως f: data_writer = writer (f) data_writer.writerow ([' acc x ',' acc y ',' acc z ',' gyro x ',' gyro y ',' gyro z ']) #GPIO έξοδος (4, GPIO. HIGH) sense.clear () sense.show_letter ("!", κόκκινο) data_writer.writerow (αντίκτυπος)
elif gyrox> 1.5 ή gyroy> 1.5 ή gyroz> 1.5: // οι τιμές ορίζονται εξετάζοντας την ταχύτητα με την οποία ξεκινούν οι στροφές με ανοικτό ('impact.csv', 'w', newline = '') ως f: data_writer = Writer (f) data_writer.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO.output (4, GPIO HIGH) sense.clear () sense.show_letter ("!", Green) data_writer.writerow (αντίκτυπος)
αλλού:
# GPIO.output (4, GPIO. LOW) sense.clear ()
def get_sense_data (): // λειτουργία για εγγραφή και αποθήκευση τιμών από αισθητήρια αισθητήρια =
sense_data.append (sense.get_temperature ()) sense_data.append (sense.get_pressure ()) sense_data.append (sense.get_humidity ())
προσανατολισμός = sense.get_orientation ()
sense_data.append (προσανατολισμός ["yaw"]) sense_data.append (προσανατολισμός ["βήμα"]) sense_data.append (προσανατολισμός ["κύλιση"])
acc = sense.get_accelerometer_raw ()
sense_data.append (acc ["x"]) sense_data.append (acc ["y"]) sense_data.append (acc ["z"]) mag = sense.get_compass_raw () sense_data.append (mag ["x"]) sense_data.append (mag ["y"]) sense_data.append (mag ["z"])
γυροσκόπιο = sense.get_gyroscope_raw ()
sense_data.append (gyro ["x"]) sense_data.append (gyro ["y"]) sense_data.append (gyro ["z"])
sense_data.append (datetime.now ())
επιστροφή sens_data
με ανοιχτό ('data.csv', 'w', newline = ') ως f:
data_writer = συγγραφέας (f)
data_writer.writerow (['temp', 'pres', 'hum', 'yaw', 'pitch', 'roll', 'acc x', 'acc y', 'acc z', 'mag x', ' mag y ',' mag z ',' gyro x ',' gyro y ',' gyro z ',' datetime '])
ενώ True:
εκτύπωση (get_sense_data ()) για εκδήλωση στο sense.stick.get_events (): # Ελέγξτε αν το joystick πατήθηκε εάν event.action == "πιεστεί": # Ελέγξτε ποια κατεύθυνση εάν event.direction == "up": # sense.show_letter ("U") # Επάνω βέλος επιτάχυνση = sense.get_accelerometer_raw () x = επιτάχυνση ['x'] y = επιτάχυνση ['y'] z = επιτάχυνση ['z'] x = γύρος (x, 0) y = γύρος (y, 0) z = γύρος (z, 0)
# Ενημερώστε την περιστροφή της οθόνης ανάλογα με το προς τα πάνω αν x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) else: sense.set_rotation (0) sense.clear () t = sense.get_temperature () t = round (t, 1) message = "T:" + str (t) sense.show_message (message, text_colour = red, scroll_speed = 0.09) elif event.direction == "down": επιτάχυνση = sense.get_accelerometer_raw () x = επιτάχυνση ['x'] y = επιτάχυνση ['y'] z = επιτάχυνση ['z'] x = γύρος (x, 0) y = γύρος (y, 0) z = γύρος (z, 0)
# Ενημερώστε την περιστροφή της οθόνης ανάλογα με το προς τα πάνω αν x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) else: sense.set_rotation (0) # sense.show_letter ("D") # Down arrow sense.clear () h = sense.get_humidity () h = round (h, 1) message = "H:" + str (η) sense.show_message (μήνυμα, text_colour = πράσινο, scroll_speed = 0.09) p = sense.get_pressure () p = round (p, 1) message = "P:" + str (p) sense.show_message (message, text_colour = κίτρινο, ταχύτητα κύλισης = 0,09)
# elif event.direction == "left":
#επιτάχυνση = sense.get_accelerometer_raw () #x = επιτάχυνση ['x'] #y = επιτάχυνση ['y'] #z = επιτάχυνση ['z'] #x = γύρος (x, 0) #y = γύρος (y, 0) #z = γύρος (z, 0)
#Ενημερώστε την περιστροφή της οθόνης ανάλογα με την πορεία προς τα επάνω // Δεν χρησιμοποιείται και δεν ελέγχεται με κόμβο -κόκκινο #εάν x == -1: sense.set_rotation (90) #elif y == 1: sense.set_rotation (270) #elif y == -1: sense.set_rotation (180) #else: sense.set_rotation (0) # sense.show_letter ("L") # Αριστερό βέλος # elif event.direction == "right": # sense.show_letter ("Κ") # Δεξί βέλος # elif event.direction == "μέση": # sense.clear ()
επίπτωση()
δεδομένα = get_sense_data ()
dt = data [-1] - timestamp if dt.seconds> delay: data_writer.writerow (data) timestamp = datetime.now ()
Βήμα 18: Παρακολούθηση ζωντανού βίντεο
Το Impact Recorder μπορεί επίσης να χρησιμοποιηθεί για την παρακολούθηση ζωντανού βίντεο, καθώς το βίντεο μπορεί να ξεκινήσει οποιαδήποτε στιγμή οπουδήποτε μέσω του MQTT
θα χρησιμοποιούσαμε το VLC player για ροή βίντεο, από προεπιλογή στο πιο πρόσφατο raspbian το VLC είναι προεγκατεστημένο, αλλιώς εγκαταστήστε το vlc ως κάτω
Μπορείτε να έχετε πρόσβαση σε περισσότερες πληροφορίες σχετικά με την προβολή ροής δικτύου μέσω της ροής δικτύου VLC
Ευχαριστούμε που το διαβάσατε!!
Υπάρχουν πολλά περισσότερα που μπορεί να κάνει ο καταγραφέας κρούσης..
Προσέξτε τον επόμενο χώρο για ανάλυση μαγνητικού πεδίου κατά την εκτέλεση χαρτογράφησης εμποδίων
Συνιστάται:
Καταγραφέας ταχύτητας ανέμου και ηλιακής ακτινοβολίας: 3 βήματα (με εικόνες)
Wind Speed and Solar Radiation Recorder: Πρέπει να καταγράψω την ταχύτητα του ανέμου και την ηλιακή ακτινοβολία (ακτινοβολία) για να αξιολογήσω πόση ενέργεια θα μπορούσε να εξαχθεί με ανεμογεννήτρια και/ή ηλιακά πάνελ. Θα μετρήσω για ένα χρόνο, αναλύω τα δεδομένα και στη συνέχεια σχεδιάστε ένα σύστημα εκτός δικτύου
Αισθητήρας/μετρητής θερμοκρασίας κινητήρα με ασύρματο αισθητήρα για κλασικά οχήματα: 7 βήματα
Αισθητήρας θερμοκρασίας κινητήρα/μετρητής με ασύρματο αισθητήρα για κλασικά οχήματα: Έφτιαξα αυτόν τον αισθητήρα για το υπέροχο μου Τσιπιτάκ. Ένα αυτοκίνητο fiat 126 με 2 κύλινδρο αερόψυκτο κινητήρα κάτω από το πίσω καπό. Το Chipitak δεν έχει μετρητή θερμοκρασίας που δείχνει πόσο ζεστός είναι ο κινητήρας, έτσι σκέφτηκα ότι ένας αισθητήρας θα ήταν χρήσιμος. Wantedθελε επίσης ο αισθητήρας να είναι καλώδιο
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL): 5 βήματα (με εικόνες)
Open Source Data Logger (OPENSDL): Ο στόχος αυτού του έργου είναι να σχεδιάσει, να κατασκευάσει και να δοκιμάσει ένα σύστημα μέτρησης χαμηλού κόστους για μελέτες αξιολόγησης της απόδοσης κτιρίου που περιλαμβάνει τουλάχιστον θερμοκρασία, σχετική υγρασία, φωτισμό και είναι επεκτάσιμο σε επιπλέον αισθητήρες, και να αναπτυχθεί
AtticTemp - Καταγραφέας θερμοκρασίας / κλίματος: 10 βήματα (με εικόνες)
AtticTemp - Καταγραφέας θερμοκρασίας / κλίματος: Μετρητής θερμοκρασίας υψηλής ανοχής και καταγραφέας κλίματος για τη σοφίτα σας ή άλλες εξωτερικές κατασκευές
Σύστημα κρούσης Edison Head: 6 βήματα
Σύστημα κρούσης Edison Head: Ο στόχος αυτού του έργου ήταν να δημιουργήσει μια συσκευή που παρακολουθεί την ένταση των κρούσεων στο κεφάλι και ανιχνεύει επιπτώσεις που έχουν μεγάλη πιθανότητα να προκαλέσουν διάσειση. Στο ποδόσφαιρο για νέους, αυτή η ιατρική συσκευή μπορεί να είναι ένα επιπλέον “ σύνολο ματιών & rdq