Aller au contenu
  • 0

scooter chinois banc d'essai à inertie scooter 70cc


Kymco27000
 Partager

Question

Slt, j ai dans l idee de me faire un banc d essai homemade pour mes scoots ( ba voui il me reste une tonne de microcontroleur ATmega128, du fil et un peu d'étain et j sais pas quoi en foutre...sans compter une licence dot.net et matlab qui dorment depuis des lustres...)....avec un volant à inertie ( enfin un truc lourd de forme circulaire :) que j ai récupéré dans un champ de betteraves qui a la possibilité d effectuer une rotation plus ou moins patatoïdale)...les scoots tournent aux environ de 10 000 tr/min au vilebrequin (roue de 12 pouces) vous avez une idee du moment d inertie necessaire pour le volant pour simuler l'adhérence et les contraintes liées à une route en bitume? .........ou du nombre de dents qu'il me restera à la fin de la réalisation? :)

J'suis preneur de toute info....poids, diamètre, longueur, largeur, profondeur, quantité, (lol) du volant pour un banc classique de 50cc...

merci ! ;)

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

Messages recommandés

  • 0

lol "futura science" comment j viens de les moucher c'est bande de bouffons.....ce sont vraiment des guignoles... :)

http://forums.futura-sciences.com/electronique/784343-tachymetre-scooter-50cc-cem-2.html#post5861009

franhement j aurais dû être comique j'ai loupé ma vocation... :(

 

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

  • 0

lol avant j vais aussi moucher le forum aduino...parceque j suis joueur...

http://forum.arduino.cc/index.php?topic=463506.msg3182635#msg3182635

bon j dois avouer que j'ai la soluce au problème mais le temps joue contre moi...j attends des pieces de mon fournisseur radiospare et j pense les avoir que lundi au plus tôt...pour ça je taquine en attendant.....;) parcequ ils vont sûrement m enfermer avant...

j sais pas si vous avez lu mes post sur futura sciences et les autres sur arduino mais moi j me fend la poire...c'est inconcevable d être comme je suis......honte à moi.... :(

j espère que ma mère ne lira pas tout ça....

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

  • 0

oki 03h08 j viens de dépasser les limites .... oki mais m'ont chauffer les types aussi ! :( let's see what happen! 

http://forum.arduino.cc/index.php?topic=463506.0

