gres
Full Member level 4
Research object was to build remote control that could steering for high range ( minimum 5-8km, max global) with very low costs. I used those elements: Control -receiver engine (Attiny2313, MT8870, L293D) Two rebuilt model - making servomechanism, Used cycling chain and cassette , 2 PMR ( private mobile radio)
4xAA 2700mAh
4xAAA900mAh
Aluminum trunk, tight by steal screw
Steering chip
Steering chip board
DTMF decoder
H bridge
To sending signals we use DTMF (Dual Tone Multi Frequency) - that thanks to MFSK ( Multiple frequency shift keying) can key two frequency's.
DTMF signal is made to send via audio track, so it's perfect to use by cell phones, short wave radios, cb radios, VoIP and more. I used very cheap short waves. There are un useless for speech, but here works perfect.
As a transmitter there are two devices - short wave radio and dtmf generator - nokia 6120 mobile . They are connected via headphones output ( 2,5 jack - 2,5 jack that is connect to nokia's speaker and short wave radio's microphone).
MT8870 chipset decodes DTMF signal
At StD pin of MT8870 chipset apear high condition at moment of getting signal and decoding right DTMF code at q1-q4 pin. So: If we press the button on mobile - at StD pin appear 1 and at q1-q4 pins e.g. 1001, if we release button on mobile - StD appear 0 , at pins q-q4 e.g.1001
ATtiny 2313 is responsible for decoding those five 0 and 1.
ATtiny works :
$regfile = "2313def.dat"
$crystal = 8000000 ' uC deprecated
'$noramclear
Config Portb.3 = Input
Config Portb.2 = Input
Config Portb.1 = Input
Config Portb.0 = Input
Config Portd.6 = Input
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Motor_lp Alias Portd.2 'port deprecated
Steering engines throught bridge
Motor_lt Alias Portd.3
Motor_pp Alias Portd.4
Motor_pt Alias Portd.5
'input ports deprecated (decoder)
Sygnal Alias Pinb.3
A Alias Pinb.2
B Alias Pinb.1
C Alias Pinb.0
D Alias Pind.6
Orders give on the ground of input situations
Orders give on the ground of input situations
to
If Sygnal = 1 And A = 0 And B = 0 And C = 1 And D = 0 Then
Gosub Prosto
Elseif Sygnal = 1 And A = 0 And B = 1 And C = 1 And D = 0 Then 'turn left
Gosub Prawo
Elseif Sygnal = 1 And A = 0 And B = 1 And C = 0 And D = 0 Then 'turn left
Gosub Lewo
Elseif Sygnal = 1 And A = 1 And B = 0 And C = 0 And D = 0 Then 'turn right
Gosub Tyl
Elseif Sygnal = 0 Then
Gosub Stopp
End If
Loop
Prosto: 'straight, operating mode for engines
Motor_lt = 0
Motor_pt = 1
Motor_pp = 0
Motor_lp = 1
Return
Lewo: 'left
Motor_lt = 1
Motor_pt = 1
Motor_pp = 0
Motor_lp = 0
Return
Prawo: 'right
Motor_lt = 0
Motor_pt = 0
Motor_pp = 1
Motor_lp = 1
Return
Stopp:
Motor_lt = 0
Motor_pt = 0
Motor_pp = 0
Motor_lp = 0
Return
Tyl: 'backward
Motor_lt = 1
Motor_pt = 0
Motor_pp = 1
Motor_lp = 0
All program is very similar to the simplest followers - a few logic gates are steering both engines via H bridge.
More information at:
https://www.elektroda.pl/rtvforum/topic1510222.html?sid=87a127aefb6e0d61a656cb4e9c262642