Pagina 1 di 1

Toy hacking

MessaggioInviato: 16 apr 2009, 23:28
da frex
ciao a tutti,

sono un giovane autodidatta alle prime armi in elettronica, per questo spero di non dar fastidio a nessuno, postando in un forum di esperti e professionisti un argomento di così bassa lega :)

qualche giorno fa ho trovato per pochi euro una piccola macchinina radiocomandata, e ho pensato di collegare il chip di controllo del telecomando ad un microcontrollore (nel mio caso un arduino, processore ATmega 328, alimentazione 5V 40 mA) per bypassare l'utilizzo dei pulsanti integrati sul telecomando. Ho visto che il telecomando è alimentato con 4 batterie a bottone da 1.5V (6V tot).
rccontroller.jpg
rccontroller.jpg (28.38 KiB) Osservato 2205 volte


I pulsanti sulla scheda sono tutti collegati allo stesso polo di ground, mentre l'altro capo va ognuno ad un pin diverso dell'IC. Agganciando i fili rossi e il polo ground direttamente ad Arduino, la tensione in circolo è comunque troppo alta e alcuni dei contatti restano sempre chiusi.

Mi piacerebbe sapere se sono costretto a controllare i bottoni per mezzo di elementi esterni (uno per ogni bottone) e se sono comunque costretto ad alimentare il telecomando per mezzo della batteria integrata, o se posso alimentare il sistema prelevando i 5V direttamente dalla USB del PC, collegando i poli ai terminali.
Inoltre, sarei grato a chiunque mi spiegasse perché non funziona niente.

Grazie,
Luca

---
"Il successo è l'abilità di passare da un fallimento all'altro senza perdere l'entusiasmo." W. Churchill

Re: Toy hacking

MessaggioInviato: 16 apr 2009, 23:32
da posta10100
Dalla foto non si vede bene, ma sembra che tu abbia cortocircuitato i contatti dei pulsanti... sbaglio?

Re: Toy hacking

MessaggioInviato: 16 apr 2009, 23:57
da frex
beh...a dire il vero, quando ho smontato il telecomando ho notato che i pulsanti erano composti nientemeno che da una lamella sottile leggermente sollevata, che alla pressione del pulsante chiude il circuito generando una tensione ogni volta su uno dei pin dell'ic presente sulla scheda. Ho dedotto che mi sarebbe bastato collegare arbitrariamente i poli per ottenere il risultato originale, ma comandato via microcontrollore.
rccontroller2i.jpg
rccontroller2i.jpg (24.38 KiB) Osservato 2210 volte


qui un'immagine un po' più grande del pezzo, con tutti i filini saldati

Re: Toy hacking

MessaggioInviato: 17 apr 2009, 0:21
da c1b8
perché non sostituire i contatti meccanici con un 4016 comandato da arduino?

Naturalmente hai verificato che le uscite di arduino dove hai connesso i fili rossi siano normalmente alte e vadano basse solo quando vuoi simulare la pressione del tasto?

forse ci siamo...

MessaggioInviato: 17 apr 2009, 1:28
da frex
grazie fabio! nella prima versione del software, settavo i pin low di default, mentre li accendevo volta per volta per attivarli.

Infatti non andava.

Ho provato adesso a fare il contrario, e il sistema pare reggere. Ho mappato i quattro pin per le quattro azioni di default (poi mi metterò a scrivere per benino il programma per la guida), provandoli volta per volta riesco ad isolare il comportamento di ogni bottone.

A questo punto però il dubbio si infittisce: se imposto il pin con valore "low", non avrò passaggio di tensione, cosa che invece avviene quando premo fisicamente il pulsante. Difatti, per attivare qualsiasi elemento da controllore, si collega un polo a Ground, l'altro ad un pin "alto".

Questa storia non mi è ancora chiara. Chi mi spiega per piacere in due righe dove sbaglio?

grazie a tutti per l'aiuto. buona serata,
Luca

--- di seguito, codice di test per arduino ---

Codice: Seleziona tutto
#define FORWARD 8
#define BACKWARD 9
#define RIGHT 10
#define LEFT 11

void setup() {
  pinMode(FORWARD, OUTPUT);
  pinMode(BACKWARD, OUTPUT);
  pinMode(RIGHT, OUTPUT);
  pinMode(LEFT, OUTPUT);
}

void loop() {
  digitalWrite(FORWARD, LOW);
  digitalWrite(BACKWARD, HIGH);
  digitalWrite(LEFT, HIGH);
  digitalWrite(RIGHT, HIGH);
}

Re: Toy hacking

MessaggioInviato: 17 apr 2009, 10:44
da frex
(un grazie ai moderatori per aver sistemato i miei post confusionari :) )