Project

General

Profile

Programmazione lato PC

Added by Andrea Belloni about 9 years ago

Per programmare i robot dal PC collegato via bluetooth (vista come una seriale) userei Snap4Arduino (http://s4a.cat/snap/) è basato su Snap (http://snap.berkeley.edu/), una versione estesa di Scratch dell'università di Berkeley, e contiene già le estensioni per usare Arduino tramite dei blocchi aggiuntivi. E' open source e può essere scaricato come applicazione installabile per Linux, Mac, Windows.


Replies (39)

RE: Programmazione lato PC - Added by Andrea Cimini almost 9 years ago

in quest'ultimo esempio forse non sono stato chiaro...
ma var1 prende il valore 1 nella prima funzione
poi nella seconda stampa una message box con il valore 1 (quindi tra blocchi javascript c'è continuità)
ma nel wait until, var1 (come anche mostrato dal show variable) ha il valore 0 e quindi esce dal blocco wait ...

RE: Programmazione lato PC - Added by Andrea Belloni almost 9 years ago

ho caputo

si può provare con le liste, se sono oggetti dovrebbero essere passate per riferimento ...

mo vado a casa

ciao

RE: Programmazione lato PC - Added by Andrea Cimini almost 9 years ago

come suggerito da Andrea (Il Bello), provare con le liste,
ha dato i suoi risultati positivi..

infatti il wait until in questo modo funziona

nel trovare un modo che funzionasse, ho fatto tante piccole scoperte...

ad es.
1)Variabili globali definite nel blocco verde JavaScript sono visibili tra diversi blocchi JavaScript (purché non siano passate come parametri).
2)Ad esecuzioni successive del codice, si mantengono i valori delle variabili sopra descritte.
3)Per passare ai blocchi JavaScript variabili definite in "script variables" occorre passarle comunque come parametri di funzioni (altrimenti se usate nei blocchi verdi senza questo accorgimento, sono variabili differenti)
4)Modifiche al contenuto delle liste, passate come parametri alle funzioni, si ripercuotono anche in altri blocchi SNAP.

Più tardi verificherò con Firmata e Arduino...

RE: Programmazione lato PC - Added by Andrea Cimini almost 9 years ago

Eureka!?!

applicata questa logica all'arduino... FUNZIONAA!!!

ora, passi successivi:

1) riscrivere per bene tutti i blocchi di movimento con questa logica
2) creare un nuovo blocco "init" per inizializzare sia il servo (attach) sia gli steppers (stepperConfig) da chiamare una sola volta dopo aver connesso l'arduino.
3) effettuare la comunicazione via bluetooth!!!
4) assemblarlo per bene...

byee

RE: Programmazione lato PC - Added by Andrea Cimini almost 9 years ago

Poi a progetto finito dovremo creare una pagina wiki... Tra cui inserire:

link utili:

http://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/

RE: Programmazione lato PC - Added by Andrea Cimini almost 9 years ago

per HC-06 ho usato questo codice caricato in Arduino

collegando l'alimentazione del modulo a 3.3V come mostrato in questa figura
http://www.arduino-hacks.com/adding-bluetooth-capability-project-arduino-hc-06/
particolare attenziona va nel connettere RX del modulo BT con il TX dell'Arduino e ovviamente TX del BT con Rx dell'arduino
e trovare il BaudRate di default che è per HC-06 uguale as 9600

(quindi per il seguente codice il Pin2 va collegato a TX del BT e il Pin7 a RX)

//#############################
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 7); // RX | TX
void setup() {
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(9600); // HC-06 current bound rate (default 9600)
}
void loop() {
// Keep reading from HC-06 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-06
if (Serial.available())
BTSerial.write(Serial.read());
}
//#############################

una volta instaurata la comunicazione con il modulo BT (con Termite 3.2 o anche Monitor Seriale dello stesso Arduino IDE)
seguendo questo articolo:
http://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/

ho modificato il nome e il BaudRate utilizzato i comandi:

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+BAUD7 OK57600 Sets the baud rate to 57600

in particolare:

AT+NAMEDR-00
AT+PIN1234
AT+BAUD7

ho poi scollegato il tx e rx del modulo BT
ricaricato ConfigurableFirmata.ino nell'arduino
ricollegato: (RX-BT -> TX-Arduino) e (TX-BT -> RX-Arduino)
connesso al PC il BT: DR-00 tramite una penna USB-BT utilizzando il PIN:1234
e poi in Snap dopo aver premuto Connect Arduino ho selezionato la porta COM del Dispositivo connesso DR-00 (facendo attenzione a non selezionare quella della chiavetta USB-BT)
ora, il tutto funziona come se fosse collegato il cavo USB...

RE: Programmazione lato PC - Added by Andrea Cimini over 8 years ago

Per caricare ConfigurableFirmata nell'Arduino Nano

Per PC-WIN:

estrarre il file: [[https://dev.hacklabterni.org/attachments/download/1256/ConfigurableFirmata-master.zip]]
nella cartella: C:\Users\<vostro_utente>\Documents\Arduino\libraries
aprire con l'editor di arduino 1.6.6 (o superiore) il file:
C:\Users\<vostro_utente>\Documents\Arduino\libraries\ConfigurableFirmata-master\examples\ConfigurableFirmata\ConfigurableFirmata.ino

Collegate l'Arduino Nano tramite la porta USB.

In Strumenti selezionare

Scheda: Arduino Nano (N.B. Arduino Mega non compila)
Processore: ATmega328
Porta: <la vostra porta>

Premere Carica.

Anche se verrà visualizzato il seguente messaggio: "Poca memoria disponibile, potrebbero presentarsi problemi di stabilità" il sistema funzionerà correttamente.

RE: Programmazione lato PC - Added by Andrea Cimini about 8 years ago

per creare una porta seriale virtuale che reindirizzi i dati verso una rete TCP / IP

x linux:
http://www.dest-unreach.org/socat/

x win:
HW Virtual Serial Port
http://www.hw-group.com/products/hw_vsp/index_en.html
http://new.hwg.cz/files/download/sw/version/hw-vsp3-single_3-1-2.exe

RE: Programmazione lato PC - Added by Andrea Belloni about 8 years ago

questo:
$ sudo socat pty,link=/dev/virtualcom0,raw,b115200 tcp:192.168.4.1:23
mi ha funzionato per la connessione al flight controller del drone con la stessa esp8266
però poi funzionava solo da root

così:
$ socat pty,link=/tmp/virtualcom0,raw,b57600 tcp:192.168.4.1:23
dovrebbe funzionare anche da utente normale

(26-39/39)