Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Truc de fainéant
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1402
Âge : 69
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#1 Message par F6FCO » dim. 11 févr. 2024 12:04

Hello les gens,

Un robot qui ferait du morse à ma place.
Comme je l'ai dis ailleurs je suis très occupé en ce moment par mon installation solaire et je n'ai pas trop le temps de m'investir dans de gros projets. Mais comme le virus du codage me titille je me suis trouvé un petit truc pas trop compliqué à faire, un petit robot qui lancerait appel en morse sur la fréquence à ma place.
Petite explication si on ne connait pas l'univers Radioamateur: Pour faire un contact on peut soit rechercher sur la fréquence un autre radioamateur qui lance appel, on lui répond et on cause. Si personne sur la bande on lance appel en faisant CQ CQ CQ de F6FCO en morse jusqu'à ce que quelqu'un m'entende et me réponde. Tributaire de la propagation parfois çà peut durer assez longtemps et devenir fastidieux, d'ou l'idée d'automatiser le truc.

Ca a été déjà fait avec des arduinos pilotant un relais, j'en même intégré un à ce montage ici mais c'est quelques chose de commun, c'est bien plus rigolo si le robot appuie sur un vrai manipulateur à ma place. J'ai dans l'idée de fabriquer un index et un pouce robotiques avec l'imp3D mais pas trop le temps d'étudier çà en ce moment alors pour cette version j'utilise deux electro-aimants a deux pouloutes de chez Aliex.
Pour l'instant j'ai construis le truc, première utilisation de mon imp3D pour faire la plaque support et les doigts. Pour l'instant c'est inerte, reste plus qu'à faire le code.
Soit dit en passant la plaque électronique peut servir à commander n'importe quoi d'autre, les deux mosfets sont assez costauds.

P1060683.JPG


Schéma CQ electro aimants.JPG


implantation CQ electro aimants.JPG
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Truc de fainéant
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2547
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » dim. 11 févr. 2024 21:12

Bonsoir F6FCO, et tout le forum,

F6FCO a écrit :Source du message Un robot qui ferait du morse à ma place.

La seule chose que tu n'auras pas, c'est le plaisir de faire du morse si c'est la machine qui le fait à ta place.

:roll: Un truc de fainéant :-D ben je ne pense pas, car rien que le contruire il faut s'investir, mais ça m'a fait bien :lol: il y a que toi pour faire des trucs comme cela.

:bravo:

Et en plus tu prévois de fabriquer un index et un pouce, c'est encore plus marrant .... :sifflotte: pendant que tu y es, pourquoi pas une main entiere :lol:

Merci ! pour le partage de cette réalisation

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Truc de fainéant
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1402
Âge : 69
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#3 Message par F6FCO » dim. 11 févr. 2024 23:50

Hello,

La seule chose que tu n'auras pas, c'est le plaisir de faire du morse si c'est la machine qui le fait à ta place.

C'est juste pour lancer appel, dés que j'ai un client je reprends la main. De toutes façons le code morse de l'appel sera gravé en dur dans le code, donc c'est toujours la même chose qui sortira.

Temps-x a écrit : :sifflotte: pendant que tu y es, pourquoi pas une main entiere :lol:


Ah mais la main bionique c'est dans les tuyaux :-D, c'est même un peu pour çà que j'ai terminé l'imp3D.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Truc de fainéant
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2570
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#4 Message par paulfjujo » lun. 12 févr. 2024 10:28

bonjour à tous,


:+1: Tes projets sont toujours aussi interessants !

As-tu déja mis en service le programme ?
:!!: sans soucis avec la commande d' electro-aimants ?
surtensions, EMC ... etc ..
Aide toi, le ciel ou FantasPic t'aidera

Truc de fainéant
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1402
Âge : 69
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#5 Message par F6FCO » jeu. 15 févr. 2024 17:58

