PDA

View Full Version : Domande varie su come lavorano hardware e software


carlore
16-07-2014, 09:56
Ciao a tutti, da qualche mese sto leggendo manuali e libri per apprendere python e java, ma più mi addentro in questi linguaggi più mi vengono domande su come lavorano con l'hardware. Mi spiego meglio: da tempo penso a come poter, per esempio, far accendere un led inviando un comando via bluetooth dal mio dispositivo ( ovviamente il led è attaccato a un altro dispositivo bluetooth ). Come faccio a far capire (?) al bluetooth del led che con un comando deve far accendersi...ovviamente ci deve essere un circuito e un microprocessore...ma come faccio a programmarli? Premetto che conosco la struttura della cpu, dei registri, del bus ecc... ma non capisco come vengono programmati.
Spero riusciate a capire il mio problema, in caso contrario non esitate a chiedere chiarimenti. Inoltre se aveste capito sapreste consigliarmi qualche libro, manuale o sito che chiarisca questi aspetti?
Grazie :)

Daniels118
16-07-2014, 15:42
Non so darti risposte specifiche relativamente a python e java, sicuramente ci saranno delle librerie per accedere alle varie interfacce hardware.
Per quanto riguarda il bluetooth devi sapere che tale sistema prevede vari "profili" che consentono di realizzare diversi tipi di applicazioni.
Il più generico a mio parere è quello di "porta seriale": sul pc vedrai il bluetooth come una porta seriale virtuale (alla quale si può accedere come se fosse un file, oppure tramite le api specifiche), mentre il modulo esporrà un'interfaccia seriale con un protocollo standard tipo UART, facilmente interfacciabile con un microcontrollore, dal quale potrai pilotare le uscite digitali per accendere il led.
Come vedi ci sono un bel po' di cose da studiare, sul mercato inoltre puoi trovare soluzioni più o meno pronte, la scelta dipende soprattutto da qual'è il tuo obiettivo.
In rete trovi molto materiale, comincia a vedere qui per farti un'idea:
http://forum.arduino.cc/index.php?topic=104903.0

!fazz
21-07-2014, 11:56
Ciao a tutti, da qualche mese sto leggendo manuali e libri per apprendere python e java, ma più mi addentro in questi linguaggi più mi vengono domande su come lavorano con l'hardware. Mi spiego meglio: da tempo penso a come poter, per esempio, far accendere un led inviando un comando via bluetooth dal mio dispositivo ( ovviamente il led è attaccato a un altro dispositivo bluetooth ). Come faccio a far capire (?) al bluetooth del led che con un comando deve far accendersi...ovviamente ci deve essere un circuito e un microprocessore...ma come faccio a programmarli? Premetto che conosco la struttura della cpu, dei registri, del bus ecc... ma non capisco come vengono programmati.
Spero riusciate a capire il mio problema, in caso contrario non esitate a chiedere chiarimenti. Inoltre se aveste capito sapreste consigliarmi qualche libro, manuale o sito che chiarisca questi aspetti?
Grazie :)


imho stai facendo un gran calderone con un miscuglio di roba talmente varia che è difficile dare una risposta completa

parli di java e python ok ma se non specifichi dove dovrebbero girare i programmi risulta difficile darti una soluzione.

dalle poche informazioni che hai detto io penso di aver capito questo (se ho sbagliato correggimi senza problemi)
tu hai un dispositivo (pc o smart device) che deve comunicare in bt con una dispositivo elettronico (una scheda) dotata di led e di una radio bt

allora in questo caso la soluzione che di solito si usa è fare il pairing delle radio bt e aprire una connessione con profilo SPP (serial port) una volta fatto questo il cellulare / pc dovrà scrivere su quella seriale (il bt ti crea una seriale virtuale sul pc) un determinato comando (es. la stringa ledON ) la scheda elettronica comunicherà in uart (una seriale con i livelli elettrici da bus interno) con il microcontrollore a bordo della scheda che dovrà, con il codice nel micro, identificare il messaggio e alzare il registro del microcontrollore corrispondente al porto su cui è collegato il led ed è tutto

ingframin
22-07-2014, 14:05
Ciao a tutti, da qualche mese sto leggendo manuali e libri per apprendere python e java, ma più mi addentro in questi linguaggi più mi vengono domande su come lavorano con l'hardware. Mi spiego meglio: da tempo penso a come poter, per esempio, far accendere un led inviando un comando via bluetooth dal mio dispositivo ( ovviamente il led è attaccato a un altro dispositivo bluetooth ). Come faccio a far capire (?) al bluetooth del led che con un comando deve far accendersi...ovviamente ci deve essere un circuito e un microprocessore...ma come faccio a programmarli? Premetto che conosco la struttura della cpu, dei registri, del bus ecc... ma non capisco come vengono programmati.
Spero riusciate a capire il mio problema, in caso contrario non esitate a chiedere chiarimenti. Inoltre se aveste capito sapreste consigliarmi qualche libro, manuale o sito che chiarisca questi aspetti?
Grazie :)

