Tuttavia non è poi così difficile distruggerlo\danneggiarlo.
Questa breve guida mette sul tavolo diverse "esperienze" su cosa NON fare con Arduino.
stima la quantità di luce riflessa dall'oggetto, determinando il colore della linea.Successivamente il programma decide come affrontare il problema.
movePololuServo('/dev/ttyACM0', 0, 6120);Dove:
by Plusea |
photo by http://goo.gl/QwXkNL |
Il pin fisico 2 (dove c'è il led) è collegato al pin 3 dell'Arduino IDE.
Git ufficiale del progetto |
Nota: per questa procedura serve una versione dell'IDE d'Arduino almeno 1.6.4 o superiore.
In sostanza vi sto dicendo che per programmare un microcontrollore serve un programmer.
Programmer per ATtiny85 |
In somma, sparisce un microcontrollore per programmare Arduino.
Microcontrollori |
In questa guida ci concentreremo sulla ATtiny85.
Microcontrollore puntato dal cacciavite |
Eccola la nostra ATtiny85 |
Molto più compatto e versatile d'un Arduino |
A questo punto, avremo un "mini Arduino" da mettere in qualsiasi scatola!
Questo articolo nasce per poter collegare ad un Arduino, o in generale ad un controllore, che controlli automaticamente, secondo un programma, la nostra penna.
AT | OK | Used to verify communication |
AT+VERSION | OKlinvorV1.8 | The firmware version (version might depend on firmware) |
AT+NAMExyz | OKsetname | Sets the module name to “xyz” |
AT+PIN1234 | OKsetPIN | Sets the module PIN to 1234 |
AT+BAUD1 | OK1200 | Sets the baud rate to 1200 |
AT+BAUD2 | OK2400 | Sets the baud rate to 2400 |
AT+BAUD3 | OK4800 | Sets the baud rate to 4800 |
AT+BAUD4 | OK9600 | Sets the baud rate to 9600 |
AT+BAUD5 | OK19200 | Sets the baud rate to 19200 |
AT+BAUD6 | OK38400 | Sets the baud rate to 38400 |
AT+BAUD7 | OK57600 | Sets the baud rate to 57600 |
AT+BAUD8 | OK115200 | Sets the baud rate to 115200 |
AT+BAUD9 | OK230400 | Sets the baud rate to 230400 |
AT+BAUDA | OK460800 | Sets the baud rate to 460800 |
AT+BAUDB | OK921600 | Sets the baud rate to 921600 |
AT+BAUDC | OK1382400 | Sets the baud rate to 1382400 |
maestro.setTarget(0, 6000);
delay(3000);
maestro.setTarget(0, 4000);
#include <PololuMaestro.h>
#ifdef SERIAL_PORT_HARDWARE_OPEN
#define maestroSerial SERIAL_PORT_HARDWARE_OPEN
#else
#include
SoftwareSerial maestroSerial(10, 11);
#endif
MicroMaestro maestro(maestroSerial);
void setup()
{
maestroSerial.begin(9600);
}
void loop()
{
maestro.setSpeed(0, 20);
maestro.setAcceleration(0, 200);
maestro.setTarget(0, 6000);
maestro.getMovingState();
delay(3000);
maestro.setTarget(0, 4000);
maestro.getMovingState();
delay(3000);
}
// L'esercizio mostra il movimento di 1 motore, con relative accelerazioni e velocità.
#include <PololuMaestro.h>
#ifdef SERIAL_PORT_HARDWARE_OPEN
#define maestroSerial SERIAL_PORT_HARDWARE_OPEN
#else
#include
SoftwareSerial maestroSerial(10, 11);
#endif
MicroMaestro maestro(maestroSerial);
void setup()
{
maestroSerial.begin(9600);
}
void loop()
{
//con la funzione setSpeed imposto il numero del motore, la sua velocità
maestro.setSpeed(0, 20);
//con la funzione setAcceleration imposto il numero del motore, la sua accelerazione . Questo numero è compreso tra 0 ( accelerazione massima ) e 255
maestro.setAcceleration(0, 200);
//con la funzione setTarget imposto una posizione al motore, tipicamente tra 4000 e 8000
maestro.setTarget(0, 6000);
delay(3000); //aspetto 3 secondi prima di passare alla prossima posizione
maestro.setTarget(0, 4000);
delay(3000); //aspetto 3 secondi prima di passare alla prossima posizione
}
Possiamo modificare diversi parametri, in questo esempio, per il singolo Servo: /* L'esercizio mostra il movimento di 3 motori contemporanemanete, con relative accellerazioni e velocità.
*/
#include <PololuMaestro.h>
#ifdef SERIAL_PORT_HARDWARE_OPEN
#define maestroSerial SERIAL_PORT_HARDWARE_OPEN
#else
#include
SoftwareSerial maestroSerial(10, 11);
#endif
MicroMaestro maestro(maestroSerial);
void setup()
{
maestroSerial.begin(9600);
}
void loop()
{
//con la funzione setSpeed imposto il numero del motore, la sua velicità
maestro.setSpeed(0, 20);
maestro.setSpeed(1, 10);
maestro.setSpeed(2, 10);
//con la funzione setAcceleration imposto il numero del motore, la sua accellerazione . Questo numero è compreso tra 0 ( accelerazione massima ) e 255
maestro.setAcceleration(0, 200);
maestro.setAcceleration(1, 200);
maestro.setAcceleration(2, 200);
//con la funzione setTarget imposto una posizione al motore, tipicamente tra 4000 e 8000
maestro.setTarget(0, 6000);
maestro.setTarget(1, 4000);
maestro.setTarget(2, 4000);
delay(3000); //aspetto 3 secondi prima di passare alla prossima posizione
maestro.setTarget(0, 4000);
maestro.setTarget(1, 6000);
maestro.setTarget(2, 6000);
delay(3000);
}
sudo usermod -aG dialout <myuser>
void setup(){
Serial.begin(9600);
Serial.println('a');
char a = 'b';
while (a !='a'){
a=Serial.read();
}
}
void loop(){
}
-Dgnu.io.rxtx.SerialPorts=/dev/ttyS0:/dev/ttyUSB0:/dev/ttyACM0Salviamo il file di testo con il nome "java.opts" , dove 'java' è il nome ed il '.opts' l'estensione. Ora dobbiamo fare in modo che Matlab carichi il file quando necessario, scriviamo nella Command Window di Matlab i seguenti comandi, tenendo nota del risultato d'ogni uno:
matlabroote successivamente
computer('arch')Il file "java.opts" andrà salvato nella locazione: $MATLABROOT/bin/$ARCH
%scrivere in console
%instrhwinfo ('serial')
%comPort = '/dev/ttyACM0';
%[ s,flag ] = setupSerial( comPort );
function [s,flag] = setupSerial(comPort)
flag = 1;
s=serial(comPort);
set(s,'DataBits',8);
set(s,'StopBits',1);
set(s,'BaudRate',9600);
set(s,'Parity','none');
fopen(s); % fopen (serial),Connect serial port object to device
a='b';
while (a~='a')
a=fread(s,1,'uchar'); % fread (serial),Read binary data from device
end
if(a=='a')
disp('serial read');
end
fprintf(s,'%c','a'); % fprintf (serial),Write text to device
mbox= msgbox('Serial Communication setup.'); uiwait(mbox);
fscanf(s,'%u'); % fscanf (serial),Read ASCII data from device, and format as text
end
comPort = '/dev/ttyACM0';- avviare la funzione con il comando:
[ s,flag ] = setupSerial( comPort );
#!/usr/bin/python
import os
print 'Raspberry connection script'
os.system("ssh pi@IP_RASPBERRY")
sudo nano transmissionora copiamo lo script riportato qui sotto:
#!/usr/bin/python
#code by Dave Calaway http://goo.gl/7yt8Lf
import os
print 'Transmission script'
while True:
numero = int( raw_input('1 stop\n2 edit .json\n3 load setting\n4 reload transmission\n0 exit\n') )
if numero == 1:
os.system("sudo /etc/init.d/transmission-daemon stop")
if numero == 2:
os.system("cd /etc/transmission-daemon && sudo nano settings.json")
if numero == 3:
os.system("sudo /etc/init.d/transmission-daemon reload")
if numero == 4:
os.system("sudo /etc/init.d/transmission-daemon restart")
if numero == 0:
break
print 'bye :D'
python transmissionora seguiamo le informazioni a monitor.