{"id":1437,"date":"2014-06-22T19:56:11","date_gmt":"2014-06-22T17:56:11","guid":{"rendered":"http:\/\/majek.mamy.to\/?page_id=1437"},"modified":"2014-06-22T20:49:36","modified_gmt":"2014-06-22T18:49:36","slug":"lcd88-how-it-works","status":"publish","type":"page","link":"https:\/\/majek.sh\/en\/lcd88-free-rc-transmitter\/lcd88-how-it-works\/","title":{"rendered":"LCD88 &#8211; how it works"},"content":{"rendered":"<p><\/p>\n<h1>BLOCKS!<\/h1>\n<p>The gist of this project is: BLOCKS!<br \/>\nFor each model you have some sticks, pots, switches and output channels. Between inputs and outputs there is more or less flexible &#8216;black box&#8217;.<br \/>\nIn my project you could define exactly what is in this &#8216;black box&#8217; by connecting math blocks together in absolutely free way.<\/p>\n<p>Blocks could do:<\/p>\n<ul>\n<li>trims<\/li>\n<li>reverse<\/li>\n<li>add<\/li>\n<li>substract<\/li>\n<li>negate<\/li>\n<li>expo<\/li>\n<li>multiply<\/li>\n<li>convert any analog value to 3 state (for switch conditioning)<\/li>\n<li>some casual mixers<\/li>\n<li>limits<\/li>\n<li>and many more&#8230;<\/li>\n<\/ul>\n<p>Better explanation is just to show some examples, so look at them!<br \/>\nFor examples you should only know that channels 0-7 are inputs, 16-23 are outputs, some has special meaning or are reseved but right now it&#8217;s not important.<\/p>\n<h2>Simple model &#8211; as in all entry level transmitters<\/h2>\n<p>It&#8217;s easy:<br \/>\n<a href=\"https:\/\/majek.sh\/rc-diy-transmitter\/1-ch-simple\/\" rel=\"attachment wp-att-702\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/1-ch-simple.png\" alt=\"\" title=\"Simple 1 channel build from blocks.\" width=\"552\" height=\"222\" class=\"alignnone size-full wp-image-702\" srcset=\"https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/1-ch-simple.png 552w, https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/1-ch-simple-150x60.png 150w\" sizes=\"(max-width: 552px) 100vw, 552px\" \/><\/a><\/p>\n<p>Channel 0 (CH0) is stick input, value goes into <em>reverse<\/em> block. Another input for this block is CH40 which remebers reverse position. Output of <em>reverse<\/em> block goes to channel 52. Another stage is <em>trim<\/em> block which takes value from channel 52 and adds it to trim value from channel 28. Other channels should be done in similar way.<br \/>\nSpecial block <em>reverse<\/em> is in fact a <em>multiply<\/em> block but it&#8217;s treaten in special way &#8211; second channel connected to it shows automaticly in &#8216;Reverse&#8217; menu.<br \/>\nIn similar way <em>trim<\/em> block is an <em>add<\/em> block which second input shows in &#8216;Trims&#8217; menu.<\/p>\n<p>Looks easy, isn&#8217;t it? So, let&#8217;s go ahead.<\/p>\n<h2>Delta or flying wing<\/h2>\n<p>Another example: delta mixer.<br \/>\nAt the beggining let&#8217;s write some equations:<\/p>\n<div class=\"codecolorer-container text railscasts\" style=\"overflow:auto;white-space:nowrap;width:550px;\"><div class=\"text codecolorer\">left aileron = ( rudder stick + elevator stick ) \/2<br \/>\nright aileron = ( - rudder stick + elevator stick ) \/2<\/div><\/div>\n<p>So let&#8217;s draw blocks to calulate it:<br \/>\n<a href=\"https:\/\/majek.sh\/rc-diy-transmitter\/delta\/\" rel=\"attachment wp-att-704\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/delta.png\" alt=\"\" title=\"Delta mixer made using blocks\" width=\"551\" height=\"274\" class=\"alignnone size-full wp-image-704\" srcset=\"https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/delta.png 551w, https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/delta-150x74.png 150w\" sizes=\"(max-width: 551px) 100vw, 551px\" \/><\/a><\/p>\n<p>Ok, but this is only mixer, what about trims, reverses etc?<\/p>\n<p>So, look at real life model:<br \/>\n<a href=\"https:\/\/majek.sh\/rc-diy-transmitter\/delta-full\/\" rel=\"attachment wp-att-713\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/delta-full.png\" alt=\"\" title=\"Flying wing - model made using blocks\" width=\"550\" height=\"384\" class=\"alignnone size-full wp-image-713\" srcset=\"https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/delta-full.png 550w, https:\/\/majek.sh\/wp-content\/uploads\/2013\/01\/delta-full-150x104.png 150w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\nLooks complicated, but let me explain what&#8217;s going on.<\/p>\n<p>A little transformed formula for delta mixer in this case:<\/p>\n<div class=\"codecolorer-container text railscasts\" style=\"overflow:auto;white-space:nowrap;width:550px;\"><div class=\"text codecolorer\">right aileron=0.5*elevator+0.5*rudder<br \/>\nleft aileron=0.5*elevator-0.5*rudder<\/div><\/div>\n<p>I think that most people who flies flying wing could confirm that this type of model is very sensitive to elevator moves. One solution for this is to make expo\/DR on elevator channel. But I preffer make elevator just less sensitive in favor to rudder. So, instead of using 0.5 coefficient to multiply values from both channels, I use smaller one for elevator and greater for rudder. If coeficcients sum up to 1, results will be still within allowed range (I already did it on my standalone delta mixer based on ATTINY13).<\/p>\n<p>Let&#8217;s look at above picture. Blocks 1-3 are here to make flexible coefficients. On Block1 input is 1 (CH25) and trim (CH40), so it makes at output (CH41) value in range 0&#8230;2 dependent on trim position. It&#8217;s too big to further calculations, so we must scale it down using Block2. At it&#8217;s output (CH43) we have value in range 0&#8230;1. Block3 calculate second coefficient for multiplication (CH44=1-CH43). Blocks 5,7,10,11,12, form a delta mixer with adjustable amplification for both control sticks. After delta mixer, there are reverse and trims blocks to adjust servo direction and neutral point. Near input there are blocks 4,6 and 8 &#8211; there are standard trims for fine tuning during fly.<\/p>\n<p>So, as long as you could make some equations to describe how channel values should be processed, you could make it.<\/p>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>BLOCKS! The gist of this project is: BLOCKS! For each model you have some sticks, pots, switches and output channels. Between inputs and outputs there is more or less flexible &#8216;black box&#8217;. In my project you could define exactly what <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/majek.sh\/en\/lcd88-free-rc-transmitter\/lcd88-how-it-works\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1434,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/pages\/1437"}],"collection":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/comments?post=1437"}],"version-history":[{"count":2,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/pages\/1437\/revisions"}],"predecessor-version":[{"id":1449,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/pages\/1437\/revisions\/1449"}],"up":[{"embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/pages\/1434"}],"wp:attachment":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/media?parent=1437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}