arduino_bascom_ presepe

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

arduino_bascom_ presepe

Postby massibal » 24 Sep 2012, 08:35

Buongiorno a tutti...
..altro help per il mio presepe ...

collegare con cavo usb il portatile e arduino con bascom in modo da potere gestire le" utenze" in tempo reale oppure se premo interruttore parte il programma del presepe!

Ho preparato in Visual basic (ancora il vecchio 6.0) un programmino con sinottico per fare in modo che mio figlio possa accendere e spegnere le varie "utenze" del presepe ..per puro scopo ludico... il probelma è che con la IDE di Arduino le istruzioni erano piuttosto semplici .. ma adesso con bascom sono in alto mare...
con arduino io avevo scritto così :

if (Serial.available() > 0)
int result = 0 ;
inSerByte = Serial.read();
but = digitalRead(swpin9); // read input value
if (but == LOW) {
inSerByte = 'q' ;
}
switch (inSerByte) {
case 't':
Serial.println("Test COMANDI IN CORSO...");
digitalWrite(ledPin1,LOW);


qualcuno mi può dire come potrei procedere ?
grazie mille

allego foto del sinottico.
Attachments
Sinottico_comandi presepio.jpg
Sinottico_comandi presepio.jpg (74.18 KiB) Viewed 4260 times
User avatar
massibal
 
Posts: 79
Joined: 06 Aug 2012, 11:08

Re: arduino_bascom_ presepe

Postby flz47655 » 24 Sep 2012, 09:18

Io purtroppo non ti posso ancora aiutare con Bascom ma comunque ottimo lavoro, presepe molto tecnologico quest'anno :)

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: arduino_bascom_ presepe

Postby deluca » 24 Sep 2012, 13:28

ancora il vecchio vb6? (che nostalgia !)
ma cmq pensa che ancora molte delle applicazioni che girano nei ns Lab furono sviluppate con vb6 e ancora graficamente accattivanti e molto affidabili anche per l'uso degli ocx national... compatibili LabView.

veniamo al dunque....
per spedire le stringhe di comando con il vb6 ti devi appoggiare al MSComm.output nel formato stringa.
chiaramente prima devi configurare l'oggetto MSComm e devi aprire la porta esatta = a quella della seriale del micro se usi un convertitore
USB->seriale comm
ti faccio un esempio:

nel tuo programma vb6, premendo il pulsante accendi luce, potresti inviare:
MScomm1.output="Luce,1" & vbcr
per spegnerla:
MScomm1.output="Luce,0" & vbcr

lato bascom.
gestendo l'int della uart potresti intercettare la seriale.

Code: Select all
enable interrupts
enable urxc
on urxc seriale
'-----------------
do

loop
end
'-----------------
seriale:
   $timeout=1000000
   input comando noecho
   '-- con split ricavi i campi da comando--
   '-- con select case o if gli fai eseguire quello che vuoi
   '-- accendi una luce, fai muovere qualcosa.

return


questa è solo una linea guida per indicarti il modo come fare....
poi sta a te personalizzare il tutto.

ciao e buon natale vbcr[/b]
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: arduino_bascom_ presepe

Postby omega25 » 24 Sep 2012, 13:54

scusami deluca,
io non devo costruire un presepe, ma la cosa mi interessa ugualmente,
a cosa serve il $timeout perchè non l'ho mai usato
presumo sia una scadenza temporale giusto? ma perchè prima dell'input?
e un'altra cosa comando cosa sarebbe?

grazie tante
omega25
 
Posts: 24
Joined: 04 Aug 2012, 09:33

Re: arduino_bascom_ presepe

Postby massibal » 24 Sep 2012, 15:20

Buongiorno deluca,
grazie, come sempre, del supporto tecnico!
ho però ancora un dubbio .. con arduino (senza bascom) ... inviavo da VB caratteri asci .. (vedi listato)


Code: Select all
Private Sub Form_Load()
  Dim COM As Integer 
  COM = 0
  COM = InputBox("   INSERISCI PORTA SERIALE  ", "PORTA COM")
  MSComm1.CommPort = COM
  MSComm1.Settings = "115200,N,8,1"
  MSComm1.RThreshold = 1
  MSComm1.PortOpen = True
  Label3.Caption = "COM" & COM
End Sub

Private Sub MSComm1_OnComm()
    Dim Rx As String
    Rx = MSComm1.Input
    If Len(Rx) Then ' Se ho ricevuto qualcosa lo scrivo nella TextBox
       Text1.Text = Rx
    End If
     If MSComm1.PortOpen = True Then
        Shape1.FillColor = &HFF00&
     Else
        Shape1.FillColor = &HFF&
     End If
End Sub
Private Sub Check1_Click()
     If MSComm1.PortOpen = True Then
        Shape1.FillColor = &HFF00&
     Else
        Shape1.FillColor = &HFF&
     End If
End Sub
     
Private Sub Command6_Click()
MSComm1.Output = Chr$(103)
Shape2.FillColor = &HFF00&
End Sub


...............però adesso con Bascom io dovrei alzare o abbassare dei PIN ..e quindi non capisco che comando devo utilizzare..in VB per dire di inviare via seriale il comando per alzare un Pin )( e quindi accendere un relè!)

se riuscissi ad inviarmi anche solo due righe di programma come esempio ... grazie in anticipo

saluti
massibal
User avatar
massibal
 
Posts: 79
Joined: 06 Aug 2012, 11:08

Re: arduino_bascom_ presepe

Postby deluca » 24 Sep 2012, 17:57

Di seguito il pseudo codice da cui puoi prendere spunto per azionare le varie uscite.
L'ho buttato così in 30 sec quindi devi attenzionarlo e modificarlo per le tue necessità.

Bascom:
Code: Select all
dim cmd as string * 10
dim a(2) as string * 5
dim b as byte

input cmd noecho
b=split(cmd,(a(1),",")
select case a(1)
       case "Luce" 
         if a(2)="1" then portb.0=1 'alza il bit
         if a(2)="0" then portb.0=0 'abbassa il bit
end select



VB6:
Code: Select all
Private Sub Command1_Click()
    MSComm1.Output = "Luce,1" & vbCr
End Sub

Private Sub Command2_Click()
    MSComm1.Output = "Luce,0" & vbCr
End Sub

ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: arduino_bascom_ presepe

Postby massibal » 24 Sep 2012, 20:44

grazie mille !!! per i tuoi utilissimi consigli !!mi space che siano sempre a senso unico !

domani mi ci metto d'impegno!!

buonaserata

Massibal
User avatar
massibal
 
Posts: 79
Joined: 06 Aug 2012, 11:08


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 14 guests

cron