Oct 04, 2024, 11:39 pm

News:

New, New TardisBuilders!


A Generic, sound and motion machine- A SHOW OF HANDS?

Started by jorwick, Sep 12, 2024, 10:48 pm

Previous topic - Next topic

jorwick

Hi All,

I am in the process of re-writing my TARDIS code. On reflection , and having other projects come up, I have decided to make my new code as generic as possible. (as such I am having difficulty in deciding where to list this posting, and will cross post a bit, hopefully not to the irritation of the admins)

The general theory behind the code is that I am building a frame work for looking for  events ( i.e things that happen)  and then responding with an effect ( some combination of lights, motors, servos,  sounds, telephone control (cause what police box doesn't have a phone?) It is all implemented in node.js.  Not the fastest. But in wide use and well suited to the asynchronous nature of the task

Hardware is a  Raspberry Pi, and various "bonnets" or "hats" that simply stack upon it.  It can be done more cheaply with discrete components - but not by much ,and  the bonnets just plug into the pi without the need for soldering ( or much soldering)

A raspberry Pi Zero can be had for about $15 US. to this you can add various "bonnets" - my initial intention is to add support for adafruit's servo bonnet ($12), motor bonnet ($20) , and any ALSA compatible sound ($12-20) .
The system will run Asterisk 13 ( Current version is 20, but I am running into problems compiling it on Pi zero)  and allow voice dial, IVR , and off hook playback using a grandstream ATA device ( around $40 US)

The BASIC system is a Pi Zero, with a motor hat and sound hat - allowing control of up to 4 light and/or motors with a max current of 1.2 amps. This will run about $60 US.  With some light soldering ( just pins)  you can expand this to 4 motors at 1.2 amps, and 4 lights at 10amps  using external boards that cost about  $4 more.

If you want to control a "modern" phone, you need an ATA ( I recommend grandstream at around $40 US) to convert you "plain old telephone service" into a VoIP phone the asterisk will work with . If you have an antique phone.. ringers may require a special circuit I can work with you on. Otherwise, the ringer will just work , and with an English cadence. The grandstream can auto magically  dial a number on off hook - so you can be connected to an "operator" - at that point the sound file you can provide is the limit. Imaging a deep fake tom baker saying -anything you like- the moment you lift the receiver.  Imagine dialing 1 , and the TARDIS "taking off"-- you get the idea

Plus, this  is expandable:

One can also use a $12 servo board to provide PWM and drive up to 16 lights at over 10amps on each channel ( about $1 per channel)  The code will  also let you use this $12 board to drive individual H-bridge boards (for motors) if you need to drive something over 1.2 amps ( a motor that moves a center console)  but only 4 of them.  Both the 1.2 amp motor had  and PWM serveo board are "stackable" allowing you to add up  to 4 of the 1.2amp boards with 4 motors each ,  and a ridiculous number of (922 PWM outputs/servos) if you need them. For a "motor" you need fake two of the pwms as "control" ( left or right)  and one to control the speed. But you will  need to do some very basic ( and easy ) soldering to make that work - you need a $20 US  soldering kit.

So as far as inputs

Any logic ( 1 vs 0) sensor (motion, temperature, light level , on too long, off too long etc)
any button (or webpage based button)
any REST (web based post) message
Specific text in syslog
Specific Asterisk event ( off hook, on hook, dialed number etc)
Repeat at interval ( a "cron" job)
Repeat at random ( do at random interval between A and B seconds)
AND different events together within an interval 

Effects are driven by a file - do this for x seconds. do Y or z seconds. Wait for other output to stop then do Z and so on.

There will be a priority system, such that effect with priority 1 can run, and when over, fall back to effect at priority 2

You can also establish when an effect will happen ( i.e between 6am and 10pm)  so the thing does nothing when you are trying to sleep.

But the general idea is to give you a spreadsheet, you fill out what runs when, and you save it as a CSV file ( everything exports as csv)  and you don't need to know anything else about the code. (okay, if you want some complicated phone stuff.. you should learn some basic asterisk scripting which is only a slight more effort than filling out as spreadsheet)


So the upshot is for about $120-150  US outlay, you can completely control your TARDIS Phone, the lights, the sounds, - even unlock the door at the right word (and with the right servo) , and just fill out a spread sheet to do it. The PI is small. It will fit in to a 2" x1" x 3" space roughly - one can also wire it to be flatish and use different configurations. So this could be used in console and other props as well.. but I admit it won't be easy to get into a sonic screwdriver..but not impossible either. .

Is there interest in this? Or should I just focus on what I need Mine do to?
Is there a functionality you wish you could have in that $60 to $120 price range?

My TARDIS covers a well , so I am doing temperature monitoring - and I will call myself (VoIP if the well is about to freeze, or if the pump keep running too often)  I will have the takeoff, landing and cloister bell effects. The box will de-materialize at dawn, materialize  at dusk , run a cloister bell with flashing lights on command or when in "distress" ( well too cold. ) - and chime the hour with engine noises, and light.. what would you have yours do?

Add your feedback now and it will happen out of the box.  I am writing this code for me and as a thank you to the community.  If I can implement your request easily - I will. If I can't, I will provide you a framework where you can write your own code - for input or output - pretty easily.

jorwick

I am a little disappointed there seems to be little interest.
Does everyone already have a good solution for adding lights/sound to their TARDIS, and am I just reinventing the wheel? I searched the forum and didn't find anything similar - put perhaps I just don't have the right search term or I am looking in the wrong place?  Mine seems "dead" without the electronics inside.

Perhaps I am just explaining it poorly? Or just from too technical a perspective? Seems to complicated?

Is it just too costly?

From the user perspective you will just load an image on a SD card and plug it into your Pi.
You will then use a standard Mini plug to connect whatever AMP you want to use for sound - (or use the onboard 3Watt amp) and use screw down terminals to connect up to 4 motors or lights ( us to 1.2 Amps) 

OPTIONALLY - you can do some very simple soldering  to add a some pins and some jumpers - and then use an external board to control larger motors or up Lights with higher current requirements.

Buttons are connected directly to pins already present.  If you want to use the phone to control it, you don't even need to do that.

config file will basically be a simple list of

<type of input (button, phone dial, webbutton, sensor, random, timed at set interva)>, Effect to run ( by name), Priority of effect ( should I cancel a current effect to run this one?) and the path tot he effect file  /home/usr/effect1

I will provide sample effects , but most will consist of 2-5 lines  - similar to this:
 
lightOutput1 :Lights 100% - end when sound stops
lightOutput2 : <equation> ( like a sinusoid to flash the light) end when sound stops
Sound: play "travel.wav"

or

phone: call extension 101,
phone: play "doctor_greeting.wav"

The idea is that will be super easy to configure and wire up with a  minimum of knowledge.

TardisGrandstream.jpg

tardisPI.jpg

Rassilons Rod

All my TARDIS adventures are purely virtual, but your ideas do look very interesting :)
In the cities in the streets there's a tension you can feel,
The breaking strain is fast approaching, guns and riots.
Politicians gamble and lie to save their skins,
And the press get fed the scapegoats,
Public Enema Number One.