non maman c'est pas ton fils qui a parlé comme cela non non je ne saurais points m'exprimer ainsi fichtre! :/ quel odieux personnage.... :(

 

...si on vous demande vous me connaissez pas hein!? ....:(

zavez pas une idee de forum sur lequel j pourrais poster ma requête?

juste pour les emmerder....?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Faut que je me trouve un homme à abattre... >:(

ou une solution à ce blème... :)

Ptain ce matin j me lève ...plus rien dans le programme VB...la loose j'ai dû tout réécrire....ça m'a pris 3 minutes lol ... donc j vais utilisé ce bloc note c'est bien !...

Imports System
Imports System.IO.Ports
Imports System.Threading

Public Class Form1

    Dim comPORT As String
    Dim receivedData As String = ""
    Dim commandCount As Integer = 0

    Dim Pi As Decimal = 3.1415927
    Dim NbDec As Integer = 2
    Dim start As Boolean = False

    'Valeurs initiales modifiables
    Dim Interval As Integer = 50
    Dim MassRouleau As Decimal = 35.02
    Dim DiamRouleau As Decimal = 0.3
    Dim MassScoot As Integer = 65
    Dim MassPilote As Integer = 65
    Dim RatioPilRoue As Decimal = 0.6154
    Dim g As Decimal = 9.81
    Dim CircRoue As Decimal = 1.46
    Dim CoefFr As Decimal = 0.8
    Dim CoefRl As Decimal = 20.0

    'Valeurs enregistrées non-modifiables
    Dim TempAmb As Integer = 0
    Dim TempMot As Integer = 0
    Dim TrMinVilbIni As Integer = 980
    Dim TrMinVilbFin As Integer = 0
    Dim TrMinRoueIni As Integer = 0
    Dim TrMinRoueFin As Integer = 0

    'Valeurs calculées non-modifiables
    Dim MIRoul As Decimal = 0.5 * MassRouleau * ((DiamRouleau / 2) * (DiamRouleau / 2))
    Dim RayRoue As Decimal = CircRoue / (2 * Pi)
    Dim VitVIni As Decimal = 0
    Dim VitVFin As Decimal = 0
    Dim VitAngVIni As Decimal = 0
    Dim VitAngVFin As Decimal = 0
    Dim VitAngRIni As Decimal = 0
    Dim VitAngRFin As Decimal = 0
    Dim AccAng As Decimal = 0
    Dim EffTang As Decimal = 0
    Dim CplResRl As Decimal = 0
    Dim RapDem As Decimal = 0
    Dim VitRoueKMH As Decimal = 0
    Dim CplRoue = 0
    Dim CplMot = 0
    Dim PssWt = 0
    Dim PssCv = 0

    Public Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
        If (TrMinVilbFin > TrMinVilbIni) Then
            Dim DN As String = Date.Now
            DataGridView1.Rows.Add(DN, Label1.Text, Label2.Text, Label3.Text, Label4.Text)
            Chart1.Series(0).Points.AddXY(Label3.Text, Label1.Text)
            Chart1.Series(1).Points.AddXY(Label3.Text, Label2.Text)
            Chart1.Series(2).Points.AddXY(Label3.Text, Label4.Text)
        ElseIf TrMinVilbFin <= TrMinVilbIni Then
            Timer1.Enabled = False
        End If
    End Sub

    Function ReceiveSerialData() As String
        ' returns new data from the serial connection
        Dim Incoming As String
        Try
            Incoming = SerialPort1.ReadExisting()
            If Incoming Is Nothing Then
                Return "nothing" & vbCrLf
            Else
                Return Incoming
            End If
        Catch ex As TimeoutException
            Return "Error: Serial Port read timed out."
        End Try

    End Function

    Function parseData()

        ' uses the global variable receivedData
        Dim pos1 As Integer
        Dim pos2 As Integer
        Dim length As Integer
        Dim newCommand As String
        Dim done As Boolean = False

        While (Not done)

            pos1 = receivedData.IndexOf("<") + 1
            pos2 = receivedData.IndexOf(">") + 1

            'occasionally we may not get complète data and the end marker will be in front of the start marker
            ' for exampe "55><"
            ' if pos2 < pos1 then remove the first part of the string from receivedData
            If (pos2 < pos1) Then
                receivedData = Microsoft.VisualBasic.Mid(receivedData, pos2 + 1)
                pos1 = receivedData.IndexOf("<") + 1
                pos2 = receivedData.IndexOf(">") + 1
            End If

            If (pos1 = 0 Or pos2 = 0) Then
                ' we do not have both start and end markers and we are done
                done = True

            Else
                ' we have both start and end markers

                length = pos2 - pos1 + 1
                If (length > 0) Then
                    'remove the start and end markers from the command
                    newCommand = Mid(receivedData, pos1 + 1, length - 2)

                    ' show the command in the text box
                    ' RichTextBox1.AppendText(newCommand & vbCrLf)

                    'remove the command from receivedData
                    receivedData = Mid(receivedData, pos2 + 1)

                    'A for ambiant température 
                    If (newCommand.Substring(0, 1) = "A") Then
                        Label1.Text = newCommand.Substring(1, 3)


                    End If '(newCommand.Substring(0, 1) = "A")

                    'M for motor température 
                    If (newCommand.Substring(0, 1) = "M") Then
                        Label2.Text = newCommand.Substring(1, 3)

                    End If '(newCommand.Substring(0, 1) = "M")

                    'V for vilebrequin speed 
                    If (newCommand.Substring(0, 1) = "V") Then
                        Label3.Text = newCommand.Substring(1, 5)

                    End If '(newCommand.Substring(0, 1) = "V")

                    'R for Rear wheel speed
                    If (newCommand.Substring(0, 1) = "R") Then
                        Label4.Text = newCommand.Substring(1, 5)

                    End If '(newCommand.Substring(0, 1) = "R")

                    VitVIni = VitVFin
                    VitAngRIni = VitAngRFin
                    Label40.Text = Math.Round(VitAngRIni, NbDec)
                    VitAngVIni = VitAngVFin
                    Label38.Text = Math.Round(VitAngVIni, NbDec)

                    TrMinVilbFin = Label3.Text
                    Label49.Text = TrMinVilbFin
                    VitAngVFin = (2 * Pi * TrMinVilbFin) / 60
                    Label39.Text = Math.Round(VitAngVFin, NbDec)
                    TrMinRoueFin = (Label4.Text * (DiamRouleau / 2)) / RayRoue
                    VitVFin = (TrMinRoueFin * CircRoue) / 60
                    VitAngRFin = (2 * Pi * TrMinRoueFin) / 60
                    VitRoueKMH = (TrMinRoueFin * 60) / 1000
                    Label41.Text = Math.Round(VitAngRFin, NbDec)
                    AccAng = ((VitAngRFin - VitAngRIni) / (Interval / 1000))
                    Label42.Text = Math.Round(AccAng, NbDec)
                    EffTang = ((MassScoot + (MassPilote * RatioPilRoue)) * CoefFr) * ((VitVFin - VitVIni) / (Interval / 1000))
                    Label36.Text = Math.Round(EffTang, NbDec)
                    RapDem = TrMinRoueFin / TrMinVilbFin
                    Label44.Text = Math.Round(RapDem, NbDec)
                    Label45.Text = Math.Round(VitRoueKMH, NbDec)
                    CplRoue = ((EffTang * RayRoue) + (MIRoul) + (CplResRl)) * AccAng
                    Label46.Text = Math.Round(CplRoue, NbDec)
                    CplMot = CplRoue * RapDem
                    Label47.Text = Math.Round(CplMot, NbDec)
                    PssCv = (CplMot * TrMinVilbFin * (Pi / 30)) / 735.5
                    Label50.Text = Math.Round(PssCv, NbDec)
                    PssWt = PssCv * 735.5
                    Label48.Text = Math.Round(PssWt, NbDec)

                    commandCount = commandCount + 1
                    commandCountVal_lbl.Text = commandCount

                End If ' (length > 0) 

            End If '(pos1 = 0 Or pos2 = 0)

        End While

    End Function

    Private Sub connect_BTN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles connect_BTN.Click
        If (connect_BTN.Text = "Connect") Then
            If (comPORT <> "") Then
                SerialPort1.Close()
                SerialPort1.PortName = comPORT
                SerialPort1.BaudRate = 115200
                SerialPort1.DataBits = 8
                SerialPort1.Parity = Parity.None
                SerialPort1.StopBits = StopBits.One
                SerialPort1.Handshake = Handshake.None
                SerialPort1.Encoding = System.Text.Encoding.Default 'very important!
                SerialPort1.ReadTimeout = 10000
                SerialPort1.Open()
                connect_BTN.Text = "Dis-connect"
                comPort_ComboBox.Enabled = False
                BackgroundWorker1.RunWorkerAsync()
            Else
                MsgBox("Select a COM port first")
            End If
        Else
            SerialPort1.Close()
            connect_BTN.Text = "Connect"
            comPort_ComboBox.Enabled = True
            comPort_ComboBox.Text = String.Empty
        End If
    End Sub

    Private Sub comPort_ComboBox_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comPort_ComboBox.SelectedIndexChanged
        If (comPort_ComboBox.SelectedItem <> "") Then
            comPORT = comPort_ComboBox.SelectedItem
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Control.CheckForIllegalCrossThreadCalls = False
        'Valeurs initiales modifiables
        NumericUpDown1.Value = Interval
        TextBox1.Text = MassRouleau
        TextBox2.Text = DiamRouleau
        TextBox4.Text = MassScoot
        TextBox3.Text = MassPilote
        TextBox15.Text = RatioPilRoue
        TextBox6.Text = g
        TextBox5.Text = CircRoue
        TextBox20.Text = CoefFr
        TextBox21.Text = CoefRl

        'Valeurs enregistrées non-modifiables
        Label1.Text = TempAmb
        Label2.Text = TempMot
        Label3.Text = TrMinVilbIni
        Label4.Text = TrMinRoueIni
        Label49.Text = TrMinRoueIni

        'Valeurs calculées non-modifiables
        Label35.Text = Math.Round(MIRoul, NbDec)
        Label43.Text = Math.Round(RayRoue, NbDec)
        Label40.Text = 0
        Label38.Text = 0
        Label39.Text = 0
        Label47.Text = 0
        Label46.Text = 0
        Label50.Text = 0
        Label48.Text = 0
        Label44.Text = 0
        Label45.Text = 0
        Label41.Text = 0
        Label42.Text = 0
        Label36.Text = Math.Round(EffTang, NbDec)
        CplResRl = ((MassScoot + (MassPilote * RatioPilRoue)) * (CoefRl / 1000))
        Label37.Text = Math.Round(CplResRl, NbDec)

        Timer1.Enabled = False

        comPORT = ""
        For Each sp As String In My.Computer.Ports.SerialPortNames
            comPort_ComboBox.Items.Add(sp)
        Next

    End Sub

    Private Sub SaveParam()
        'Valeurs initiales modifiables
        Interval = NumericUpDown1.Value
        MassRouleau = TextBox1.Text
        DiamRouleau = TextBox2.Text
        MassScoot = TextBox4.Text
        MassPilote = TextBox3.Text
        RatioPilRoue = TextBox15.Text
        g = TextBox6.Text
        CircRoue = TextBox5.Text
        CoefFr = TextBox20.Text
        CoefRl = TextBox21.Text

        'Valeurs enregistrées non-modifiables
        Label1.Text = TempAmb
        Label2.Text = TempMot
        Label3.Text = TrMinVilbIni
        Label4.Text = TrMinRoueIni

        'Valeurs calculées non-modifiables
        MIRoul = 0.5 * MassRouleau * ((DiamRouleau / 2) * (DiamRouleau / 2))
        Label35.Text = Math.Round(MIRoul, NbDec)
        RayRoue = CircRoue / (2 * Pi)
        Label43.Text = Math.Round(RayRoue, NbDec)
        Label36.Text = Math.Round(EffTang, NbDec)
        CplResRl = ((MassScoot + (MassPilote * RatioPilRoue)) * (CoefRl / 1000))
        Label37.Text = Math.Round(CplResRl, NbDec)
    End Sub
    Private Sub CalculDynamic()
        VitVIni = VitVFin
        VitAngRIni = VitAngRFin
        Label40.Text = Math.Round(VitAngRIni, NbDec)
        VitAngVIni = VitAngVFin
        Label38.Text = Math.Round(VitAngVIni, NbDec)

        TrMinVilbFin = Label3.Text
        Label49.Text = TrMinVilbFin
        VitAngVFin = (2 * Pi * TrMinVilbFin) / 60
        Label39.Text = Math.Round(VitAngVFin, NbDec)
        TrMinRoueFin = (Label4.Text * (DiamRouleau / 2)) / RayRoue
        VitVFin = (TrMinRoueFin * CircRoue) / 60
        VitAngRFin = (2 * Pi * TrMinRoueFin) / 60
        VitRoueKMH = (TrMinRoueFin * 60) / 1000
        Label41.Text = Math.Round(VitAngRFin, NbDec)
        AccAng = ((VitAngRFin - VitAngRIni) / (Interval / 1000))
        Label42.Text = Math.Round(AccAng, NbDec)
        EffTang = ((MassScoot + (MassPilote * RatioPilRoue)) * CoefFr) * ((VitVFin - VitVIni) / (Interval / 1000))
        Label36.Text = Math.Round(EffTang, NbDec)
        RapDem = TrMinRoueFin / TrMinVilbFin
        Label44.Text = Math.Round(RapDem, NbDec)
        Label45.Text = Math.Round(VitRoueKMH, NbDec)
        CplRoue = ((EffTang * RayRoue) + (MIRoul) + (CplResRl)) * AccAng
        Label46.Text = Math.Round(CplRoue, NbDec)
        CplMot = CplRoue * RapDem
        Label47.Text = Math.Round(CplMot, NbDec)
        PssCv = (CplMot * TrMinVilbFin * (Pi / 30)) / 735.5
        Label50.Text = Math.Round(PssCv, NbDec)
        PssWt = PssCv * 735.5
        Label48.Text = Math.Round(PssWt, NbDec)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        BackgroundWorker1.RunWorkerAsync()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Label3.Text = Label3.Text + 100
        Label4.Text = Label3.Text * 0.25
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        SaveParam()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Button5.Enabled = False
        Button7.Enabled = True
        DataGridView1.Rows.Clear()
        Chart1.Series(0).Points.Clear()
        Chart1.Series(1).Points.Clear()
        Chart1.Series(2).Points.Clear()
        Chart1.Series(3).Points.Clear()

        BackgroundWorker2.RunWorkerAsync()
    End Sub

    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Do
            ' get any new data and add the the global variable receivedData
            receivedData = ReceiveSerialData()
            'If receivedData contains a "<" and a ">" then we have data
            If ((receivedData.Contains("<") And receivedData.Contains(">"))) Then
                parseData()
                If (TrMinVilbFin <= TrMinVilbIni) Then
                    Thread.Sleep(500)
                    Timer1.Enabled = False
                End If
            End If
        Loop
    End Sub

    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
        Close()
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        CalculDynamic()
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Button5.Enabled = True
        Button7.Enabled = False
        Timer1.Enabled = False
        Dim MaxPVal As Double = 0
        Dim RowPNb As Double = 0
        Dim MaxCVal As Double = 0
        Dim RowCNb As Double = 0
        For Each row As DataGridViewRow In DataGridView1.Rows
            If row.Cells(7).Value > MaxPVal Then
                MaxPVal = row.Cells(7).Value
                RowPNb = row.Cells(7).RowIndex
            End If
            If row.Cells(5).Value > MaxCVal Then
                MaxCVal = row.Cells(5).Value
                RowCNb = row.Cells(5).RowIndex
            End If
        Next
        Label51.Text = MaxPVal
        Label52.Text = DataGridView1.Rows.Item(RowPNb).Cells.Item(3).Value
        Label53.Text = MaxCVal
        Label54.Text = DataGridView1.Rows.Item(RowCNb).Cells.Item(3).Value
    End Sub

    Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
        Do
            If (TrMinVilbFin > TrMinVilbIni) Then
                Dim DN As String = Date.Now
                DataGridView1.Rows.Add(DN, Label1.Text, Label2.Text, Label3.Text, Label4.Text)
                Chart1.Series(0).Points.AddXY(Label3.Text, Label1.Text)
                Chart1.Series(1).Points.AddXY(Label3.Text, Label2.Text)
                Chart1.Series(2).Points.AddXY(Label3.Text, Label4.Text)
                Thread.Sleep(NumericUpDown1.Value)
            ElseIf TrMinVilbFin <= TrMinVilbIni Then
                Thread.Sleep(NumericUpDown1.Value)
                Timer1.Enabled = False
            End If

        Loop
    End Sub
End Class
 

Au moins ce sera pas perdu pour tout le monde...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

non mais si quelqu un qui passe par là et qui peut me dire pkoi mon Chart il fait planter l'horloge du pc j suis preneur....:).....non j'ai mis cà là comme ça si mon pc est vide demain

j saurai retrouver le code....

non serieux c'est pas totalement mauvais c que j'ai fais...manque juste un truc....:( mais j sais pas encore quoi....

y disent un "delegate" sur la liaison serie mais ça fait tout péter le code...alors j vais attendre, dormir un peu ...et aviser ensuite....;)

 

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

  • 0

non lol....j avais fais couple moteur = couple roue x rapport de démultiplication...mais ça marche pas bien....:( ... alors j vais prendre Cmoteur x Wmoteur = Croue x WRoue....... ;)

 

du coup y n' en fait plus que 37chevaux... :) ......

mdr....non j suis en simulation sur le pc......j sais pas programmer une asymptote m'en voulez pas..... :( ....j'ai jamais été à l'école.... :(

 

on va le foutre a la benne ce mathlab ça me gonfle lol... :)

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Rien ne vaut une bonne TI82! :)....bref.....

