Archivi tag: TinkerCAD

Corso stampa 3D – sorgenti Tinkercad

In questi giorni sto svolgendo un corso di stampa 3D e Coding con BBC micro:bit per un gruppo di docenti dell’Istituto Comprensivo Ancona Nord, le attività includono anche l’utilizzo di Tinkercad. Condivido alcuni dei sorgenti utilizzati durante il corso in modo che possano essere manipolati e riutilizzati anche da altri. Nella sezione “Corso base di stampa 3D” trovate l’anteprima 3D che potete visualizzare e manipolare nello spazio ed i link ai sorgenti Tinkercad. In questa sezione inserirò nei prossimi mesi ulteriori materiali tra cui anche la serie di strutture robot che utilizzerò durante il prossimo corso di Tecnica della Scuola: CREARE UN KIT DI ROBOTICA EDUCATIVA A BASSO COSTO.

Arduino – Esercizio: Realizzare un timer per il lavaggio delle mani

Di seguito mostro parte della soluzione agli esercizi assegnati ai miei studenti negli scorsi giorni in riferimento alla progettazione di un semplice dispositivo di automazione da collocare in bagno in prossimità del lavandino, in grado di rilevare ad una distanza minima fissata la presenza delle mani e l’avvio di un timer che mostra il trascorrere del tempo. L’indicazione del tempo che trascorre viene realizzata con un servomotore a cui dovrà poi essere fissata una lancetta e che mostra il trascorrere del tempo su una scala graduata. Il tempo di lavaggio viene fissato a 30 secondi. Sulla serial monitor dovrà essere indicato lo stato di avvio del sistema ed il tempo.

Soluzione

Controllo servomotore