Non pas encore touché au code, j'ai le virus 3D en ce moment et je planche sur un doigt robotique qui sera la version V2 de ce projet. Au niveau code il n'y aura rien de sensationnel, juste définir les durées des traits et points et actionner les électro-aimants suivant les lettres à envoyer. En l'occurrence "CQ CQ CQ de F6FCO K", CQ veut dire appel général et "K": répondez svp. Je ne saturerai pas la ram avec çà.
Pour la commande des electro-aimants, ce sont de tout petits, courant inverse faible, sur broadboard les mosfets les commandent facilement et je n'ai même pas mis de diode de roue libre (oubliées quand j'ai conçu le circuit, au pire j'en rajouterai en volant si besoin).
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Truc de fainéant
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2547
Enregistré en : juillet 2016
Localisation : Terre

#6 Message par Temps-x » ven. 16 févr. 2024 02:18

Bonsoir F6FCO, paulfjujo, et tout le forum,

F6FCO a écrit :Source du message Au niveau code il n'y aura rien de sensationnel, juste définir les durées des traits et points et actionner les électro-aimants suivant les lettres à envoyer.

Donc.... les electro-aimants ne sont pas obligatoire, sorti pic... un transistor 2N2222A suivit d'un simple haut parleur suffirait pour faire le bruit que tu veux (voir lecture d'un fichier son avec pic, sous format wav)

Je suppose que ça fait plus fun avec la manette qu'on voit fonctionné....

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Truc de fainéant
gwion
Amateur
Amateur
Messages : 179
Enregistré en : février 2022

#7 Message par gwion » ven. 16 févr. 2024 11:59

Bonjour tout le monde,

Jolie et amusante réalisation, bravo :)
Je trouve que le top du top serait un mécanisme motorisé qui entraîne une bande perforée sans fin (genre bande pilote d'imprimante pour ceux qui ont connu les temps héroïques). Les perforations sur 2 colonnes (détection optique ou électrique) déclencheraient la bonne action du doigt pour envoyer le trait ou le point. Cadence réglable via le moteur.

Truc de fainéant
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1402
Âge : 69
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#8 Message par F6FCO » ven. 16 févr. 2024 14:34

Je ne pensais pas que la conversation deviendrait aussi intéressante :wink:
Avant d'attaquer le prog, pour les tests il faut que je fabrique un petit buzzer déclenchable, dans le genre de celui que j'ai utilisé dans le projet filetages au tour. Faut juste trouver le temps de faire le circuit et le graver.

Donc.... les electro-aimants ne sont pas obligatoire, sorti pic... un transistor 2N2222A suivit d'un simple haut parleur suffirait pour faire le bruit que tu veux (voir lecture d'un fichier son avec pic, sous format wav)

Je suppose que ça fait plus fun avec la manette qu'on voit fonctionné....


Oui c'est plus fun. Mais un HP ne suffit pas car il faut aussi commander l'entrée manipulation de l'émetteur HF. C'est le contact quand on presse la palette du manipulateur qui place l'émetteur en émission de porteuse. Certains (dont je fais partie) ont fait un petit programme qui manipule un relais branché sur l'émetteur, voir le lien plus haut. Mais tu as raison c'est plus fun de remplacer les doigts pour manipuler un vrai manipulateur morse, et pour la v2 je pense à des doigts robotiques.