Avancement de l'appli pour faire-marcher le truc... :) ...ça avance à grandes pattes...(mode simulation sur la table de la cuisine)

 

c'est pas fini bien sûr.... :/ mais on a tout le temps... :)...

moi j dis ....c'est exceptionnellement pas mauvais pour un début! :)

P.S.: Bon Ok! le logo j en avais pas d autre sous la main, dsl...mais ça n'a aucun but commerciale mon truc ! ;)...Please,,,Don't put the blame on me ! :/ 

P.S.2.: en même temps il est mieux votre logo avec un peu de perspective.... ;)

 

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Syntaxe error

 

j suis encore dessus j suis pas mort....:)

j'ai un doute......ai-je raison quand j dis :

 

(j suis avec les facteurs de correction iso mes couilles et machin chouette j1349)

...

on va partir de j1349.....

cf= ((pression atmospherique - pression partiel) / (990-13))*((302,4/(température ambiante +273,15))^0,5)......

avec pression partiel = (humidité relative /100) * vapeur saturante

avec vapeur saturante = ((log10( 8,07131-1730,63/(233,426+température ambiante))/750,0617)*1000)

 

....j'ai un doute :/

 

suis-je correcte? :/?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

vu que j vais en faire un blog j voudrai pas trop raconter de conneries...en tout cas le resultat me parait cohérent....

il est bon mon cf avec la 1349?

moi j pense que oui et mon chat me confirme donc.... :(

?

:( oui dsl j'ai pas pu nourrir le thread plus tôt j me posais une question existentielle concernant la meta-modelisation du comportement d'un modèle de processus à la con... :(

 

en résumé avec la norme j1349 je dois appliquer un coef de 1,05 à la puissance calculée pour une pression atmosphérique de 1019mbar et 38% d'humidité résiduelle!?.... c'est raisonnable?

....si vous pouviez éviter les réponses du genre....genre celle de ma femme: " tu te pose trop de questions!".... .ça m'arrangerait bien! :)

Modifié par Kymco27000
Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
 Partager

×
×
  • Créer...