Fondamentalmente hai chiesto un universo :)
Nel caso specifico del bluetooth puoi usare la libreria pySerial (per la porta seriale) e il modulo ARF 52 http://www.adeunis-rf.com/fr/produits/bluetooth/arf52 e collegarlo al pc tramite un modulino FT232 che è un bridge da USB a RS-232.
http://www.ftdichip.com/Products/ICs/FT232R.htm
Ti consiglio di studiare un po' di elettronica prima di mettere mano a qualunque cosa, magari puoi giocare in parallelo con roba low cost come il raspberry pi o arduino.
Altri siti da vedere:
https://www.sparkfun.com/
http://www.electroyou.it/
http://dangerousprototypes.com/
https://www.youtube.com/user/adafruit

Un'altra buona cosa sarebbe iscriversi a ing. elettronica, se ancora devi iniziare l'università :)
Enjoy!

Daniels118
22-07-2014, 14:28
[..] il modulo ARF 52 http://www.adeunis-rf.com/fr/produits/bluetooth/arf52 e collegarlo al pc tramite un modulino FT232 che è un bridge da USB a RS-232.
http://www.ftdichip.com/Products/ICs/FT232R.htm
[..]
Attenzione! Quel modulo non può essere interfacciato direttamente con una porta rs232, si friggerebbe. Lato pc ci sono dei moduli bluetooth che hanno già la porta usb, il modulo da te indicato invece può essere interfacciato direttamente ad un microcontrollore (ma occhio alla tensione del segnale!).

!fazz
22-07-2014, 15:38
Attenzione! Quel modulo non può essere interfacciato direttamente con una porta rs232, si friggerebbe. Lato pc ci sono dei moduli bluetooth che hanno già la porta usb, il modulo da te indicato invece può essere interfacciato direttamente ad un microcontrollore (ma occhio alla tensione del segnale!).

già, se proprio vuoi per forza utilizzare un modulo particolare con il pc e non un classico dongle ti devi costruire almeno una schedina di interfaccia con alimentazione e un convertitore di segnale uart->rs232 (il classico max232)

una roba come tipo questa anche un pò meno complicata (quella nell'immagine ha 2 canali seriali e funziona anche come sniffer e porto di debug per il modulo)

http://i59.tinypic.com/2s9q2pw.jpg

Q_Q
22-07-2014, 17:36
Io per collegare un modulo bt che va a 3.3v alla seriale sul pc (usb con segnali a 5v) ho usato un partitore solo su tx pc -> rx bt, da bt a pc sono andato diretto :stordita:

ingframin
23-07-2014, 07:54
A parte che il pc probabilmente ha già il bluetooth...
L'ARF52 esce a 3.3V ed è fatto per essere interfacciato con microcontrollori o simili.
Nel mio messaggio avevo suggerito, se uno vuol collegarlo al pc, di usare l'ft232 che è uart 5 o 3.3V da un lato e USB dall'altro.
Se proprio uno ancora avesse una uart di "vecchio tipo" c'è il max232 che è un traslatore di livello.

Usare un partitore di tensione non fa altro che deteriorare la qualità del segnale perché disadatti l'impedenza del cavo. La UART fu fatta con livelli tra 0 e -12V per aumentare la distanza di trasmissione, se esci a 12V a fine linea ne hai circa 3 o 4.
Per distanze più lunghe di 100m (non sono sicuro del numero, ma era qualcosa del genere) fu inventato il modem che trasmetteva il segnale della UART in modulazione di frequenza.
La parentesi storica è for free :p
In ogni caso mi fa piacere vedere quanta gente gioca con l'elettronica, ci vorrebbe una sezione del forum a parte :D

!fazz
23-07-2014, 07:54
Io per collegare un modulo bt che va a 3.3v alla seriale sul pc (usb con segnali a 5v) ho usato un partitore solo su tx pc -> rx bt, da bt a pc sono andato diretto :stordita:

seriale a 5V?

Daniels118
23-07-2014, 08:30
A parte che il pc probabilmente ha già il bluetooth...
L'ARF52 esce a 3.3V ed è fatto per essere interfacciato con microcontrollori o simili.
Nel mio messaggio avevo suggerito, se uno vuol collegarlo al pc, di usare l'ft232 che è uart 5 o 3.3V da un lato e USB dall'altro.
[..]
Ah, scusami, siccome avevi scritto "...FT232 che è un bridge da USB a RS-232" avevo dato per scontato che quel chip convertisse al livello della rs232, mentre in realtà è a livello TTL.
In ogni caso mi fa piacere vedere quanta gente gioca con l'elettronica, ci vorrebbe una sezione del forum a parte
Fa piacere anche a me :D

Daniels118
23-07-2014, 08:35
Io per collegare un modulo bt che va a 3.3v alla seriale sul pc (usb con segnali a 5v) ho usato un partitore solo su tx pc -> rx bt, da bt a pc sono andato diretto :stordita:
Non ho capito la frase tra parentesi come si colloca nel discorso... comunque è un sistema che funziona, ma non è esattamente il massimo dell'affidabilità.

Q_Q
23-07-2014, 11:27
Non ho capito la frase tra parentesi come si colloca nel discorso... comunque è un sistema che funziona, ma non è esattamente il massimo dell'affidabilità.

Intendevo che è un patacchino seriale su usb non è una seriale "nativa"