1// Prof. Maffucci Michele
2// gestione servomotore
3 
4#include <Servo.h>
5 
6int pos = 0;
7 
8Servo mioServo;
9 
10// scrivere pos +=1 è la stessa cosa che scrivere pos = pos + 1
11 
12void setup()
13{
14  mioServo.attach(9);
15}
16 
17void loop()
18{
19  // muove il servo da 0 a 180 gradi
20  // con passi di 1 grado
21   
22 for (pos = 0; pos <= 180; pos += 1) {
23    // viene detto al servo di posizionarsi
24    // nella posizione inserita nella variabile 'pos'
25    mioServo.write(pos);
26    // attende 15 ms wait 15 ms
27    // per far raggiungere il sevo la posizione
28    delay(15); // attesa di 15 millisecondi
29  }
30  for (pos = 180; pos >= 0; pos -= 1) {
31    // viene detto al servo di posizionarsi
32    // nella posizione inserita nella variabile 'pos'
33    mioServo.write(pos);
34    // attende 15 ms wait 15 ms
35    // per far raggiungere il sevo la posizione
36    delay(15); // attesa di 15 millisecondi
37  
38}

Controllo sensore ultrasuoni

1// Prof. Maffucci Michele
2// Impostazione sensore ultrasuoni
3 
4// distanza minima dell'ostacolo (in cm)
5 
6const int distanzaMinima = 20;
7int misuraDistanza = 0;
8 
9long durata;          // durata dell'impulso
10long distanza;        // distanza dell'oggetto
11int pin_segnale = 7;  // pin Arduino a cui è collegato il sensore SR04
12int pin_trig = 10;    // pin Arduino a cui è collegato il sensore SR04
13 
14 
15void setup()
16{
17    Serial.begin(9600);
18    pinMode(pin_trig, OUTPUT);
19    pinMode(pin_segnale, INPUT);
20    Serial.println("Sensore ad ultrasuini");
21}
22 
23void loop()
24{
25  Serial.print("Distanza ostacolo: ");
26  Serial.println(distanzaOstacolo());
27  delay(100);
28}
29 
30// rilevazione distanza ostacolo
31 
32// misura la distanza dell'ostacolo
33long distanzaOstacolo()
34{
35  digitalWrite(pin_trig, LOW);
36  delayMicroseconds(2);
37  digitalWrite(pin_trig, HIGH);
38  delayMicroseconds(10);
39  digitalWrite(pin_trig, LOW);
40  durata = pulseIn(pin_segnale, HIGH);
41  distanza = (durata / 2) / 29.1;
42  delay(100);
43  return distanza;
44}

Timer lavaggio mani

1// Prof. Maffucci Michele
2// realizzazione di un timer
3// per il lavaggio delle mani
4// in un tempo di 30 secondi
5 
6#include <Servo.h>
7 
8// Impostazione servomotore
9int pos = 0;
10 
11Servo mioServo;
12 
13// Impostazione sensore ultrasuoni
14 
15// distanza minima dell'ostacolo (in cm)
16 
17const int distanzaOstacolo = 20;
18int misuraDistanza = 0;
19 
20long durata;          // durata dell'impulso
21long distanza;        // distanza dell'oggetto
22int pin_echo = 7;     // pin Arduino a cui è collegato il sensore SR04
23int pin_trig = 10;    // pin Arduino a cui è collegato il sensore SR04
24 
25void setup() {
26    Serial.begin(9600);
27    mioServo.attach(9);
28    pinMode(pin_trig, OUTPUT);
29    pinMode(pin_echo, INPUT);
30     
31// Posizionamento iniziale del servo
32   
33  mioServo.write(180);
34  delay(500);
35  mioServo.write(0);
36  delay(500);
37  mioServo.write(180);
38 
39// Avvio alla partenza
40   
41  Serial.println("Avvio programma lavaggio mani");
42}
43 
44void loop() {
45   
46  // Se la distanza delle mani dal rubinetto è
47  // inferiore alla distanzaOstacolo si avvia il timer
48   
49    if (misuraDistanzaOstacolo() < distanzaOstacolo) {
50        contoAllaRovesciaServo();
51  }
52  delay(100);
53}
54 
55 
56// Conto alla rovescia
57// sposta il servo di 6 gradi ogni secondo
58 
59void contoAllaRovesciaServo() {
60  Serial.println("Conto alla rovescia: ");
61  int passi = 30;
62   
63  for (int i = passi; i >= 0; i--) {
64 
65    mioServo.write(i * 6);
66    delay(1000);
67    Serial.print(i);
68    Serial.println(" sec");
69 
70  }
71 
72  // azzeramento del servo.
73  // Le mani sono pulite
74  mioServo.write(180);
75  delay(500);
76}
77 
78// misura la distanza dell'ostacolo
79long misuraDistanzaOstacolo()
80{
81  digitalWrite(pin_trig, LOW);
82  delayMicroseconds(2);
83  digitalWrite(pin_trig, HIGH);
84  delayMicroseconds(10);
85  digitalWrite(pin_trig, LOW);
86  durata = pulseIn(pin_echo, HIGH);
87  distanza = (durata / 2) / 29.1;
88  delay(100);
89  return distanza;
90}

Esercizio 1

Modificare lo sketch precedente aggiungendo due LED, verde e rosso. Lo stato di riposo, timer non funzionante, deve essere indicato dal LED verde acceso e Led rosso spento, mentre lo stato di funzionamento del timer deve essere evidenziato dal LED verde spento e LED rosso acceso.

Esercizio 2

Modificare lo sketch precedente aggiungendo due LED, verde e rosso e un buzzer. Lo stato di riposo, timer non funzionante, deve essere indicato dal LED verde acceso e Led rosso spento, all’avvio del timer il buzzer deve emettere una nota ad una frequenza fissata per un tempo di  1 secondo. Lo stato di funzionamento del timer deve essere evidenziato dal LED verde spento e LED rosso acceso, allo scadere del tempo di lavaggio deve essere emessa una nota di durata 1 secondo ad una frequenza diversa dalla nota di avvio.

Esercizio 3

Realizzare l’esercizio 2 con le medesime caratteristiche e componenti, però sostituendo il servomotore usato come indicatore, con un display LCD 16×2 che indichi il trascorrere del tempo.

Buon lavoro 🙂

Problemi nella condivisione di un progetto con Tinkercad Circuits

Mi è stato recentemente segnalato che vi sono alcuni problemi nella condivisione di un progetto con Tinkercad Circuit. In realtà non si tratta di un problema tecnico, ma di una impostazione da abilitare per consentire l’editing del circuito anche da parte di altre persone.

La modalità di condivisone di un progetto avviene facendo click su “Condividi”:

successivamente bisognerà copiare il link e condividerlo con chi si desidera.

L’utente che riceve il link potrebbe trovarsi in questa situazione:

Ciò potrebbe accadere perché non è stata modificata la privacy del progetto. E’ indispensabile impostare la modalità di condivisione dalle impostazioni del progetto nella home page dei progetti Circuits. Posizionandosi sul singolo progetto apparirà in alto a destra l’icona di un ingranaggio, un click sull’icona apre un menù:

Selezionare “Proprietà”

Individuare la sezione “Privacy”

Nella sezione Privacy modificare l’impostazione da “Privato” a “Pubblico” e successivamente fate click su “Salva modifiche”:

Utilizzando il link di condivisione, così come indicato ad inizio tutorial, l’utente sarà automaticamente reindirizzato sulla pagina di login di Tinkercad e accedendo verrà aperto immediatamente il progetto:

Buon Making a tutti 🙂

Problemi nell’apertura di progetti creati in Tinkercad

In questo periodo di emergenza didattica in cui mi trovo mio malgrado a dover far svolgere ai miei studenti diverse sperimentazioni in modalità simulata, mi trovo anche nella situazione di supportare i ragazzi nella soluzione di problemi tecnici sui loro PC.
In alcune classi, soprattutto nelle 3’ dell’ITIS utilizzo tra i vari software di simulazione anche Tinkercad Circuits che permette di far svolgere una discreta quantità di sperimentazioni in modalità simulata.

In questi giorni ricevo segnalazioni da alcuni studenti, che operando con computer con sistema operativo Windows, non riescono ad aprire progetti precedentemente creati a scuola oppure ad aprirne di nuovi sul proprio computer di casa, nel momento in cui si richiede l’apertura del progetto si entra in un loop di attesa apertura che non termina mai.

Il problema nella maggior parte dei casi risiede in una eccessiva protezione del sistema antivirus installato. Il problema si evidenzia maggiormente per chi dispone dell’antivirus Kaspersky Internet Security.

La soluzione al problema è documentata sul sito Tinkercad è di seguito elenco con immagini la modalità di risoluzione del problema così come feci diversi mesi fa.

Spero che questa guida possa essere di aiuto anche ad altri.

  1. Aprire Kaspersky Internet Security

  2. Selezionare “Avanzate”

  1. Selezionare “Rete”

  1. muovete la pagina verso il basso

  1. Selezionate “Gestisci esclusioni”

  1. Selezionate “Aggiungi”

  1. Inserite l’URL del sito, nel nostro caso: www.tinkercad.com

  1. Click su “Aggiungi”

  1. Chiudere la finestra

Buona sperimentazione a tutti 🙂

Introduzione alla stampa 3D – Lezione 4

Realizzazione di un supporto da scrivania per cellulare.

Costruire un’attività didattica sull’uso della stampa 3D credo riesca meglio se improntata sulla realizzazione di oggetti che immediatamente possono essere utilizzati, oggetti che si integrano nel nostro vivere quotidiano, quindi anche sulla scrivania di casa, ecco perché ho pensato a questo supporto per smartphone… uno sguardo all’oggetto dovrebbe gratificare e concretizzare materialmente ciò che abbiamo imparato.

Continueremo ad utilizzare per questo progetto TinkerCAD cercando di implementare qualcosa che abbia un design interessante e che potrete migliorare e ridimensionare in funzione delle dimensioni del vostro smartphone.

Utilizzeremo elementi di base messi a disposizione della comunità che realizza oggetti da utilizzare in TinkerCAD.

Selezionate il menù: “Featured Shape Generators“:

01

Selezionate e trascinate sul piano di lavoro il SoftBox, una scatola smussata forata da entrambe le parti:

02

La selezione dell’oggetto mostrerà i parametri di base su cui possiamo agire per modificarne le dimensioni:

03

Impostate nel menù delle proprietà i valori:

  • X Dim: 50 mm
  • Y Dim: 45 mm
  • Z Dim: 30 mm
  • Wall: 3 mm
  • Outer Radius: 6 mm

04

Duplicate l’oggetto e impostate per il secondo oggetto le seguenti dimensioni:

  • X Dim: 50 mm
  • Y Dim: 72 mm
  • Z Dim: 30 mm
  • Wall: 3 mm
  • Outer Radius: 6 mm

05

Il primo oggetto creato dovrà essere ruotato di 21° in senso orario, per effettuare rotazioni con precisione al grado dovrete effettuare la rotazione selezionando la maniglia di rotazione parallela al piano di appoggi e ruotandola mantenendo il mouse esternamente al goniometro:

06

Continua a leggere