Jolie et amusante réalisation, bravo :)
Je trouve que le top du top serait un mécanisme motorisé qui entraîne une bande perforée sans fin (genre bande pilote d'imprimante pour ceux qui ont connu les temps héroïques). Les perforations sur 2 colonnes (détection optique ou électrique) déclencheraient la bonne action du doigt pour envoyer le trait ou le point. Cadence réglable via le moteur.


C'est une idée qui m'a déjà traversée la tête :wink: dans le style j'ai connu et utilisé les bandes perforées de téléimprimeur à 5 moments. Dans le genre orgue de barbarie j'avais fait un projet similaire avec un vieux disque CD-ROM et un petit moteur d'imprimante, j'avais perforé le pourtour du disque à la CNC, des trous Ø3 pour les points et des lumières valant 3 trous pour les traits. Une led et une LDR commandaient un relais. J'étais limité par la circonférence du CD, je n'avais réussi à placer que "CQ de F6FCO K". Pas de programmation, çà manipulait en direct.

C'est ballot je ne retrouve plus les photos.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Truc de fainéant
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1402
Âge : 69
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#9 Message par F6FCO » ven. 16 févr. 2024 23:33

Re-hello,

Finalement çà a été trop vite et je reste un peu sur ma faim. J'ai terminée l'extension buzzer qui s'adapte à mes platines de dev et j'ai terminé le programme.

J'ai créé quelques macros pour la génération des lettres suivant les préceptes du code morse et il a suffit d'indiquer quelles lettres envoyer.

Code : Tout sélectionner

;**********************************************************************
;                                                                     
;    
NOM:    CQ automatique avec electro-aimants                                          
;    Date:    fev 24                                           
;    Auteur:    F6FCO  JC Buisson                                       
;         xtal:       8Mhz interne                                                 
;         
;                                                                     
;**********************************************************************
    List 
p=16F88                     
    
#include <p16F88.inc>

    
__CONFIG    _CONFIG1_CP_OFF _CCP1_RB0 _DEBUG_OFF _WRT_PROTECT_OFF _CPD_OFF _LVP_OFF _BODEN_OFF _MCLR_ON _PWRTE_OFF _WDT_OFF  _INTRC_IO
    __CONFIG    _CONFIG2
_IESO_OFF _FCMEN_OFF 
      
OPTIONVAL    EQU    H
'0008'            

; ---------------------------------------------------------------------

#define pous1        PORTA,0            ; démarrage message
#define pous2        PORTA,1            ; stop message

; -------------- Variables de luminosité atelier
#define declenchLever    0x5            ; valeur pour essais en atelier
#define declenchCoucher    0xd0            ; Valeur pour essais en atelier

BANK0    macro
    bcf    STATUS
,RP0            passer banque0
    endm

BANK1    macro
    bsf    STATUS
,RP0            passer banque1
    endm
    
    
tempo_base    macro
    call    tempo50ms
    endm
    
index    macro
    bsf    PORTB
,4
    tempo_base
    endm
    
pouce    macro
    bsf    PORTB
,5
    tempo_base
    endm
    
espace1    macro
    bcf    PORTB
,4
    bcf    PORTB
,5
    tempo_base
    endm
    

trait_pouce    macro
    pouce
    pouce
    pouce
    pouce
    espace1
    endm
    
point_pouce    macro
    pouce
    espace1
    endm
    
trait_index    macro
    index
    index
    index
    index
    espace1
    endm
    
point_index    macro
    index
    espace1
    endm
    
espace3    macro
    espace1
    espace1
    espace1
    endm
    
c    macro
    trait_index
    point_pouce
    trait_index
    point_pouce
    espace3
    endm
    
q    macro
    trait_index
    trait_pouce
    point_index
    trait_pouce
    espace3
    endm
    
d    macro
    trait_index
    point_pouce
    point_index
    espace3
    endm
    
e    macro
    point_index
    espace3
    endm
    
f    macro
    point_index
    point_pouce
    trait_index
    point_pouce
    espace3
    endm
    
chiffre6    macro
    trait_index
    point_pouce
    point_index
    point_pouce
    point_index
    espace3
    endm
    
o    macro
    trait_index
    trait_pouce
    trait_index
    espace3
    endm
    
p    macro
    point_index
    trait_pouce
    trait_index
    point_pouce
    espace3
    endm
    
s    macro
    point_index
    point_pouce
    point_index
    espace3
    endm
    
k    macro
    trait_index
    point_pouce
    trait_index
    espace3
    endm
    
    CBLOCK 0x020                   
        Reg_1        
:1
        Reg_2        
:1
        Reg_3        
:1
        Reg_4        
:1
        Reg_5        
:1
    ENDC                                             

    org     0x0000            
Adresse de départ après reset  
init
    BANK1    
    movlw    
b'01101110'
    
movwf    OSCCON            Horloge interne à 4Mhz
    movlw    OPTIONVAL        
    movwf    OPTION_REG        
initialiser registre option
    movlw    
b'00000011'
    
movwf    TRISA
    movlw    
b'00000000'
    
movwf    TRISB    
    
    
; ------------------- config ADC
    movlw    
b'00000000'        digital
    movwf    ANSEL
    movlw    
b'00000000'        Vref entre VDD et VSS
    movwf    ADCON1
    bcf    ADCON1
,6        
    
bcf    ADCON0,7        ;
    
bsf    ADCON0,6        ;
    
BANK0

    
;bsf    ADCON0,ADON        convertisseur ON
    
    
;bcf    ADCON0,5        on 
    
;bsf    ADCON0,4        échantillonne le 
    
;bcf    ADCON0,3        canal an2
    

    clrf    PORTA            

    
clrf    PORTB

    
;   --> vers main
    
    


Code : Tout sélectionner

#include <CQ_init 16fev24.asm>
    
main
    
gestion poussoirs
    btfss    pous1
    call    emission
    
goto    main
    
emission

    btfss    pous2
    
return
        
    
c
    q
    espace3
    
    btfss    pous2
    
return
 
     
c
    q
    espace3
    btfss    pous2
    
return
    
    
c
    q
    espace3
    btfss    pous2
    
return

    
d
    e
    espace3
    
    btfss    pous2
    
return
        
    
f
    chiffre6
    f
    c
    o
    espace3
    
    btfss    pous2
    
return
        
    
f
    chiffre6
    f
    c
    o
    espace3
    
    btfss    pous2
    
return
        
    
p
    s
    e
    espace3
    
    btfss    pous2
    
return
        
    
k
        
    
;btfss    pous2
    
;return
        

    
espace3
    espace3
    espace3
    espace3
    espace3
    espace3
    espace3
    espace3
    espace3
    
    
    
return
    
            
    
#include <CQ_tempo 16fev24.asm>
    
    
END     
        

        



Code : Tout sélectionner

       
tempo100ms
Délai 100 000 Cycles de la machine
Durée du délai 100 millisecond
Fréquence de l'oscillateur 4 MHZ
        movlw       .221
        movwf       Reg_1
        movlw       .130
        movwf       Reg_2
        decfsz      Reg_1,F
        goto        $-1
        decfsz      Reg_2,F
        goto        $-3
        nop
        nop
        return    
    

tempo_base
; 100ms
; Délai 100 000 Cycles de la machine
; Durée du délai 100 millisecond
; Fréquence de l'
oscillateur 4 MHZ
        movlw       .221
        movwf       Reg_1
        movlw       .130
        movwf       Reg_2
        decfsz      Reg_1
,F
        
goto        $-1
        decfsz      Reg_2
,F
        
goto        $-3
        nop
        nop
        
return
        
tempo50ms
Délai 50 000 Cycles de la machine
Durée du délai 50 millisecond
Fréquence de l'oscillateur 4 MHZ

            movlw       .238
            movwf       Reg_1
            movlw       .65
            movwf       Reg_2
            decfsz      Reg_1,F
            goto        $-1
            decfsz      Reg_2,F
            goto        $-3
            nop
            return    


Le résultat:

https://www.youtube.com/watch?v=RNEY5evRfq4
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Truc de fainéant
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2547
Enregistré en : juillet 2016
Localisation : Terre

#10 Message par Temps-x » dim. 18 févr. 2024 01:42

Bonsoir F6FCO, et tout le forum,

J'ai regardé ton code il à l'air d'être ok, mais attention car j'ai cru remarqué que tu ne déclare pas dans l'en tête de ton programme de quelle nature son tes nombres, décimal, hexadéximal.....

voici ce qu'il faudrait faire

Code : Tout sélectionner


   radix dec                             
; par defaut en mode décimal
   


Tu pourrais avoir des supprises en négligeant cette déclaration, 255 décimal c'est pas la même chose que 255 hexadécimal


L'assembleur c'est pas du C :langue: Faut rien négliger.


==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité